관리-도구
편집 파일: 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)