$16 GRAYBYTE WORDPRESS FILE MANAGER $59

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.162.162 | ADMIN IP 216.73.216.174
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/cloudlinux/venv/lib/python3.11/site-packages/ssa/ssa_utils/

HOME
Current File : /opt/cloudlinux/venv/lib/python3.11/site-packages/ssa/ssa_utils//validations.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 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)}'
        }))


Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
10 Apr 2026 8.30 AM
root / root
0755
__pycache__
--
10 Apr 2026 8.32 AM
root / root
0755
__init__.py
0 KB
24 Mar 2026 10.22 AM
root / root
0644
cmdline_parser.py
5.285 KB
24 Mar 2026 10.22 AM
root / root
0644
run_agent.py
0.716 KB
24 Mar 2026 10.22 AM
root / root
0644
run_autotracing.py
2.868 KB
24 Mar 2026 10.22 AM
root / root
0644
run_manager.py
1.771 KB
24 Mar 2026 10.22 AM
root / root
0644
validations.py
3.51 KB
24 Mar 2026 10.22 AM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF