Fix shell extra args bug
authorStavros Sachtouris <saxtouri@admin.grnet.gr>
Thu, 6 Dec 2012 15:52:21 +0000 (17:52 +0200)
committerStavros Sachtouris <saxtouri@admin.grnet.gr>
Thu, 6 Dec 2012 15:52:21 +0000 (17:52 +0200)
kamaki/cli/argument.py
kamaki/cli/command_shell.py

index 3528373..7dfb3d9 100644 (file)
@@ -437,9 +437,12 @@ class ArgumentParseManager(object):
             self._arguments.update(new_arguments)
             self.update_parser()
 
-    def parse(self):
+    def parse(self, new_args=None):
         """Do parse user input"""
-        self._parsed, unparsed = self.parser.parse_known_args()
+        if new_args:
+            self._parsed, unparsed = self.parser.parse_known_args(new_args)
+        else:
+            self._parsed, unparsed = self.parser.parse_known_args()
         for name, arg in self.arguments.items():
             arg.value = getattr(self._parsed, name, arg.default)
         self._unparsed = []
index 8abfb64..d7209e4 100644 (file)
@@ -166,6 +166,7 @@ class Shell(Cmd):
                 if '-h' in cmd_args or '--help' in cmd_args:
                     cmd_parser.parser.print_help()
                     return
+                cmd_parser.parse(cmd_args)
 
                 for name, arg in instance.arguments.items():
                     arg.value = getattr(cmd_parser.parsed, name, arg.default)