BUG 5413 - RestPerfClient: Hang on java.util.concurrent.CancellationException.
[netconf.git] / opendaylight / netconf / tools / netconf-testtool / src / main / java / org / opendaylight / netconf / test / tool / client / http / perf / Parameters.java
index 32bb6a36b983fdb43830c0017cbf6d4a74355d85..6f5736f0112b7cd67e3b24f0f18eeb848c1fab66 100644 (file)
@@ -13,6 +13,7 @@ import java.io.File;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
+import java.util.ArrayList;
 import net.sourceforge.argparse4j.ArgumentParsers;
 import net.sourceforge.argparse4j.annotation.Arg;
 import net.sourceforge.argparse4j.inf.ArgumentParser;
@@ -49,6 +50,12 @@ public class Parameters {
     @Arg(dest = "throttle")
     public int throttle;
 
+    @Arg(dest = "auth")
+    public ArrayList<String> auth;
+
+    @Arg(dest = "timeout")
+    public long timeout;
+
     static ArgumentParser getParser() {
         final ArgumentParser parser = ArgumentParsers.newArgumentParser("netconf stress client");
 
@@ -113,16 +120,31 @@ public class Parameters {
                         "with mutltiple threads this gets divided among all threads")
                 .dest("throttle");
 
+        parser.addArgument("--auth")
+                .nargs(2)
+                .help("Username and password for HTTP basic authentication in order username password.")
+                .dest("auth");
+
+        parser.addArgument("--timeout")
+                .type(Long.class)
+                .setDefault(5)
+                .help("Maximum time in minutes to wait for finishing all requests.")
+                .dest("timeout");
+
         return parser;
     }
 
     void validate() {
         Preconditions.checkArgument(port > 0, "Port =< 0");
         Preconditions.checkArgument(editCount > 0, "Edit count =< 0");
+        Preconditions.checkArgument(timeout > 0, "Timeout =< 0");
 
         Preconditions.checkArgument(editContent.exists(), "Edit content file missing");
         Preconditions.checkArgument(editContent.isDirectory() == false, "Edit content file is a dir");
         Preconditions.checkArgument(editContent.canRead(), "Edit content file is unreadable");
+
+        Preconditions.checkArgument(destination.startsWith("/"), "Destination should start with a '/'");
+
         // TODO validate
     }