Martin Peřina has uploaded a new change for review.

Change subject: tools: Adds more argument validations to engine-manage-domains
......................................................................

tools: Adds more argument validations to engine-manage-domains

Checks that all entered arguments are valid for specified action
(previous behavior was to ignore args that have no meaning for specified
action).

Change-Id: I7684387b62ce8eeda0416e4d2b3cfb2337cd7f16
Bug-Url: https://bugzilla.redhat.com/1057172
Signed-off-by: Martin Perina <[email protected]>
---
M 
backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomainsArguments.java
1 file changed, 53 insertions(+), 36 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/53/24353/1

diff --git 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomainsArguments.java
 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomainsArguments.java
index 7916c1d..1eb2f87 100644
--- 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomainsArguments.java
+++ 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomainsArguments.java
@@ -164,55 +164,72 @@
 
     /**
      * Configures argument parser and returns its instance
+     *
+     * @param action specified action
      */
-    private ExtendedCliParser initParser() {
+    private ExtendedCliParser initParser(String action) {
         ExtendedCliParser parser = new ExtendedCliParser();
-
-        parser.addArg(new ArgumentBuilder()
-                .longName(ARG_ADD_PERMISSIONS)
-                .build());
-
-        parser.addArg(new ArgumentBuilder()
-                .longName(ARG_CHANGE_PASSWORD_MSG)
-                .build());
 
         parser.addArg(new ArgumentBuilder()
                 .longName(ARG_CONFIG_FILE)
                 .valueRequied(true)
                 .build());
 
-        parser.addArg(new ArgumentBuilder()
-                .longName(ARG_DOMAIN)
-                .valueRequied(true)
-                .build());
+        if (ACTION_ADD.equals(action) || ACTION_EDIT.equals(action)) {
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_DOMAIN)
+                    .valueRequied(true)
+                    .build());
 
-        parser.addArg(new ArgumentBuilder()
-                .longName(ARG_FORCE)
-                .build());
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_PROVIDER)
+                    .valueRequied(true)
+                    .build());
 
-        parser.addArg(new ArgumentBuilder()
-                .longName(ARG_LDAP_SERVERS)
-                .valueRequied(true)
-                .build());
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_USER)
+                    .valueRequied(true)
+                    .build());
 
-        parser.addArg(new ArgumentBuilder()
-                .longName(ARG_PASSWORD_FILE)
-                .valueRequied(true)
-                .build());
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_ADD_PERMISSIONS)
+                    .build());
 
-        parser.addArg(new ArgumentBuilder()
-                .longName(ARG_PROVIDER)
-                .valueRequied(true)
-                .build());
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_LDAP_SERVERS)
+                    .valueRequied(true)
+                    .build());
 
-        parser.addArg(new ArgumentBuilder()
-                .longName(ARG_REPORT)
-                .build());
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_PASSWORD_FILE)
+                    .valueRequied(true)
+                    .build());
 
-        parser.addArg(new ArgumentBuilder()
-                .longName(ARG_USER)
-                .valueRequied(true)
-                .build());
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_CHANGE_PASSWORD_MSG)
+                    .build());
+
+        } else if (ACTION_DELETE.equals(action)) {
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_DOMAIN)
+                    .valueRequied(true)
+                    .build());
+
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_FORCE)
+                    .build());
+
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_PASSWORD_FILE)
+                    .valueRequied(true)
+                    .build());
+
+        } else if (ACTION_VALIDATE.equals(action)) {
+            parser.addArg(new ArgumentBuilder()
+                    .longName(ARG_REPORT)
+                    .build());
+
+        }
 
         return parser;
     }
@@ -258,7 +275,7 @@
         if (args.length > 1) {
             // entered more args than just action, parse them
             try {
-                ExtendedCliParser parser = initParser();
+                ExtendedCliParser parser = initParser(args[0]);
                 argMap = parser.parse(args, 1, args.length);
             } catch (IllegalArgumentException ex) {
                 throw new 
ManageDomainsResult(ManageDomainsResultEnum.ARGUMENT_PARSING_ERROR, 
ex.getMessage());


-- 
To view, visit http://gerrit.ovirt.org/24353
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7684387b62ce8eeda0416e4d2b3cfb2337cd7f16
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4
Gerrit-Owner: Martin Peřina <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to