Hacked By AnonymousFox

Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/ssa/ssa_utils/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/ssa/ssa_utils/run_manager.py

# -*- coding: utf-8 -*-

# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2021 All Rights Reserved
#
# Licensed under CLOUD LINUX LICENSE AGREEMENT
# http://cloudlinux.com/docs/LICENSE.TXT

"""
This module contains SSA manager utility main run function
"""
import sys
from .cmdline_parser import cmd_parser_manager, parse_cmd_arguments
from .validations import validate
from ..internal.utils import configure_logging
from ..internal.constants import manager_log
from ..manager import initialize_manager
from ..internal.exceptions import SSAError


def run() -> None:
    """
    Main run function
    """
    configure_logging(manager_log)
    try:
        args = parse_cmd_arguments(cmd_parser_manager())
        cmd, validated_args = validate(args.__dict__)
    except SSAError as e:
        print(e)
        sys.exit(1)
    manager_run(cmd, **validated_args)


def manager_run(command, *args, **kwargs):
    """
    SSA Manager run function
    """
    try:
        manager_instance = initialize_manager()
        if command == 'set-config':
            result = manager_instance.set_config(kwargs)
        elif command == 'get-config':
            result = manager_instance.get_config()
        elif command == 'get-ssa-status':
            result = manager_instance.get_ssa_status()
        elif command == 'enable-ssa':
            result = manager_instance.enable_ssa()
        elif command == 'disable-ssa':
            result = manager_instance.disable_ssa()
        elif command == 'get-report':
            result = manager_instance.get_report()
        elif command == 'get-stat':
            result = manager_instance.get_stats()
        else:
            raise SSAError(f'Unknown action {command}')
        print(result)
    except SSAError as e:
        print(e)
        sys.exit(1)

Hacked By AnonymousFox1.0, Coded By AnonymousFox