Commit d4a72721 authored by chiaming2000's avatar chiaming2000
Browse files

Merge pull request #12 from Seagate/batch-operation

Support batch operations (protocol 3.0.6)
parents 72f2e588 7e739eaf
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -29,4 +29,4 @@ database.db
*.result
/target

/kinetic-common/src/main/java/com/seagate/kinetic/proto/kinetic.proto
#/kinetic-common/src/main/java/com/seagate/kinetic/proto/kinetic.proto
+1 −0
Original line number Diff line number Diff line
@@ -134,6 +134,7 @@
			</plugin>
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>2.5.2</version>
				<configuration>
					<archive>
						<manifest>
+1 −0
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@
			</plugin>
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>2.5.2</version>
				<configuration>
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
+12 −10
Original line number Diff line number Diff line
@@ -25,19 +25,15 @@ import kinetic.admin.Domain;
import kinetic.admin.KineticAdminClient;
import kinetic.admin.KineticLog;
import kinetic.admin.KineticLogType;

import kinetic.client.ClientConfiguration;

import kinetic.client.KineticException;

import com.google.protobuf.ByteString;

import com.seagate.kinetic.client.internal.MessageFactory;
import com.seagate.kinetic.client.internal.p2p.DefaultKineticP2pClient;
import com.seagate.kinetic.common.lib.HMACAlgorithmUtil;
import com.seagate.kinetic.common.lib.KineticMessage;
import com.seagate.kinetic.proto.Kinetic.Command;

import com.seagate.kinetic.proto.Kinetic.Command.GetLog;
import com.seagate.kinetic.proto.Kinetic.Command.GetLog.Type;
import com.seagate.kinetic.proto.Kinetic.Command.Header;
@@ -50,8 +46,8 @@ import com.seagate.kinetic.proto.Kinetic.Command.Security.ACL.HMACAlgorithm;
import com.seagate.kinetic.proto.Kinetic.Command.Setup;
import com.seagate.kinetic.proto.Kinetic.Command.Status;
import com.seagate.kinetic.proto.Kinetic.Command.Status.StatusCode;
import com.seagate.kinetic.proto.Kinetic.Message.AuthType;
import com.seagate.kinetic.proto.Kinetic.Message;
import com.seagate.kinetic.proto.Kinetic.Message.AuthType;
import com.seagate.kinetic.proto.Kinetic.Message.PINauth;

/**
@@ -459,7 +455,7 @@ public class DefaultAdminClient extends DefaultKineticP2pClient implements Kinet
     * {@inheritDoc}
     */
    @Override
    public void firmwareDownload(byte[] pin, byte[] bytes)
    public void firmwareDownload(byte[] bytes)
            throws KineticException {

        KineticMessage km = MessageFactory.createKineticMessageWithBuilder();
@@ -469,10 +465,6 @@ public class DefaultAdminClient extends DefaultKineticP2pClient implements Kinet
        Setup.Builder setup = commandBuilder.getBodyBuilder()
                .getSetupBuilder();

//        if (null != pin && pin.length > 0) {
//            setup.setPin(ByteString.copyFrom(pin));
//        }

        setup.setFirmwareDownload(true);

        if (null != bytes && bytes.length > 0) {
@@ -813,6 +805,16 @@ public class DefaultAdminClient extends DefaultKineticP2pClient implements Kinet
        return kmresp;
    }

    /**
     * @deprecated
     */
    @Deprecated
    @Override
    public void firmwareDownload(byte[] pin, byte[] bytes)
            throws KineticException {
        this.firmwareDownload(bytes);
    }
    
    
    
}
+11 −7
Original line number Diff line number Diff line
@@ -40,12 +40,12 @@ import com.seagate.kinetic.common.lib.Hmac;
import com.seagate.kinetic.common.lib.Hmac.HmacException;
import com.seagate.kinetic.common.lib.KineticMessage;
import com.seagate.kinetic.proto.Kinetic.Command;
import com.seagate.kinetic.proto.Kinetic.Message;
import com.seagate.kinetic.proto.Kinetic.Message.AuthType;
import com.seagate.kinetic.proto.Kinetic.Message.Builder;
import com.seagate.kinetic.proto.Kinetic.Command.Header;
import com.seagate.kinetic.proto.Kinetic.Command.MessageType;
import com.seagate.kinetic.proto.Kinetic.Command.Range;
import com.seagate.kinetic.proto.Kinetic.Message;
import com.seagate.kinetic.proto.Kinetic.Message.AuthType;
import com.seagate.kinetic.proto.Kinetic.Message.Builder;


/**
@@ -594,12 +594,16 @@ public class ClientProxy {
         */
        if (header.getMessageType() == MessageType.PUT) {
            if (commandBuilder.getBodyBuilder().getKeyValueBuilder().hasTag() == false) {
                // calculate value Hmac
                ByteString tag = Hmac.calcTag(kineticMessage, this.myKey);
                // set tag
                // set tag to empty for backward compatibility with drive.
                // this can be removed when drive does not require the tag
                // to be set.
                commandBuilder.getBodyBuilder().getKeyValueBuilder()
                        .setTag(tag);
                        .setTag(ByteString.EMPTY);

                // commandBuilder.getBodyBuilder().getKeyValueBuilder()
                // .setAlgorithm(Algorithm.INVALID_ALGORITHM);
            }

        }

        /**
Loading