Commit b89045f3 authored by lichenchong's avatar lichenchong
Browse files

Test cases:

1. Modify admin test cases to compitable with protocol 3.0.0.
2. Change default admin client to kinetic admin client, all test cases
in KineticAdminTest use admin API to test.
3. Add a Test Helper in KineticTestHelpers.
parent 570b8c74
Loading
Loading
Loading
Loading
+19 −9
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ import java.util.List;
import java.util.concurrent.ExecutionException;

import kinetic.admin.AdminClientConfiguration;
import kinetic.admin.KineticAdminClient;
import kinetic.admin.KineticAdminClientFactory;
import kinetic.client.ClientConfiguration;
import kinetic.client.Entry;
import kinetic.client.KineticClient;
@@ -41,12 +43,10 @@ import org.junit.Before;

import com.google.protobuf.ByteString;
import com.jcraft.jsch.JSchException;
import com.seagate.kinetic.admin.impl.DefaultAdminClient;
import com.seagate.kinetic.client.internal.MessageFactory;
import com.seagate.kinetic.common.lib.KineticMessage;
import com.seagate.kinetic.proto.Kinetic;
import com.seagate.kinetic.proto.Kinetic.Command;

import com.seagate.kinetic.proto.Kinetic.Command.Header;
import com.seagate.kinetic.proto.Kinetic.Command.Security.ACL.Permission;

@@ -64,7 +64,7 @@ public class IntegrationTestCase {
    public KineticTestRunner.TestClientConfigConfigurator testClientConfigurator;

    private KineticP2pClient kineticClient;
    private DefaultAdminClient adminClient;
    private KineticAdminClient adminClient;
    private AbstractIntegrationTestTarget testTarget;

    /**
@@ -84,7 +84,7 @@ public class IntegrationTestCase {
        testTarget = IntegrationTestTargetFactory.createTestTarget(true);
        kineticClient = KineticP2PClientFactory
                .createP2pClient(getClientConfig());
        adminClient = new DefaultAdminClient(getClientConfig());
        adminClient = KineticAdminClientFactory.createInstance(getAdminClientConfig());
    }

    /**
@@ -111,7 +111,7 @@ public class IntegrationTestCase {
        return kineticClient;
    }

    protected DefaultAdminClient getAdminClient() {
    protected KineticAdminClient getAdminClient() {
        return adminClient;
    }

@@ -153,15 +153,25 @@ public class IntegrationTestCase {
        return clientConfiguration;
    }

    /**
     * Get a Kinetic client configuration with default setting.
     * <p>
     */
    protected AdminClientConfiguration getAdminClientConfig() {
        AdminClientConfiguration adminClientConfiguration = testTarget
                .getAdminClientConfig();
        return adminClientConfiguration;
    }
    
    /**
     * Get a Kinetic client configuration with setting cluster version flexible.
     * <p>
     */
    protected AdminClientConfiguration getAdminClientConfig(long clusterVersion) {
        AdminClientConfiguration clientConfiguration = testTarget
        AdminClientConfiguration adminClientConfiguration = testTarget
                .getAdminClientConfig();
        clientConfiguration.setClusterVersion(clusterVersion);
        return clientConfiguration;
        adminClientConfiguration.setClusterVersion(clusterVersion);
        return adminClientConfiguration;
    }

    /**
@@ -176,7 +186,7 @@ public class IntegrationTestCase {
        testTarget = IntegrationTestTargetFactory.createTestTarget(false);
        kineticClient = KineticP2PClientFactory
                .createP2pClient(getClientConfig());
        adminClient = new DefaultAdminClient(getClientConfig());
        adminClient = KineticAdminClientFactory.createInstance(getAdminClientConfig());
    }

    /**
+146 −124
Original line number Diff line number Diff line
@@ -25,21 +25,21 @@ import static org.junit.Assert.assertTrue;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;

import kinetic.admin.ACL;
import kinetic.admin.Domain;
import kinetic.admin.KineticAdminClient;
import kinetic.admin.Role;
import kinetic.client.AsyncKineticException;
import kinetic.client.CallbackHandler;
import kinetic.client.CallbackResult;
import kinetic.client.KineticException;

import com.google.protobuf.ByteString;
import com.seagate.kinetic.admin.impl.DefaultAdminClient;
import com.seagate.kinetic.client.internal.MessageFactory;
import com.seagate.kinetic.common.lib.KineticMessage;
import com.seagate.kinetic.proto.Kinetic;
import com.seagate.kinetic.proto.Kinetic.Command;
import com.seagate.kinetic.proto.Kinetic.Message;

/**
 * Kinetic test utility.
@@ -109,29 +109,19 @@ public class KineticTestHelpers {
     * @throws KineticException
     *             if any kinetic internal error occurred.
     */
	public static void cleanPin(String pin, DefaultAdminClient client)
    public static void cleanPin(String pin, KineticAdminClient client)
            throws KineticException {

        if (Boolean.getBoolean("kinetic.test.disable-clean-pin")) {
            return;
        }

		KineticMessage km = MessageFactory.createKineticMessageWithBuilder();
        byte[] oldErasePin = toByteArray(pin);

		Command.Builder commandBuilder = (Command.Builder) km.getCommand();
        List<ACL> acls = new ArrayList<ACL>();
        acls = setDefaultAcls();

		Kinetic.Command.Setup.Builder setup = commandBuilder
				.getBodyBuilder().getSetupBuilder();
		
		/**
		 * XXX: protocol-3.0.0
		 */
		//setup.setPin(ByteString.copyFromUtf8(pin));

		KineticMessage respond = client.configureSetupPolicy(km);

		assertTrue(respond.getCommand().getStatus().getCode()
				.equals(Kinetic.Command.Status.StatusCode.SUCCESS));
        client.setSecurity(acls, null, null, oldErasePin, null);
    }

    /**
@@ -167,4 +157,36 @@ public class KineticTestHelpers {
        assertTrue(latch.await(secondsTimeout, TimeUnit.SECONDS));
    }

    /**
     * Set Default Acl.
     *
     * @return List<ACL> return default ACL.
     */
    public static List<ACL> setDefaultAcls() {
        List<Role> roles = new ArrayList<Role>();
        roles.add(Role.DELETE);
        roles.add(Role.GETLOG);
        roles.add(Role.READ);
        roles.add(Role.RANGE);
        roles.add(Role.SECURITY);
        roles.add(Role.SETUP);
        roles.add(Role.WRITE);
        roles.add(Role.P2POP);

        Domain domain = new Domain();
        domain.setRoles(roles);

        List<Domain> domains = new ArrayList<Domain>();
        domains.add(domain);

        List<ACL> acls = new ArrayList<ACL>();
        ACL acl1 = new ACL();
        acl1.setDomains(domains);
        acl1.setUserId(1);
        acl1.setKey("asdfasdf");

        acls.add(acl1);

        return acls;
    }
}
+1587 −1234

File changed.

Preview size limit exceeded, changes collapsed.