From be56e49edd4e844e20c8b41a05b42728f66e1455 Mon Sep 17 00:00:00 2001 From: Tomas Jelinek Date: Fri, 18 Jan 2019 17:18:18 +0100 Subject: [PATCH] re-add and deprecate 'pcs resource show' --- pcs/cli/common/parse_args.py | 6 +++ pcs/cli/common/test/test_parse_args.py | 3 ++ pcs/resource.py | 63 ++++++++++++++++++++++++++ pcs/stonith.py | 5 ++ 4 files changed, 77 insertions(+) diff --git a/pcs/cli/common/parse_args.py b/pcs/cli/common/parse_args.py index 9b5a2be6..efce977f 100644 --- a/pcs/cli/common/parse_args.py +++ b/pcs/cli/common/parse_args.py @@ -22,6 +22,9 @@ PCS_LONG_OPTIONS = [ "hide-inactive", # pcs resource (un)manage - enable or disable monitor operations "monitor", + # TODO remove + # used only in deprecated 'pcs resource|stonith show' + "groups", ] def split_list(arg_list, separator): @@ -319,6 +322,9 @@ class InputModifiers(): "--enable": "--enable" in options, "--force": "--force" in options, "--full": "--full" in options, + # TODO remove + # used only in deprecated 'pcs resource|stonith show' + "--groups": "--groups" in options, "--hide-inactive": "--hide-inactive" in options, "--interactive": "--interactive" in options, "--local": "--local" in options, diff --git a/pcs/cli/common/test/test_parse_args.py b/pcs/cli/common/test/test_parse_args.py index 09b98162..56bb2f41 100644 --- a/pcs/cli/common/test/test_parse_args.py +++ b/pcs/cli/common/test/test_parse_args.py @@ -496,6 +496,9 @@ class InputModifiersTest(TestCase): "--enable", "--force", "--full", + # TODO remove + # used only in deprecated 'pcs resource|stonith show' + "--groups", "--hide-inactive", "--interactive", "--local", diff --git a/pcs/resource.py b/pcs/resource.py index eaca7126..862553e0 100644 --- a/pcs/resource.py +++ b/pcs/resource.py @@ -111,6 +111,10 @@ def resource_cmd(lib, argv, modifiers): resource_meta(lib, argv_next, modifiers) elif sub_cmd in {"delete", "remove"}: resource_remove_cmd(lib, argv_next, modifiers) + # TODO remove, deprecated command + # replaced with 'resource status' and 'resource config' + elif sub_cmd == "show": + resource_show(lib, argv_next, modifiers) elif sub_cmd == "status": resource_status(lib, argv_next, modifiers) elif sub_cmd == "config": @@ -2225,6 +2229,65 @@ def resource_group_list(lib, argv, modifiers): line_parts.append(resource.getAttribute("id")) print(" ".join(line_parts)) +def resource_show(lib, argv, modifiers, stonith=False): + # TODO remove, deprecated command + # replaced with 'resource status' and 'resource config' + """ + Options: + * -f - CIB file + * --full - print all configured options + * --groups - print resource groups + * --hide-inactive - print only active resources + """ + modifiers.ensure_only_supported( + "-f", "--full", "--groups", "--hide-inactive" + ) + mutually_exclusive_opts = ("--full", "--groups", "--hide-inactive") + specified_modifiers = [ + opt for opt in mutually_exclusive_opts if modifiers.is_specified(opt) + ] + if (len(specified_modifiers) > 1) or (argv and specified_modifiers): + utils.err( + "you can specify only one of resource id, {0}".format( + ", ".join(mutually_exclusive_opts) + ) + ) + + if modifiers.get("--groups"): + warn( + "This command is deprecated and will be removed. " + "Please use 'pcs resource group list' instead." + ) + resource_group_list(lib, argv, modifiers.get_subset("-f")) + return + + if modifiers.get("--full") or argv: + warn( + "This command is deprecated and will be removed. " + "Please use 'pcs {} config' instead.".format( + "stonith" if stonith else "resource" + ) + ) + resource_config( + lib, + argv, + modifiers.get_subset("-f"), + stonith=stonith + ) + return + + warn( + "This command is deprecated and will be removed. " + "Please use 'pcs {} status' instead.".format( + "stonith" if stonith else "resource" + ) + ) + resource_status( + lib, + argv, + modifiers.get_subset("-f", "--hide-inactive"), + stonith=stonith + ) def resource_status(lib, argv, modifiers, stonith=False): """ diff --git a/pcs/stonith.py b/pcs/stonith.py index 3f08efe3..c5270c84 100644 --- a/pcs/stonith.py +++ b/pcs/stonith.py @@ -40,6 +40,11 @@ def stonith_cmd(lib, argv, modifiers): resource.resource_update(lib, argv_next, modifiers) elif sub_cmd in {"delete", "remove"}: resource.resource_remove_cmd(lib, argv_next, modifiers) + # TODO remove, deprecated command + # replaced with 'stonith status' and 'stonith config' + elif sub_cmd == "show": + resource.resource_show(lib, argv_next, modifiers, stonith=True) + print_stonith_levels(lib) elif sub_cmd == "status": resource.resource_status(lib, argv_next, modifiers, stonith=True) print_stonith_levels(lib) -- 2.17.0