From 211de2f3d00b2be434c9d482aad40f0544e97807 Mon Sep 17 00:00:00 2001 From: Adam Collard Date: Fri, 17 Jul 2015 11:43:48 +0100 Subject: [PATCH] Initial pause action --- actions/actions.py | 38 ++++++++++++++++++++++++++++++++++++++ actions/pause | 1 + 2 files changed, 39 insertions(+) create mode 100755 actions/actions.py create mode 120000 actions/pause diff --git a/actions/actions.py b/actions/actions.py new file mode 100755 index 0000000..46d0f4a --- /dev/null +++ b/actions/actions.py @@ -0,0 +1,38 @@ +#!/usr/bin/python + +import argparse +import os +import sys +import yaml + + +def get_action_parser(actions_yaml_path, action_name): + with open(actions_yaml_path) as fh: + doc = yaml.load(fh)[action_name]["description"] + parser = argparse.ArgumentParser(doc) + # TODO: Add arguments for params defined in the actions.yaml + return parser + + +def pause(args): + from swift_storage_utils import SWIFT_SVCS + from charmhelpers.core.host import service_pause + for service in SWIFT_SVCS: + service_pause(service) + + +def main(argv): + cwd, action_name = os.path.split(__file__) + actions_yaml_path = os.path.join(cwd, "..", "actions.yaml") + parser = get_action_parser(actions_yaml_path, action_name) + args = parser.parse_args(argv) + try: + action = globals()[action_name] + except AttributeError: + return "Action %s undefined" % action_name + else: + return action(args) + + +if __name__ == "__main__": + sys.exit(main(sys.argv[1:])) diff --git a/actions/pause b/actions/pause new file mode 120000 index 0000000..405a394 --- /dev/null +++ b/actions/pause @@ -0,0 +1 @@ +actions.py \ No newline at end of file