Commit 24ab2cc0 authored by chiaming2000's avatar chiaming2000
Browse files

Http/https transport support for protocol 3.0.0.

Please note that this (http/s) is a proto type implementation and is
supported by simulator and Java API only.
parent db7ac9c1
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -119,9 +119,11 @@ public class ClientProxy {
        // io handler
        this.iohandler = new IoHandler(this);
        
        if (this.iohandler.shouldWaitForStatusMessage()) {
            // wait for status message
            this.waitForStatusMessage();
        }
    }
    
    private void waitForStatusMessage() throws KineticException {
        
+9 −0
Original line number Diff line number Diff line
@@ -222,4 +222,13 @@ public class IoHandler {
		return provider;
	}
	
	public boolean shouldWaitForStatusMessage() {
	    
	    if (this.useHttp || this.useHttps || this.useUdt) {
	        return false;
	    }
	    
	    return true;
	}

}
+3 −1
Original line number Diff line number Diff line
@@ -136,9 +136,11 @@ public class MessageHandler implements ClientMessageService, Runnable {
		        this.isStatusMessageReceived = true;
		        return;
		    } else {
		        if (this.iohandler.shouldWaitForStatusMessage()) {
		            logger.warning("received unexpected message ..." + message.getMessage() + ", command=" + message.getCommand());
		        }
		    }
		}

		Long seq = Long.valueOf(message.getCommand().getHeader()
				.getAckSequence());
+16 −0
Original line number Diff line number Diff line
@@ -26,8 +26,11 @@ import io.netty.handler.codec.http.HttpResponse;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.google.protobuf.ByteString;
import com.google.protobuf.InvalidProtocolBufferException;
import com.seagate.kinetic.client.io.provider.spi.ClientMessageService;
import com.seagate.kinetic.common.lib.KineticMessage;
import com.seagate.kinetic.proto.Kinetic.Command;
import com.seagate.kinetic.proto.KineticIo.ExtendedMessage;

/**
@@ -96,6 +99,19 @@ SimpleChannelInboundHandler<Object> {
            // set interface message
            km.setMessage(extendedMessage.getInterfaceMessage());
            
         // get command bytes
            ByteString commandBytes = extendedMessage.getInterfaceMessage().getCommandBytes();
            
            // build command
            Command.Builder commandBuilder = Command.newBuilder();
            
            try {
                commandBuilder.mergeFrom(commandBytes);
                km.setCommand(commandBuilder.build());
            } catch (InvalidProtocolBufferException e) {
               logger.log(Level.WARNING, e.getMessage(), e);
            }

            // set value
            if (extendedMessage.hasValue()) {
                km.setValue(extendedMessage.getValue().toByteArray());
+15 −0
Original line number Diff line number Diff line
@@ -43,7 +43,9 @@ import java.util.logging.Level;
import java.util.logging.Logger;

import com.google.protobuf.ByteString;
import com.google.protobuf.InvalidProtocolBufferException;
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.KineticIo.ExtendedMessage;
import com.seagate.kinetic.simulator.io.provider.spi.MessageService;
@@ -145,6 +147,19 @@ SimpleChannelInboundHandler<Object> {
            // set interface message
            km.setMessage(extended.getInterfaceMessage());
            
         // get command bytes
            ByteString commandBytes = extendedMessage.getInterfaceMessage().getCommandBytes();
            
            // build command
            Command.Builder commandBuilder = Command.newBuilder();
            
            try {
                commandBuilder.mergeFrom(commandBytes);
                km.setCommand(commandBuilder.build());
            } catch (InvalidProtocolBufferException e) {
               logger.log(Level.WARNING, e.getMessage(), e);
            }

            // set value
            if (extended.hasValue()) {
                km.setValue(extended.getValue().toByteArray());