Sindbad~EG File Manager
# -*- 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)
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists