Current Path: > > opt > cloudlinux > venv > lib64 > python3.11 > site-packages > ssa > ssa_utils >
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
__init__.py | File | 0 bytes | July 02 2025 14:54:48. | |
cmdline_parser.py | File | 5412 bytes | July 02 2025 14:54:48. | |
run_agent.py | File | 733 bytes | July 02 2025 14:54:48. | |
run_autotracing.py | File | 2937 bytes | July 02 2025 14:54:48. | |
run_manager.py | File | 1814 bytes | July 02 2025 14:54:48. | |
validations.py | File | 3594 bytes | July 02 2025 14:54:48. |
# -*- 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 validation schema for config file loaded values """ import json from argparse import Namespace from schema import Schema, And, Optional, Use, SchemaError, Or from ..internal.exceptions import SSAError cmdline_schema = Schema({ 'command': And(str, lambda c: c in ('set-config', 'get-config', 'get-ssa-status', 'get-report', 'enable-ssa', 'disable-ssa', 'get-stat'), error='Invalid command'), Optional('domains_number'): And(Use(lambda n: int(n)), lambda n: n >= 0, error='number of domains should be a positive integer'), Optional('urls_number'): And(Use(lambda n: int(n)), lambda n: n > 0, error='number of URLs should be a positive integer'), Optional('requests_duration'): And(Use(lambda n: float(n)), lambda n: n > 0.0, error='request duration should be positive'), Optional('request_number'): And(Use(lambda n: int(n)), lambda n: n > 0, error='number of requests should be a positive integer'), Optional('time'): And(Use(lambda n: int(n)), lambda n: 0 <= n <= 12, error='time should be a positive integer between 1 and 12, or 0'), Optional('correlation'): And(Use(lambda s: s.capitalize()), lambda s: s in ('On', 'Off'), error='bad correlation value, should be On or Off'), Optional('correlation_coefficient'): And(Use(lambda n: float(n)), lambda n: 0.0 < n <= 1.0, error='correlation coefficient could not be negative or greater than 1'), Optional('ignore_list'): Use(lambda s: str(s)), Optional('summary_notification_enabled'): And( Use(lambda s: s.capitalize()), lambda s: s in ('On', 'Off'), error='bad notification value, should be On or Off'), }) autotracing_cmdline_schema = Schema({ 'command': And(str, lambda c: c in ('enable', 'disable', 'status'), error='Invalid autotracing command'), Optional('user'): Or(str, None), Optional('all'): bool, Optional('list_disabled'): bool }) def validate(data: dict) -> tuple: """ Validate given data. Return: tuple with 2 elements: command string and list of the validated options """ try: d = cmdline_schema.validate(data) cmd = d['command'] del d['command'] return cmd, d except SchemaError as e: raise SSAError(f'Invalid configuration: {str(e)}') def validate_autotracing(input_args: dict) -> Namespace: """ Validate given input with schema Input arguments expected in s dict form :param input_args: dict with input data """ try: return Namespace(**(autotracing_cmdline_schema.validate(input_args))) except SchemaError as e: # logger.error('Input validation error', extra={'err': str(e)}) raise SystemExit(json.dumps({ 'result': f'Input validation error: {str(e)}' }))
SILENT KILLER Tool