INNER CODE UNIT · Python
apply_quarantine
kejilion/sh · site_access_cli.py:204
def apply_quarantine(rootfd, request, *, validate=None, reload_config=None):
if not isinstance(request, dict) or request.keys() != {'operation', 'configName', 'configVersion'} or request.get('operation') != 'quarantine':
raise ConfigError('invalid quarantine request')
name, version = request['configName'], request['configVersion']
if not isinstance(name, str) or not re.fullmatch(r'[A-Za-z0-9_.-]{1,253}\.conf', name) or not isinstance(version, str) or not re.fullmatch(r'[0-9a-f]{64}', version):
raise ConfigError('invalid quarantine identity')
directory = directory_beneath(rootfd, ['conf.d'])
try:
quarantine_created_config(directory, name, version,
validate=validate or (lambda: nginx_command('-t')),
reload_config=reload_config or (lambda: nginx_command('-s', 'reload')))
finally:
os.close(directory)
return version
def main():
data = sys.stdin.buffer.read(MAX_REQUEST + 1)