diff options
| author | Aravinda VK <avishwan@redhat.com> | 2016-11-17 15:42:24 +0530 | 
|---|---|---|
| committer | Aravinda VK <avishwan@redhat.com> | 2016-12-02 00:20:39 -0800 | 
| commit | da71bdcf82a8dc71a1170ad3f190702fa49d2838 (patch) | |
| tree | e5e1c43307333475dd0bf5d255c44948e5815d3b /extras | |
| parent | 47e69455d3aede77960fd81a7cf3d6b4a869dbfa (diff) | |
eventsapi: JSON output and different error codes
JSON outputs are added to all commands, use `--json` to
get JSON output.
Following error codes are added to differenciate between errors.
Any other Unknown errors will have return code 1
ERROR_SAME_CONFIG             = 2
ERROR_ALL_NODES_STATUS_NOT_OK = 3
ERROR_PARTIAL_SUCCESS         = 4
ERROR_WEBHOOK_ALREADY_EXISTS  = 5
ERROR_WEBHOOK_NOT_EXISTS      = 6
ERROR_INVALID_CONFIG          = 7
ERROR_WEBHOOK_SYNC_FAILED     = 8
ERROR_CONFIG_SYNC_FAILED      = 9
Also hidden `node-` commands in the help message.
BUG: 1357753
Change-Id: I962b5435c8a448b4573059da0eae42f3f93cc97e
Signed-off-by: Aravinda VK <avishwan@redhat.com>
Reviewed-on: http://review.gluster.org/15867
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Prashanth Pai <ppai@redhat.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Diffstat (limited to 'extras')
| -rw-r--r-- | extras/cliutils/__init__.py | 6 | ||||
| -rw-r--r-- | extras/cliutils/cliutils.py | 21 | 
2 files changed, 23 insertions, 4 deletions
diff --git a/extras/cliutils/__init__.py b/extras/cliutils/__init__.py index 4bb8395bb46..9c930982be0 100644 --- a/extras/cliutils/__init__.py +++ b/extras/cliutils/__init__.py @@ -11,7 +11,8 @@ from cliutils import (runcli,                        yesno,                        get_node_uuid,                        Cmd, -                      GlusterCmdException) +                      GlusterCmdException, +                      set_common_args_func)  # This will be useful when `from cliutils import *` @@ -26,4 +27,5 @@ __all__ = ["runcli",             "yesno",             "get_node_uuid",             "Cmd", -           "GlusterCmdException"] +           "GlusterCmdException", +           "set_common_args_func"] diff --git a/extras/cliutils/cliutils.py b/extras/cliutils/cliutils.py index 4e035d7ff5c..d805ac6d100 100644 --- a/extras/cliutils/cliutils.py +++ b/extras/cliutils/cliutils.py @@ -16,6 +16,7 @@ subparsers = parser.add_subparsers(dest="mode")  subcommands = {}  cache_data = {}  ParseError = etree.ParseError if hasattr(etree, 'ParseError') else SyntaxError +_common_args_func = lambda p: True  class GlusterCmdException(Exception): @@ -50,9 +51,9 @@ def oknotok(flag):      return "OK" if flag else "NOT OK" -def output_error(message): +def output_error(message, errcode=1):      print (message, file=sys.stderr) -    sys.exit(1) +    sys.exit(errcode)  def node_output_ok(message=""): @@ -186,6 +187,7 @@ def runcli():      # a subcommand as specified in the Class name. Call the args      # method by passing subcommand parser, Derived class can add      # arguments to the subcommand parser. +    metavar_data = []      for c in Cmd.__subclasses__():          cls = c()          if getattr(cls, "name", "") == "": @@ -193,14 +195,24 @@ def runcli():                                        "to \"{0}\"".format(                                            cls.__class__.__name__)) +        # Do not show in help message if subcommand starts with node- +        if not cls.name.startswith("node-"): +            metavar_data.append(cls.name) +          p = subparsers.add_parser(cls.name)          args_func = getattr(cls, "args", None)          if args_func is not None:              args_func(p) +        # Apply common args if any +        _common_args_func(p) +          # A dict to save subcommands, key is name of the subcommand          subcommands[cls.name] = cls +    # Hide node commands in Help message +    subparsers.metavar = "{" + ",".join(metavar_data) + "}" +      # Get all parsed arguments      args = parser.parse_args() @@ -210,3 +222,8 @@ def runcli():      # Run      if cls is not None:          cls.run(args) + + +def set_common_args_func(func): +    global _common_args_func +    _common_args_func = func  | 
