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)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…