AlkantarClanX12

Your IP : 18.116.85.108


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/ssa/configuration/schemes/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/ssa/configuration/schemes/autotracing.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 scheme for external autotracing tunables
"""

from schema import Schema, And, Optional, Use

tunables_schema = Schema({
    Optional('only_wp',
             default=True): And(bool,
                                error='bad value of `only_wp` option, should be true or false'),
    Optional('skip_nginx',
             default=True): And(bool,
                                error='bad value of `skip_nginx` option, should be true or false'),
    Optional('density',
             default=True): And(bool,
                                error='bad value of `density` option, should be true or false'),
    Optional('density_threshold',
             default=0.4): And(Use(lambda n: float(n)),
                               lambda n: 0.0 < n <= 1.0,
                               error='the value of `density_threshold` option could not be negative or greater than 1'),
    Optional('slow_duration_threshold',
             default=12000000): And(Use(lambda n: float(n)),
                                    lambda n: n > 0.0,
                                    error='the value of `slow_duration_threshold` option should be positive'),
    Optional('slow_duration_percentage',
             default=100): And(int, lambda n: 0 <= n <= 100,
                               error='the value of `slow_duration_percentage` option could not be negative or greater than 100%'),
    Optional('max_slow_duration_threshold',
             default=30000000): And(Use(lambda n: float(n)),
                                    lambda n: n > 0.0,
                                    error='the value of `max_slow_duration_threshold` option should be positive'),
    Optional('max_slow_duration_percentage',
             default=100): And(int, lambda n: 0 <= n <= 100,
                               error='the value of `max_slow_duration_percentage` option could not be negative or greater than 100%'),
    Optional('allowed_throttling_percentage',
             default=0): And(int, lambda n: 0 <= n <= 100,
                             error='the value of `allowed_throttling_percentage` option could not be negative or greater than 100%'),
    Optional('min_retracing_interval',
             default=10): And(int, lambda n: n > 0,
                              error='the value of `min_retracing_interval` option should be a positive integer'),
    Optional('request_number',
             default=5): And(int, lambda n: n > 0,
                             error='the value of `request_number` option should be a positive integer'),
    Optional('per_domain_limit',
             default=1): And(int, lambda n: n >= 0,
                             error='the value of `per_domain_limit` option could not be negative or non-integer'),
    Optional('per_server_limit',
             default=5): And(int, lambda n: n >= 0,
                             error='the value of `per_server_limit` option could not be negative or non-integer'),
    Optional('rules_version',
             default='l.0.1.4'): And(Use(lambda n: str(n)),
                                   error='the value of `rules_version` should be a string')
}, ignore_extra_keys=True)