Loading .gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ src/main/python/kinetic/kinetic_pb2.py /*/doc /*/target /*/test-output /tmp database.db Loading kinetic-test/pom.xml +11 −11 Original line number Diff line number Diff line <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.seagate.kinetic</groupId> Loading Loading @@ -27,15 +28,14 @@ </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.15</version> <dependencies> <dependency> <artifactId>surefire-junit47</artifactId> <groupId>org.apache.maven.surefire</groupId> <version>2.12</version> </dependency> </dependencies> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> <executions> <execution> <id>default-test</id> Loading Loading @@ -137,9 +137,9 @@ </profiles> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.8.8</version> </dependency> <dependency> <groupId>com.leacox.process</groupId> Loading kinetic-test/src/test/java/com/seagate/kinetic/AbstractIntegrationTestTarget.java +7 −8 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ package com.seagate.kinetic; import kinetic.admin.AdminClientConfiguration; import kinetic.admin.KineticAdminClient; import kinetic.admin.KineticAdminClientFactory; import kinetic.client.ClientConfiguration; import kinetic.client.KineticClient; import kinetic.client.KineticException; import kinetic.client.p2p.KineticP2PClientFactory; Loading Loading @@ -85,13 +84,13 @@ public abstract class AbstractIntegrationTestTarget { return clientConfiguration; } public ClientConfiguration getClientConfig() { ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setHost(host); clientConfiguration.setPort(port); clientConfiguration.setNioServiceThreads(1); return clientConfiguration; } // public ClientConfiguration getClientConfig() { // ClientConfiguration clientConfiguration = new ClientConfiguration(); // clientConfiguration.setHost(host); // clientConfiguration.setPort(port); // clientConfiguration.setNioServiceThreads(1); // return clientConfiguration; // } public Peer getPeer() { Peer peer = new Peer(); Loading kinetic-test/src/test/java/com/seagate/kinetic/IntegrationTestCase.java +100 −34 Original line number Diff line number Diff line Loading @@ -19,13 +19,20 @@ */ package com.seagate.kinetic; import static org.testng.AssertJUnit.assertEquals; import org.testng.annotations.AfterMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.BeforeMethod; import static com.seagate.kinetic.KineticTestHelpers.toByteArray; import static org.junit.Assert.assertEquals; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; import kinetic.admin.AdminClientConfiguration; Loading @@ -38,9 +45,6 @@ import kinetic.client.KineticException; import kinetic.client.p2p.KineticP2PClientFactory; import kinetic.client.p2p.KineticP2pClient; import org.junit.After; import org.junit.Before; import com.google.protobuf.ByteString; import com.jcraft.jsch.JSchException; import com.seagate.kinetic.client.internal.MessageFactory; Loading @@ -59,11 +63,12 @@ import com.seagate.kinetic.proto.Kinetic.Command.Security.ACL.Permission; * */ public class IntegrationTestCase { protected static final String NONNIO_NONSSL_CLIENT = "nonNio_nonSsl"; protected static final String NIO_NONSSL_CLIENT = "nio_nonSsl"; protected static final String NONNIO_SSL_CLIENT = "nonNio_ssl"; // This will be assigned by the KineticTestRunner public KineticTestRunner.TestClientConfigConfigurator testClientConfigurator; private KineticP2pClient kineticClient; protected Map<String, KineticP2pClient> kineticClients = new HashMap<String,KineticP2pClient>(); protected Map<String, ClientConfiguration> kineticClientConfigutations = new HashMap<String,ClientConfiguration>(); private KineticAdminClient adminClient; private AbstractIntegrationTestTarget testTarget; Loading @@ -78,12 +83,16 @@ public class IntegrationTestCase { * @throws InterruptedException * if any Interrupt error occurred */ @Before @BeforeMethod(alwaysRun = true) public void startTestServer() throws InterruptedException, KineticException, IOException, JSchException, ExecutionException { testTarget = IntegrationTestTargetFactory.createTestTarget(true); kineticClient = KineticP2PClientFactory .createP2pClient(getClientConfig()); kineticClients.clear(); for (String clientName : kineticClientConfigutations.keySet()) { kineticClients.put(clientName, KineticP2PClientFactory .createP2pClient(kineticClientConfigutations.get(clientName))); } adminClient = KineticAdminClientFactory.createInstance(getAdminClientConfig()); } Loading @@ -96,9 +105,9 @@ public class IntegrationTestCase { * @throws IOException * if any IO error occurred. */ @After @AfterMethod(alwaysRun = true) public void stopTestServer() throws Exception { kineticClient.close(); closeKineticClients(); adminClient.close(); testTarget.shutdown(); } Loading @@ -107,8 +116,8 @@ public class IntegrationTestCase { * Get a Kinetic client. * <p> */ protected KineticP2pClient getClient() { return kineticClient; protected KineticP2pClient getClient(String clientName) { return kineticClients.get(clientName); } protected KineticAdminClient getAdminClient() { Loading @@ -120,15 +129,7 @@ public class IntegrationTestCase { * <p> */ protected ClientConfiguration getClientConfig() { ClientConfiguration clientConfiguration = testTarget.getClientConfig(); // Once all subclasses of IntegrationTestCase use the KineticTestRunner // we can // assume that testClientFactory will exist. Until then we have to // handle the case // where it's null if (testClientConfigurator != null) { testClientConfigurator.modifyClientConfig(clientConfiguration); } ClientConfiguration clientConfiguration = IntegrationTestTargetFactory.createDefaultClientConfig(); return clientConfiguration; } Loading Loading @@ -190,13 +191,17 @@ public class IntegrationTestCase { * <p> */ protected void restartServer() throws Exception { kineticClient.close(); closeKineticClients() ; adminClient.close(); testTarget.shutdown(); testTarget = IntegrationTestTargetFactory.createTestTarget(false); kineticClient = KineticP2PClientFactory .createP2pClient(getClientConfig()); kineticClients.clear(); for (String clientName : kineticClientConfigutations.keySet()) { kineticClients.put(clientName, KineticP2PClientFactory .createP2pClient(kineticClientConfigutations.get(clientName))); } adminClient = KineticAdminClientFactory.createInstance(getAdminClientConfig()); } Loading Loading @@ -229,7 +234,7 @@ public class IntegrationTestCase { * @param roles * @throws KineticException */ public void createClientAclWithRoles(int clientId, String clientKeyString, public void createClientAclWithRoles(String clientName, int clientId, String clientKeyString, List<Kinetic.Command.Security.ACL.Permission> roles) throws KineticException { Loading @@ -239,7 +244,7 @@ public class IntegrationTestCase { domain.addPermission(role); } createClientAclWithDomains(clientId, clientKeyString, createClientAclWithDomains(clientName, clientId, clientKeyString, Collections.singletonList(domain.build())); // create a admin clientId with all permission to avoid user nor found. Loading @@ -260,7 +265,7 @@ public class IntegrationTestCase { for (Kinetic.Command.Security.ACL.Permission role : rolesAll) { domainAll.addPermission(role); } createClientAclWithDomains(clientIdAdmin, clientIdAdminKey, createClientAclWithDomains(clientName, clientIdAdmin, clientIdAdminKey, Collections.singletonList(domainAll.build())); } Loading @@ -274,7 +279,7 @@ public class IntegrationTestCase { * @param domains * @throws KineticException */ public void createClientAclWithDomains(int clientId, public void createClientAclWithDomains(String clientName, int clientId, String clientKeyString, List<Kinetic.Command.Security.ACL.Scope> domains) throws KineticException { Loading Loading @@ -302,11 +307,12 @@ public class IntegrationTestCase { } security.addAcl(acl); KineticMessage response = getClient().request(km); KineticMessage response = getClient(clientName).request(km); // Ensure setup succeeded, or else fail the calling test. assertEquals(Kinetic.Command.Status.StatusCode.SUCCESS, response .getCommand().getStatus().getCode()); } /** Loading @@ -328,4 +334,64 @@ public class IntegrationTestCase { client.put(entry, null); return entry; } @DataProvider(name = "transportProtocolOptions") public Object[][] createObjectsBasedOnProtocolOptions() throws KineticException { createKineticClientConfugurations(); Object[][] objects = new Object[kineticClientConfigutations.size()][]; int i=0; for(String clientName : kineticClientConfigutations.keySet()) { objects[i++] = new Object[] {clientName}; } return objects; } private void createKineticClientConfugurations() throws KineticException { kineticClientConfigutations.clear(); ClientConfiguration clientConfiguration; if (Boolean.parseBoolean(System.getProperty("RUN_TCP_TEST"))) { clientConfiguration = getClientConfig() ; clientConfiguration.setUseSsl(false); clientConfiguration.setUseNio(false); kineticClientConfigutations.put(NONNIO_NONSSL_CLIENT, clientConfiguration); } if (Boolean.parseBoolean(System.getProperty("RUN_NIO_TEST"))) { clientConfiguration = getClientConfig() ; clientConfiguration.setUseSsl(false); clientConfiguration.setUseNio(true); kineticClientConfigutations.put(NIO_NONSSL_CLIENT, clientConfiguration); } if (Boolean.parseBoolean(System.getProperty("RUN_SSL_TEST"))) { clientConfiguration = getClientConfig(); clientConfiguration.setUseSsl(true); clientConfiguration.setUseNio(false); clientConfiguration.setPort(clientConfiguration.getSSLDefaultPort()); kineticClientConfigutations.put(NONNIO_SSL_CLIENT, clientConfiguration); } if (kineticClientConfigutations.size() == 0) { clientConfiguration = getClientConfig() ; clientConfiguration.setUseSsl(false); clientConfiguration.setUseNio(true); kineticClientConfigutations.put(NIO_NONSSL_CLIENT, clientConfiguration); } } private void closeKineticClients() throws KineticException { for(KineticP2pClient client: kineticClients.values()) { client.close(); } } } kinetic-test/src/test/java/com/seagate/kinetic/IntegrationTestTargetFactory.java +10 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import java.io.IOException; import java.net.ServerSocket; import java.util.concurrent.ExecutionException; import kinetic.client.ClientConfiguration; import kinetic.client.KineticException; import kinetic.simulator.SimulatorConfiguration; Loading Loading @@ -91,6 +92,15 @@ public class IntegrationTestTargetFactory { return testTarget; } public static ClientConfiguration createDefaultClientConfig() { ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setHost(System.getProperty("KINETIC_HOST", "localhost")); clientConfiguration.setPort(Integer.parseInt(System.getProperty("KINETIC_PORT", "8123"))); clientConfiguration.setNioServiceThreads(1); return clientConfiguration; } public static boolean isRunningAgainstSimulator() { return !Boolean .parseBoolean(System.getProperty("RUN_AGAINST_EXTERNAL")); Loading Loading
.gitignore +1 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ src/main/python/kinetic/kinetic_pb2.py /*/doc /*/target /*/test-output /tmp database.db Loading
kinetic-test/pom.xml +11 −11 Original line number Diff line number Diff line <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.seagate.kinetic</groupId> Loading Loading @@ -27,15 +28,14 @@ </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.15</version> <dependencies> <dependency> <artifactId>surefire-junit47</artifactId> <groupId>org.apache.maven.surefire</groupId> <version>2.12</version> </dependency> </dependencies> <configuration> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> <executions> <execution> <id>default-test</id> Loading Loading @@ -137,9 +137,9 @@ </profiles> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.8.8</version> </dependency> <dependency> <groupId>com.leacox.process</groupId> Loading
kinetic-test/src/test/java/com/seagate/kinetic/AbstractIntegrationTestTarget.java +7 −8 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ package com.seagate.kinetic; import kinetic.admin.AdminClientConfiguration; import kinetic.admin.KineticAdminClient; import kinetic.admin.KineticAdminClientFactory; import kinetic.client.ClientConfiguration; import kinetic.client.KineticClient; import kinetic.client.KineticException; import kinetic.client.p2p.KineticP2PClientFactory; Loading Loading @@ -85,13 +84,13 @@ public abstract class AbstractIntegrationTestTarget { return clientConfiguration; } public ClientConfiguration getClientConfig() { ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setHost(host); clientConfiguration.setPort(port); clientConfiguration.setNioServiceThreads(1); return clientConfiguration; } // public ClientConfiguration getClientConfig() { // ClientConfiguration clientConfiguration = new ClientConfiguration(); // clientConfiguration.setHost(host); // clientConfiguration.setPort(port); // clientConfiguration.setNioServiceThreads(1); // return clientConfiguration; // } public Peer getPeer() { Peer peer = new Peer(); Loading
kinetic-test/src/test/java/com/seagate/kinetic/IntegrationTestCase.java +100 −34 Original line number Diff line number Diff line Loading @@ -19,13 +19,20 @@ */ package com.seagate.kinetic; import static org.testng.AssertJUnit.assertEquals; import org.testng.annotations.AfterMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.BeforeMethod; import static com.seagate.kinetic.KineticTestHelpers.toByteArray; import static org.junit.Assert.assertEquals; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutionException; import kinetic.admin.AdminClientConfiguration; Loading @@ -38,9 +45,6 @@ import kinetic.client.KineticException; import kinetic.client.p2p.KineticP2PClientFactory; import kinetic.client.p2p.KineticP2pClient; import org.junit.After; import org.junit.Before; import com.google.protobuf.ByteString; import com.jcraft.jsch.JSchException; import com.seagate.kinetic.client.internal.MessageFactory; Loading @@ -59,11 +63,12 @@ import com.seagate.kinetic.proto.Kinetic.Command.Security.ACL.Permission; * */ public class IntegrationTestCase { protected static final String NONNIO_NONSSL_CLIENT = "nonNio_nonSsl"; protected static final String NIO_NONSSL_CLIENT = "nio_nonSsl"; protected static final String NONNIO_SSL_CLIENT = "nonNio_ssl"; // This will be assigned by the KineticTestRunner public KineticTestRunner.TestClientConfigConfigurator testClientConfigurator; private KineticP2pClient kineticClient; protected Map<String, KineticP2pClient> kineticClients = new HashMap<String,KineticP2pClient>(); protected Map<String, ClientConfiguration> kineticClientConfigutations = new HashMap<String,ClientConfiguration>(); private KineticAdminClient adminClient; private AbstractIntegrationTestTarget testTarget; Loading @@ -78,12 +83,16 @@ public class IntegrationTestCase { * @throws InterruptedException * if any Interrupt error occurred */ @Before @BeforeMethod(alwaysRun = true) public void startTestServer() throws InterruptedException, KineticException, IOException, JSchException, ExecutionException { testTarget = IntegrationTestTargetFactory.createTestTarget(true); kineticClient = KineticP2PClientFactory .createP2pClient(getClientConfig()); kineticClients.clear(); for (String clientName : kineticClientConfigutations.keySet()) { kineticClients.put(clientName, KineticP2PClientFactory .createP2pClient(kineticClientConfigutations.get(clientName))); } adminClient = KineticAdminClientFactory.createInstance(getAdminClientConfig()); } Loading @@ -96,9 +105,9 @@ public class IntegrationTestCase { * @throws IOException * if any IO error occurred. */ @After @AfterMethod(alwaysRun = true) public void stopTestServer() throws Exception { kineticClient.close(); closeKineticClients(); adminClient.close(); testTarget.shutdown(); } Loading @@ -107,8 +116,8 @@ public class IntegrationTestCase { * Get a Kinetic client. * <p> */ protected KineticP2pClient getClient() { return kineticClient; protected KineticP2pClient getClient(String clientName) { return kineticClients.get(clientName); } protected KineticAdminClient getAdminClient() { Loading @@ -120,15 +129,7 @@ public class IntegrationTestCase { * <p> */ protected ClientConfiguration getClientConfig() { ClientConfiguration clientConfiguration = testTarget.getClientConfig(); // Once all subclasses of IntegrationTestCase use the KineticTestRunner // we can // assume that testClientFactory will exist. Until then we have to // handle the case // where it's null if (testClientConfigurator != null) { testClientConfigurator.modifyClientConfig(clientConfiguration); } ClientConfiguration clientConfiguration = IntegrationTestTargetFactory.createDefaultClientConfig(); return clientConfiguration; } Loading Loading @@ -190,13 +191,17 @@ public class IntegrationTestCase { * <p> */ protected void restartServer() throws Exception { kineticClient.close(); closeKineticClients() ; adminClient.close(); testTarget.shutdown(); testTarget = IntegrationTestTargetFactory.createTestTarget(false); kineticClient = KineticP2PClientFactory .createP2pClient(getClientConfig()); kineticClients.clear(); for (String clientName : kineticClientConfigutations.keySet()) { kineticClients.put(clientName, KineticP2PClientFactory .createP2pClient(kineticClientConfigutations.get(clientName))); } adminClient = KineticAdminClientFactory.createInstance(getAdminClientConfig()); } Loading Loading @@ -229,7 +234,7 @@ public class IntegrationTestCase { * @param roles * @throws KineticException */ public void createClientAclWithRoles(int clientId, String clientKeyString, public void createClientAclWithRoles(String clientName, int clientId, String clientKeyString, List<Kinetic.Command.Security.ACL.Permission> roles) throws KineticException { Loading @@ -239,7 +244,7 @@ public class IntegrationTestCase { domain.addPermission(role); } createClientAclWithDomains(clientId, clientKeyString, createClientAclWithDomains(clientName, clientId, clientKeyString, Collections.singletonList(domain.build())); // create a admin clientId with all permission to avoid user nor found. Loading @@ -260,7 +265,7 @@ public class IntegrationTestCase { for (Kinetic.Command.Security.ACL.Permission role : rolesAll) { domainAll.addPermission(role); } createClientAclWithDomains(clientIdAdmin, clientIdAdminKey, createClientAclWithDomains(clientName, clientIdAdmin, clientIdAdminKey, Collections.singletonList(domainAll.build())); } Loading @@ -274,7 +279,7 @@ public class IntegrationTestCase { * @param domains * @throws KineticException */ public void createClientAclWithDomains(int clientId, public void createClientAclWithDomains(String clientName, int clientId, String clientKeyString, List<Kinetic.Command.Security.ACL.Scope> domains) throws KineticException { Loading Loading @@ -302,11 +307,12 @@ public class IntegrationTestCase { } security.addAcl(acl); KineticMessage response = getClient().request(km); KineticMessage response = getClient(clientName).request(km); // Ensure setup succeeded, or else fail the calling test. assertEquals(Kinetic.Command.Status.StatusCode.SUCCESS, response .getCommand().getStatus().getCode()); } /** Loading @@ -328,4 +334,64 @@ public class IntegrationTestCase { client.put(entry, null); return entry; } @DataProvider(name = "transportProtocolOptions") public Object[][] createObjectsBasedOnProtocolOptions() throws KineticException { createKineticClientConfugurations(); Object[][] objects = new Object[kineticClientConfigutations.size()][]; int i=0; for(String clientName : kineticClientConfigutations.keySet()) { objects[i++] = new Object[] {clientName}; } return objects; } private void createKineticClientConfugurations() throws KineticException { kineticClientConfigutations.clear(); ClientConfiguration clientConfiguration; if (Boolean.parseBoolean(System.getProperty("RUN_TCP_TEST"))) { clientConfiguration = getClientConfig() ; clientConfiguration.setUseSsl(false); clientConfiguration.setUseNio(false); kineticClientConfigutations.put(NONNIO_NONSSL_CLIENT, clientConfiguration); } if (Boolean.parseBoolean(System.getProperty("RUN_NIO_TEST"))) { clientConfiguration = getClientConfig() ; clientConfiguration.setUseSsl(false); clientConfiguration.setUseNio(true); kineticClientConfigutations.put(NIO_NONSSL_CLIENT, clientConfiguration); } if (Boolean.parseBoolean(System.getProperty("RUN_SSL_TEST"))) { clientConfiguration = getClientConfig(); clientConfiguration.setUseSsl(true); clientConfiguration.setUseNio(false); clientConfiguration.setPort(clientConfiguration.getSSLDefaultPort()); kineticClientConfigutations.put(NONNIO_SSL_CLIENT, clientConfiguration); } if (kineticClientConfigutations.size() == 0) { clientConfiguration = getClientConfig() ; clientConfiguration.setUseSsl(false); clientConfiguration.setUseNio(true); kineticClientConfigutations.put(NIO_NONSSL_CLIENT, clientConfiguration); } } private void closeKineticClients() throws KineticException { for(KineticP2pClient client: kineticClients.values()) { client.close(); } } }
kinetic-test/src/test/java/com/seagate/kinetic/IntegrationTestTargetFactory.java +10 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import java.io.IOException; import java.net.ServerSocket; import java.util.concurrent.ExecutionException; import kinetic.client.ClientConfiguration; import kinetic.client.KineticException; import kinetic.simulator.SimulatorConfiguration; Loading Loading @@ -91,6 +92,15 @@ public class IntegrationTestTargetFactory { return testTarget; } public static ClientConfiguration createDefaultClientConfig() { ClientConfiguration clientConfiguration = new ClientConfiguration(); clientConfiguration.setHost(System.getProperty("KINETIC_HOST", "localhost")); clientConfiguration.setPort(Integer.parseInt(System.getProperty("KINETIC_PORT", "8123"))); clientConfiguration.setNioServiceThreads(1); return clientConfiguration; } public static boolean isRunningAgainstSimulator() { return !Boolean .parseBoolean(System.getProperty("RUN_AGAINST_EXTERNAL")); Loading