diff options
author | Matthew Harmsen <mharmsen@redhat.com> | 2014-04-25 19:55:35 -0700 |
---|---|---|
committer | Matthew Harmsen <mharmsen@redhat.com> | 2014-04-29 14:19:36 -0700 |
commit | 7b6b60b7d8d26799ea1bda48e6e51fa05854c80e (patch) | |
tree | e51a0d515e8a9a2b9f80dee491fca5217054adf5 /base/java-tools/src/com/netscape/cmstools/system | |
parent | 05fea2520ae50d74f18017b26f5d58936e29af07 (diff) | |
download | pki-7b6b60b7d8d26799ea1bda48e6e51fa05854c80e.tar.gz pki-7b6b60b7d8d26799ea1bda48e6e51fa05854c80e.tar.xz pki-7b6b60b7d8d26799ea1bda48e6e51fa05854c80e.zip |
Fixed issue by streamlining code to be more consistent.
* PKI TRAC Ticket #843 - Incorrect CLI argument parsing
Diffstat (limited to 'base/java-tools/src/com/netscape/cmstools/system')
9 files changed, 158 insertions, 72 deletions
diff --git a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorAddCLI.java b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorAddCLI.java index d3ddd56f5..aa92bee34 100644 --- a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorAddCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorAddCLI.java @@ -18,6 +18,7 @@ package com.netscape.cmstools.system; import java.io.FileInputStream; +import java.util.Arrays; import javax.xml.bind.JAXBContext; import javax.xml.bind.Unmarshaller; @@ -42,10 +43,16 @@ public class KRAConnectorAddCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " <File Name>", options); + formatter.printHelp(getFullName() + " <File Name> [OPTIONS...]", options); } public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -57,21 +64,15 @@ public class KRAConnectorAddCLI extends CLI { System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage - printHelp(); - System.exit(0); - } - - String[] cLineArgs = cmd.getArgs(); + String[] cmdArgs = cmd.getArgs(); - if (cLineArgs.length < 1) { + if (cmdArgs.length < 1) { System.err.println("Error: No file name specified."); printHelp(); System.exit(-1); } - FileInputStream fis = new FileInputStream(cLineArgs[0].trim()); + FileInputStream fis = new FileInputStream(cmdArgs[0].trim()); JAXBContext context = JAXBContext.newInstance(KRAConnectorInfo.class); Unmarshaller unmarshaller = context.createUnmarshaller(); diff --git a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorRemoveCLI.java index ccd2cae3a..5f0f63b1a 100644 --- a/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorRemoveCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/system/KRAConnectorRemoveCLI.java @@ -19,6 +19,8 @@ package com.netscape.cmstools.system; import java.util.Arrays; +import org.apache.commons.cli.CommandLine; + import com.netscape.cmstools.cli.CLI; import com.netscape.cmstools.cli.MainCLI; @@ -35,21 +37,34 @@ public class KRAConnectorRemoveCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName() + " <KRA Host> <KRA Port>", options); + formatter.printHelp(getFullName() + " <KRA Host> <KRA Port> [OPTIONS...]", options); } public void execute(String[] args) throws Exception { - - // Check for "--help" + // Always check for "--help" prior to parsing if (Arrays.asList(args).contains("--help")) { // Display usage printHelp(); System.exit(0); } - if (args.length != 2) { + CommandLine cmd = null; + + try { + cmd = parser.parse(options, args); + + } catch (Exception e) { + System.err.println("Error: " + e.getMessage()); + printHelp(); + System.exit(-1); + } + + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 2) { + System.err.println("Error: Incorrect number of arguments specified."); printHelp(); - System.exit(1); + System.exit(-1); } String kraHost = args[0]; diff --git a/base/java-tools/src/com/netscape/cmstools/system/SecurityDomainGetInstallTokenCLI.java b/base/java-tools/src/com/netscape/cmstools/system/SecurityDomainGetInstallTokenCLI.java index d7fb4b12e..86e722aaa 100644 --- a/base/java-tools/src/com/netscape/cmstools/system/SecurityDomainGetInstallTokenCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/system/SecurityDomainGetInstallTokenCLI.java @@ -38,21 +38,15 @@ public class SecurityDomainGetInstallTokenCLI extends CLI { public SecurityDomainGetInstallTokenCLI(SecurityDomainCLI securityDomainCLI) { super("get-install-token", "Get install token", securityDomainCLI); this.securityDomainCLI = securityDomainCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS...]", options); + formatter.printHelp(getFullName() + " --subsystem <subsystem> [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - - // Check for "--help" prior to parsing due to required option - if (Arrays.asList(args).contains("--help")) { - // Display usage - printHelp(); - System.exit(0); - } - + public void createOptions() { Option option = new Option(null, "hostname", true, "Hostname"); option.setArgName("hostname"); options.addOption(option); @@ -61,6 +55,15 @@ public class SecurityDomainGetInstallTokenCLI extends CLI { option.setArgName("subsystem"); option.setRequired(true); options.addOption(option); + } + + public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -70,14 +73,15 @@ public class SecurityDomainGetInstallTokenCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } String[] cmdArgs = cmd.getArgs(); if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(1); + System.exit(-1); } String hostname = cmd.getOptionValue("hostname"); diff --git a/base/java-tools/src/com/netscape/cmstools/system/SecurityDomainShowCLI.java b/base/java-tools/src/com/netscape/cmstools/system/SecurityDomainShowCLI.java index a23bc52a5..dd6c92033 100644 --- a/base/java-tools/src/com/netscape/cmstools/system/SecurityDomainShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/system/SecurityDomainShowCLI.java @@ -18,6 +18,8 @@ package com.netscape.cmstools.system; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import com.netscape.certsrv.system.DomainInfo; @@ -36,10 +38,16 @@ public class SecurityDomainShowCLI extends CLI { } public void printHelp() { - formatter.printHelp(getFullName(), options); + formatter.printHelp(getFullName() + " [OPTIONS...]", options); } public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -49,20 +57,15 @@ public class SecurityDomainShowCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); - } - - if (cmd.hasOption("help")) { - // Display usage - printHelp(); - System.exit(0); + System.exit(-1); } String[] cmdArgs = cmd.getArgs(); if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(1); + System.exit(-1); } DomainInfo domain = securityDomainCLI.securityDomainClient.getDomainInfo(); diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorAddCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorAddCLI.java index fdf9ce817..ceeccdfef 100644 --- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorAddCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorAddCLI.java @@ -17,6 +17,8 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmstools.system; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; @@ -32,13 +34,15 @@ public class TPSConnectorAddCLI extends CLI { public TPSConnectorAddCLI(TPSConnectorCLI tpsConnectorCLI) { super("add", "Add TPS connector to TKS", tpsConnectorCLI); this.tpsConnectorCLI = tpsConnectorCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { + public void createOptions() { Option option = new Option(null, "host", true, "TPS host"); option.setArgName("host"); options.addOption(option); @@ -46,6 +50,15 @@ public class TPSConnectorAddCLI extends CLI { option = new Option(null, "port", true, "TPS port"); option.setArgName("port"); options.addOption(option); + } + + public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -55,13 +68,15 @@ public class TPSConnectorAddCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } String tpsHost = cmd.getOptionValue("host"); diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorFindCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorFindCLI.java index d69232bbd..bdff05624 100644 --- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorFindCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorFindCLI.java @@ -17,6 +17,7 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmstools.system; +import java.util.Arrays; import java.util.Collection; import org.apache.commons.cli.CommandLine; @@ -37,14 +38,15 @@ public class TPSConnectorFindCLI extends CLI { public TPSConnectorFindCLI(TPSConnectorCLI tpsConnectorCLI) { super("find", "Find TPS connectors on TKS", tpsConnectorCLI); this.tpsConnectorCLI = tpsConnectorCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - + public void createOptions() { Option option = new Option(null, "start", true, "Page start"); option.setArgName("start"); options.addOption(option); @@ -52,6 +54,15 @@ public class TPSConnectorFindCLI extends CLI { option = new Option(null, "size", true, "Page size"); option.setArgName("size"); options.addOption(option); + } + + public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -61,13 +72,15 @@ public class TPSConnectorFindCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } String s = cmd.getOptionValue("start"); diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorModCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorModCLI.java index e098f5b98..f9de2ab98 100644 --- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorModCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorModCLI.java @@ -1,5 +1,7 @@ package com.netscape.cmstools.system; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; @@ -13,13 +15,15 @@ public class TPSConnectorModCLI extends CLI { public TPSConnectorModCLI(TPSConnectorCLI tpsConnectorCLI) { super("mod", "Modify TPS connector on TKS", tpsConnectorCLI); this.tpsConnectorCLI = tpsConnectorCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " <Connector ID> [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { + public void createOptions() { Option option = new Option(null, "host", true, "TPS host"); option.setArgName("host"); options.addOption(option); @@ -27,6 +31,15 @@ public class TPSConnectorModCLI extends CLI { option = new Option(null, "port", true, "TPS port"); option.setArgName("port"); options.addOption(option); + } + + public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -36,19 +49,15 @@ public class TPSConnectorModCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); - } - - if (cmd.hasOption("help")) { - // Display usage - printHelp(); - System.exit(0); + System.exit(-1); } String[] cmdArgs = cmd.getArgs(); + if (cmdArgs.length != 1) { + System.err.println("Error: No Connector ID specified."); printHelp(); - System.exit(1); + System.exit(-1); } String connID = cmdArgs[0]; diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorRemoveCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorRemoveCLI.java index d4408141c..e8355de2e 100644 --- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorRemoveCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorRemoveCLI.java @@ -17,6 +17,8 @@ // --- END COPYRIGHT BLOCK --- package com.netscape.cmstools.system; +import java.util.Arrays; + import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Option; @@ -32,13 +34,15 @@ public class TPSConnectorRemoveCLI extends CLI { public TPSConnectorRemoveCLI(TPSConnectorCLI tpsConnectorCLI) { super("del", "Remove TPS connector from TKS", tpsConnectorCLI); this.tpsConnectorCLI = tpsConnectorCLI; + + createOptions(); } public void printHelp() { formatter.printHelp(getFullName() + " [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { + public void createOptions() { Option option = new Option(null, "host", true, "TPS host"); option.setArgName("host"); options.addOption(option); @@ -46,6 +50,15 @@ public class TPSConnectorRemoveCLI extends CLI { option = new Option(null, "port", true, "TPS port"); option.setArgName("port"); options.addOption(option); + } + + public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -55,13 +68,15 @@ public class TPSConnectorRemoveCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); } - if (cmd.hasOption("help")) { - // Display usage + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); printHelp(); - System.exit(0); + System.exit(-1); } String tpsHost = cmd.getOptionValue("host"); diff --git a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java index 03a56062c..2c2cb182c 100644 --- a/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java +++ b/base/java-tools/src/com/netscape/cmstools/system/TPSConnectorShowCLI.java @@ -36,21 +36,15 @@ public class TPSConnectorShowCLI extends CLI { public TPSConnectorShowCLI(TPSConnectorCLI tpsConnectorCLI) { super("show", "Show TPS connector details on TKS", tpsConnectorCLI); this.tpsConnectorCLI = tpsConnectorCLI; + + createOptions(); } public void printHelp() { - formatter.printHelp(getFullName() + " [OPTIONS...]", options); + formatter.printHelp(getFullName() + " --host <host> [OPTIONS...]", options); } - public void execute(String[] args) throws Exception { - - // Check for "--help" prior to parsing due to required option - if (Arrays.asList(args).contains("--help")) { - // Display usage - printHelp(); - System.exit(0); - } - + public void createOptions() { Option option = new Option(null, "host", true, "TPS host"); option.setArgName("host"); option.setRequired(true); @@ -59,6 +53,15 @@ public class TPSConnectorShowCLI extends CLI { option = new Option(null, "port", true, "TPS port"); option.setArgName("port"); options.addOption(option); + } + + public void execute(String[] args) throws Exception { + // Always check for "--help" prior to parsing + if (Arrays.asList(args).contains("--help")) { + // Display usage + printHelp(); + System.exit(0); + } CommandLine cmd = null; @@ -68,7 +71,15 @@ public class TPSConnectorShowCLI extends CLI { } catch (Exception e) { System.err.println("Error: " + e.getMessage()); printHelp(); - System.exit(1); + System.exit(-1); + } + + String[] cmdArgs = cmd.getArgs(); + + if (cmdArgs.length != 0) { + System.err.println("Error: Too many arguments specified."); + printHelp(); + System.exit(-1); } String tpsHost = cmd.getOptionValue("host"); |