Viewing file: cl_pkg_verify_hook.py (2.37 KB) -rwxr-xr-x Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/opt/alt/python37/bin/python3 -bb # -*- coding: utf-8 -*-
# Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT
""" Module provides cpanel hook for validation lve package extension """ from __future__ import print_function from __future__ import division from __future__ import absolute_import
import os import simplejson as json import sys
from clcommon import validate_cpu, validate_int, memory_to_page
SCRIPT_NAME = os.path.basename(__file__)
def print_error_msg_and_exit(limit, value): limit_name = limit.split('_')[1].upper() if limit_name == 'CPU': limit_name = 'SPEED' elif limit_name == 'MEM': limit_name = 'VMEM' print(0, 'Invalid value for ' + str(limit_name) + ' : ' + str(value)) sys.exit(1)
def need_validation(json_decode): """ Return true if we need validate input data """ if os.path.basename(json_decode['hook']['hook']) == SCRIPT_NAME \ and json_decode["context"]['stage'] == 'pre': return True return False
if "__main__" == __name__: lines = sys.stdin.read() json_decode = json.loads(lines)
if need_validation(json_decode): hook_data = json_decode['data'] for key, value in hook_data.items(): if not key.startswith('lve_'): continue if value in ('DEFAULT', '', None): continue elif key in ("lve_ncpu", "lve_iops", "lve_nproc", "lve_io", "lve_ep"): if value is not None: if value != validate_int(value): print_error_msg_and_exit(key, value) elif key in ("lve_inodes_soft", "lve_inodes_hard"): if value is not None: if value != validate_int(value, min_val=-1): print_error_msg_and_exit(key, value) elif key in ("lve_pmem", "lve_mem"): temp = memory_to_page(value) if temp is None: print_error_msg_and_exit(key, value) elif key in ("lve_cpu",): temp = validate_cpu(value) if temp is None: print_error_msg_and_exit(key, value) else: # UNKNOWN LVE LIMIT print_error_msg_and_exit(key, value) print(1, 'Ok')
|