GRAYBYTE WORDPRESS FILE MANAGER5671

Server IP : 198.54.121.189 / Your IP : 216.73.216.112
System : Linux premium69.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
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/cloudlinux/venv/lib/python3.11/site-packages/ssa/ssa_utils/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


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)}'
        }))

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
May 01 2025 08:30:33
root / root
0755
__pycache__
--
May 01 2025 08:36:52
root / root
0755
__init__.py
0 KB
April 10 2025 08:42:28
root / root
0644
cmdline_parser.py
5.285 KB
April 10 2025 08:42:28
root / root
0644
run_agent.py
0.716 KB
April 10 2025 08:42:28
root / root
0644
run_autotracing.py
2.868 KB
April 10 2025 08:42:28
root / root
0644
run_manager.py
1.771 KB
April 10 2025 08:42:28
root / root
0644
validations.py
3.51 KB
April 10 2025 08:42:28
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF