Commit e78093dd authored by lichenchong's avatar lichenchong
Browse files

Modify Admin client only support SSL connection to simulator/drive.

1. Add a admin client configuration.
2. Modify the test cases and clean up.
3. Modify the admin client CLI and script.
4. Modify heartbeat monitor.
5. Modify smoke test script.
parent 7a71096d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -120,8 +120,8 @@ Make sure one instance of simulator or kinetic drive is running.

2. cd "Kinetic-Folder"/bin

3. sh runSmokeTests.sh [-host host_ip] [-port port] [-home kinetic_home]
3. sh runSmokeTests.sh [-host host_ip] [-port port] [-tlsport tlsport] [-home kinetic_home]
   or
   python runSmokeTests.py [-host host_ip] [-port port] [-home kinetic_home]
   python runSmokeTests.py [-host host_ip] [-port port] [-tlsport tlsport] [-home kinetic_home]
            
            
+18 −22
Original line number Diff line number Diff line
Kinetic Simulator/Admin Command Line Interface (CLI).

0. Assume you have at least Java SE 1.6 or 1.7 installed on your machine.
0. Assume you have at least Java SE 1.6 or 1.7 or 1.8 installed on your machine.
 
1. Define JAVA_HOME environment variable (example: google 'how to set JAVA_HOME on Mac).

2. Run "mvn clean package" in <Kinetic-Folder>, verify 
   <Kinetic-Folder>/kinetic-simulator/target/kinetic-simulator-0.5.0.1-SNAPSHOT-jar-with-dependencies.jar 
   <Kinetic-Folder>/kinetic-client/target/kinetic-client-0.5.0.1-SNAPSHOT-jar-with-dependencies.jar
   <Kinetic-Folder>/kinetic-simulator/target/kinetic-simulator-0.6.0.1-SNAPSHOT-jar-with-dependencies.jar 
   <Kinetic-Folder>/kinetic-client/target/kinetic-client-0.6.0.1-SNAPSHOT-jar-with-dependencies.jar
   exist.

3. To start Kinetic simulator:
@@ -47,15 +47,15 @@ Run smoke test against simulator or kinetic drive
Make sure one instance of simulator or kinetic drive is running.

1. Run "mvn clean package" in <Kinetic-Folder> or <Kinetic-Folder>/kinetic-test, verify 
   <Kinetic-Folder>/kinetic-test/target/kinetic-test-0.5.0.1-SNAPSHOT-jar-with-dependencies.jar 
   <Kinetic-Folder>/kinetic-test/target/kinetic-test-0.6.0.1-SNAPSHOT-jar-with-dependencies.jar 
   <Kinetic-Folder>/kinetic-test/target/smoke-tests.jar
   exist.

2. cd <Kinetic-Folder>/bin

3. sh runSmokeTests.sh [-host host_ip] [-port port] [-home kinetic_home]
3. sh runSmokeTests.sh [-host host_ip] [-port port] [-tlsport tlsport] [-home kinetic_home]
   or
   python runSmokeTests.py [-host host_ip] [-port port] [-home kinetic_home]
   python runSmokeTests.py [-host host_ip] [-port port] [-tlsport tlsport] [-home kinetic_home]
   
Usage of Kinetic Admin API script
==================================
@@ -63,18 +63,17 @@ Usage of Kinetic Admin API script
   
   Usage: kineticAdmin <-setup|-security|-getlog|-firmware>
          kineticAdmin -h|-help
          kineticAdmin -setup [-host <ip|hostname>] [-port <port>] [-tls <true|false>] [-clversion <clusterversion>] [-pin <pin>] [-newclversion <newclusterversion>] [-setpin <setpin>] [-erase <true|false>]
          kineticAdmin -security <file> [-host <ip|hostname>] [-port <port>] [-clversion <clusterversion>] [-tls <true|false>]
          kineticAdmin -getlog [-host <ip|hostname>] [-port <port>] [-tls <true|false>] [-clversion <clusterversion>] [-type <utilization|temperature|capacity|configuration|message|statistic|all>]
          kineticAdmin -firmware <file> [-host <ip|hostname>] [-port <port>] [-tls <true|false>] [-clversion <clusterversion>] [-pin <pin>]
          kineticAdmin -setup [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>] [-pin <pin>] [-newclversion <newclusterversion>] [-setpin <setpin>] [-erase <true|false>]
          kineticAdmin -security <file> [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>]
          kineticAdmin -getlog [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>] [-type <utilization|temperature|capacity|configuration|message|statistic|all>]
          kineticAdmin -firmware <file> [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>] [-pin <pin>]

2. setup:
   sh kineticAdmin.sh -setup [-host <ip|hostname>] [-port <port>] [-tls <true|false>] [-clversion <clusterversion>] [-pin <pin>] [-newclversion <newclusterversion>] [-setpin <setpin>] [-erase <true|false>]
   sh kineticAdmin.sh -setup [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>] [-pin <pin>] [-newclversion <newclusterversion>] [-setpin <setpin>] [-erase <true|false>]
   
   Parameters are optional, the default values are set as below: 
   host=127.0.0.1    simulator/drive's ipaddress
   port=8123         admin client connect to simulator/drive via this port
   tls=false         whether using ssl/tls to connect simulator
   tlsport=8443      admin client connect to simulator/drive via this port
   clversion=0       admin client connect to simulator/drive within this cluster version
   
   For example,
@@ -129,12 +128,11 @@ Usage of Kinetic Admin API script
                   sh kineticAdmin.sh -setup -host 10.24.70.123 -clversion 1 -pin 123 -erase true
                   
3. set security                   
   sh kineticAdmin.sh -security <file> [-host <ip|hostname>] [-port <port>] [-clversion <clusterversion>] [-tls <true|false>]                
   sh kineticAdmin.sh -security <file> [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>]               
   
   Parameters are optional, the default values are set as below: 
   host=127.0.0.1
   port=8123
   tls=false
   tlsport=8443
   clversion=0               
                   
   For example,
@@ -150,12 +148,11 @@ Usage of Kinetic Admin API script
         sh kineticAdmin.sh -security security.template -host 10.24.70.123 -clversion 1
         
4. get log
   kineticAdmin -getlog [-host <ip|hostname>] [-port <port>] [-tls <true|false>] [-clversion <clusterversion>] [-type <utilization|temperature|capacity|configuration|message|statistic|all>]
   kineticAdmin -getlog [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>] [-type <utilization|temperature|capacity|configuration|message|statistic|all>]
   
   Parameters are optional, the default values are set as below: 
   host=127.0.0.1
   port=8123
   tls=false
   tlsport=8443
   clversion=0
   
   For example,
@@ -207,12 +204,11 @@ Usage of Kinetic Admin API script
   Get statistic     log info: sh kineticAdmin.sh -getlog -host 10.24.70.123 -clversion 1 -type statistic
   
5. firmware download
   kineticAdmin -firmware <file> [-host <ip|hostname>] [-port <port>] [-tls <true|false>] [-clversion <clusterversion>] [-pin <pin>]
   kineticAdmin -firmware <file> [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>] [-pin <pin>]
   
   Parameters are optional, the default values are set as below: 
   host=127.0.0.1
   port=8123
   tls=false
   tlsport=8443
   clversion=0            
   
   For example,
+8 −1
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ BASE_DIR=`cd "$BASE_DIR"; pwd`
#echo "BASE_DIR=$BASE_DIR"
HOST=127.0.0.1
PORT=8123
SSL_PORT=8443
HOME=`cd ~; pwd`
USE_SOCKET_LOG=false
LOG_SERVER_IP=127.0.0.1
@@ -40,6 +41,7 @@ printUsage(){
   echo "            -help                 usage"
   echo "            -host                 drive or simulator device ip address, default is 127.0.0.1"
   echo "            -port                 connection port, default is 8123"
   echo "            -tlsport              ssl connection port, defalt is 8443"
   echo "            -home                 drive or simulator home, default is user home path"
   echo "            -usesocketlog         use socket log or not, default is false"
   echo "            -logserverip          when use socket log is true, log server's ip address, default is 127.0.0.1"
@@ -71,6 +73,11 @@ do
      PORT=$2
      shift
      ;;
    -tlsport)
      echo "Print tls port \"$2\""
      SSL_PORT=$2
      shift
      ;;
    -home)
      echo "Print home \"$2\""
      HOME=$2
@@ -106,6 +113,6 @@ do
   shift
done

exec "$JAVA" -classpath "$CLASSPATH" -DRUN_NIO_TEST=true -DRUN_SSL_TEST=true -DRUN_AGAINST_EXTERNAL=true -DKINETIC_HOST=$HOST -DKINETIC_PORT=$PORT -DKINETIC_HOME=$HOME -DUSE_SOCKET_LOGGER=$USE_SOCKET_LOG -DLOG_SOCKET_HOST=$LOG_SERVER_IP -DLOG_SOCKET_PORT=$LOG_SERVER_PORT -DKINETIC_LOG_FORMATTER=$LOG_FORMATTER com.seagate.kinetic.allTests.AllTestsRunner
exec "$JAVA" -classpath "$CLASSPATH" -DRUN_NIO_TEST=true -DRUN_SSL_TEST=true -DRUN_AGAINST_EXTERNAL=true -DKINETIC_HOST=$HOST -DKINETIC_PORT=$PORT -DKINETIC_SSL_PORT=$SSL_PORT  -DKINETIC_HOME=$HOME -DUSE_SOCKET_LOGGER=$USE_SOCKET_LOG -DLOG_SOCKET_HOST=$LOG_SERVER_IP -DLOG_SOCKET_PORT=$LOG_SERVER_PORT -DKINETIC_LOG_FORMATTER=$LOG_FORMATTER com.seagate.kinetic.allTests.AllTestsRunner

exit 0
+16 −43
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import kinetic.admin.AdminClientConfiguration;
import kinetic.client.ClientConfiguration;
import kinetic.client.KineticClient;
import kinetic.client.KineticClientFactory;
@@ -55,10 +56,8 @@ public class KineticAdminCLI {
    private static final String CONFIGURATION = "configuration";
    private static final String MESSAGES = "message";
    private static final String STATISTICS = "statistic";
    private static final int DEFAULT_PORT = 8123;
    private static final int DEFAULT_SSL_PORT = 8443;
    private static final String DEFAULT_HOST = "localhost";
    private static final boolean DEFAULT_USE_SSL = false;
    private static final long CLUSTERVERSION = 0;
    private static final int OK = 0;
    private static final int ERROR = 1;
@@ -104,9 +103,9 @@ public class KineticAdminCLI {
    /*
     * init Kinetic client
     */
    public void init(String host, String port, String tls, String clusterVersion)
    public void init(String host, String tlsPort, String clusterVersion)
            throws KineticException {
        ClientConfiguration clientConfig = new ClientConfiguration();
        ClientConfiguration clientConfig = new AdminClientConfiguration();
        if (host != null && !host.isEmpty()) {
            validateHost(host);
            clientConfig.setHost(host);
@@ -114,21 +113,10 @@ public class KineticAdminCLI {
            clientConfig.setHost(DEFAULT_HOST);
        }

        if (tls != null && !tls.isEmpty()) {
            validateTls(tls);
            clientConfig.setUseSsl(Boolean.parseBoolean(tls));
        if (tlsPort != null && !tlsPort.isEmpty()) {
            validatePort(tlsPort);
            clientConfig.setPort(Integer.parseInt(tlsPort));
        } else {
            clientConfig.setUseSsl(DEFAULT_USE_SSL);
        }

        if (port != null && !port.isEmpty()) {
            validatePort(port);
            clientConfig.setPort(Integer.parseInt(port));
        } else {
            clientConfig.setPort(DEFAULT_PORT);
        }

        if (Boolean.parseBoolean(tls) && port == null) {
            clientConfig.setPort(DEFAULT_SSL_PORT);
        }

@@ -221,8 +209,7 @@ public class KineticAdminCLI {
     * Parse the setup argument
     */
    public KineticMessage setup(String pin, String setPin,
            String newClusterVersion,
            String erase) throws KineticException {
            String newClusterVersion, String erase) throws KineticException {

        KineticMessage km = MessageFactory.createKineticMessageWithBuilder();
        Message.Builder request = (Builder) km.getMessage();
@@ -275,7 +262,6 @@ public class KineticAdminCLI {
        request.getCommandBuilder().getBodyBuilder().setSetup(setup);

        if (null != content && content.length > 0) {
            // request.setValue(ByteString.copyFrom(content));
            km.setValue(content);
        }

@@ -286,10 +272,10 @@ public class KineticAdminCLI {
        StringBuffer sb = new StringBuffer();
        sb.append("Usage: kineticAdmin <-setup|-security|-getlog|-firmware>\n");
        sb.append("kineticAdmin -h|-help\n");
        sb.append("kineticAdmin -setup [-host <ip|hostname>] [-port <port>] [-tls <true|false>] [-clversion <clusterversion>] [-pin <pin>] [-newclversion <newclusterversion>] [-setpin <setpin>] [-erase <true|false>]\n");
        sb.append("kineticAdmin -security <file> [-host <ip|hostname>] [-port <port>] [-clversion <clusterversion>] [-tls <true|false>]\n");
        sb.append("kineticAdmin -getlog [-host <ip|hostname>] [-port <port>] [-tls <true|false>] [-clversion <clusterversion>] [-type <utilization|temperature|capacity|configuration|message|statistic|all>]\n");
        sb.append("kineticAdmin -firmware <file> [-host <ip|hostname>] [-port <port>] [-tls <true|false>] [-clversion <clusterversion>] [-pin <pin>]");
        sb.append("kineticAdmin -setup [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>] [-pin <pin>] [-newclversion <newclusterversion>] [-setpin <setpin>] [-erase <true|false>]\n");
        sb.append("kineticAdmin -security <file> [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>]\n");
        sb.append("kineticAdmin -getlog [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>] [-type <utilization|temperature|capacity|configuration|message|statistic|all>]\n");
        sb.append("kineticAdmin -firmware <file> [-host <ip|hostname>] [-tlsport <tlsport>] [-clversion <clusterversion>] [-pin <pin>]");
        System.out.println(sb.toString());
    }

@@ -452,21 +438,18 @@ public class KineticAdminCLI {
            KineticAdminCLI kineticAdminCLI) throws KineticException {
        String host;
        String port;
        String tls;
        String clusterVersion;
        host = kineticAdminCLI.getArgValue("-host", args);
        port = kineticAdminCLI.getArgValue("-port", args);
        tls = kineticAdminCLI.getArgValue("-tls", args);
        port = kineticAdminCLI.getArgValue("-tlsport", args);
        clusterVersion = kineticAdminCLI.getArgValue("-clversion", args);
        kineticAdminCLI.init(host, port, tls, clusterVersion);
        kineticAdminCLI.init(host, port, clusterVersion);
    }

    private List<String> initSubArgs() {
        List<String> subArgs;
        subArgs = new ArrayList<String>();
        subArgs.add("-host");
        subArgs.add("-port");
        subArgs.add("-tls");
        subArgs.add("-tlsport");
        subArgs.add("-clversion");
        return subArgs;
    }
@@ -515,16 +498,6 @@ public class KineticAdminCLI {
        }
    }

    private void validateTls(String tls) throws IllegalArgumentException {
        if (tls == null || tls.isEmpty()) {
            throw new IllegalArgumentException("TLS can not be empty");
        }

        if (!tls.equalsIgnoreCase("true") && !tls.equalsIgnoreCase("false")) {
            throw new IllegalArgumentException("Illegal TLS");
        }
    }

    private void validateLogType(String logType)
            throws IllegalArgumentException {
        if (logType == null || logType.isEmpty()) {
+157 −157
Original line number Diff line number Diff line
@@ -16,10 +16,10 @@ import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
import java.util.logging.Logger;

import kinetic.admin.AdminClientConfiguration;
import kinetic.admin.KineticAdminClient;
import kinetic.admin.KineticAdminClientFactory;
import kinetic.admin.KineticLog;
import kinetic.client.ClientConfiguration;
import kinetic.client.KineticException;

import com.seagate.kinetic.heartbeat.HeartbeatMessage;
@@ -71,7 +71,7 @@ public class KineticHeartbeatListenerService extends HeartbeatListener {
            return "";
        }

		ClientConfiguration clientConfig = new ClientConfiguration();
        AdminClientConfiguration clientConfig = new AdminClientConfiguration();
        clientConfig.setHost(nodeInfo.getHost());
        clientConfig.setPort(nodeInfo.getPort());

Loading