HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
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)