File: //proc/25636/root/var/packages/SupportService/target/python_modules/action_handler/cli.py
#!/usr/bin/env python3
import sys
import argparse
import json
import os
SUPPORT_SERVICE_ACTIONS_ROOT_PATH = "/var/packages/SupportService/var/actions"
def parse_args():
argparser = argparse.ArgumentParser()
argparser.add_argument("handler_module", help="example: power_of_two.main:handler")
argparser.add_argument("request_params", help="example: 4")
argparser.add_argument("--actions_root_path", required=False, help="example: /var/packages/ActiveInsight/var/actions")
return argparser.parse_args()
if __name__ == "__main__":
try:
args = parse_args()
if args.actions_root_path:
sys.path.append(args.actions_root_path)
elif os.path.isdir(SUPPORT_SERVICE_ACTIONS_ROOT_PATH):
sys.path.append(SUPPORT_SERVICE_ACTIONS_ROOT_PATH)
module_name = args.handler_module.split(":")[0]
app_name = args.handler_module.split(":")[1]
__import__(module_name)
module = sys.modules[module_name]
handler = getattr(module, app_name)
handler.run(json.loads(args.request_params))
except Exception as exception:
print(json.dumps({
"exception": {
"source": "cli.py",
"type": type(exception).__name__,
"message": str(exception),
}
}), flush=True)