/usr/lib/python2.6/site-packages/clcommon
NameSizeModeActions
cpapi/-0755rm
clcagefs.py63090644editdlrm
clcagefs.pyc77840644editdlrm
clcagefs.pyo77840644editdlrm
clconfpars.py17180644editdlrm
clconfpars.pyc25630644editdlrm
clconfpars.pyo25630644editdlrm
cldetect.py30040644editdlrm
cldetect.pyc30600644editdlrm
cldetect.pyo30600644editdlrm
clemail.py19030644editdlrm
clemail.pyc21180644editdlrm
clemail.pyo21180644editdlrm
clfunc.py25600644editdlrm
clfunc.pyc34450644editdlrm
clfunc.pyo34450644editdlrm
clhook.py36340644editdlrm
clhook.pyc38560644editdlrm
clhook.pyo38560644editdlrm
cllog.py11410644editdlrm
cllog.pyc18730644editdlrm
cllog.pyo18730644editdlrm
cloutput.py4470644editdlrm
cloutput.pyc6970644editdlrm
cloutput.pyo6970644editdlrm
clpwd.py36120644editdlrm
clpwd.pyc48110644editdlrm
clpwd.pyo48110644editdlrm
clsec.py4500644editdlrm
clsec.pyc12370644editdlrm
clsec.pyo12370644editdlrm
utils.py14800644editdlrm
utils.pyc21510644editdlrm
utils.pyo21510644editdlrm
__init__.py1960644editdlrm
__init__.pyc4910644editdlrm
__init__.pyo4910644editdlrm
Edit: /usr/lib/python2.6/site-packages/clcommon/clhook.py (3634B)
#!/usr/bin/python import os import shutil import subprocess import simplejson as json import ConfigParser CL_CONFIG = '/etc/sysconfig/cloudlinux' HOOK_SECTION = 'hooks' HOOK_SEPARATOR = ';' DEBUG_STRING = 'python-cllib:clhook:' def get_config(file_name): ''' read config from file_name return config ''' config = ConfigParser.ConfigParser() config.optionxform = str # make config case sensitive config.read(file_name) return config def write_config(config, file_name, debug_local_name): ''' write config to file_name return [BOOLEAN_STATE, MESSAGE] ''' try: tmp_cfg_path = file_name + '.' + str(os.getpid()) tmpconfig = open(tmp_cfg_path,'w') config.write(tmpconfig) tmpconfig.close() shutil.move(tmp_cfg_path, file_name) except IOError: return [False, debug_local_name + str(file_name) + ' write error\n'] return [True, 'OK\n'] def get_hook_list_from_file(hook_prefix, config_file = CL_CONFIG): ''' return [BOOLEAN_STATE, hook_list] ''' hook_list = [] config = get_config(config_file) try: hook_list = config.get(HOOK_SECTION, hook_prefix).split(HOOK_SEPARATOR) except (ConfigParser.NoOptionError, ConfigParser.NoSectionError): return [False, hook_list] return [True, hook_list] def register_hook(hook_path, hook_prefix, config_file = CL_CONFIG): ''' add hook to config file return [BOOLEAN_STATE, MESSAGE] ''' debug_local_name = DEBUG_STRING + 'register_hook:' config = get_config(config_file) try: hook_list = config.get(HOOK_SECTION, hook_prefix).split(HOOK_SEPARATOR) if hook_path in hook_list: return [True, debug_local_name + 'Hook ' + str(hook_path) + ' already registred\n' ] hook_list.append(hook_path) config.set(HOOK_SECTION, hook_prefix, HOOK_SEPARATOR.join(hook_list)) except ConfigParser.NoSectionError: config.add_section(HOOK_SECTION) config.set(HOOK_SECTION, hook_prefix, hook_path) except ConfigParser.NoOptionError: config.set(HOOK_SECTION, hook_prefix, hook_path) return write_config(config, config_file, debug_local_name) def unregister_hook(hook_path, hook_prefix, config_file = CL_CONFIG): ''' remove hook from config_file return [BOOLEAN_STATE, MESSAGE] ''' debug_local_name = DEBUG_STRING + 'unregister_hook:' hook_list = [] config = get_config(config_file) try: hook_list = config.get(HOOK_SECTION, hook_prefix).split(HOOK_SEPARATOR) hook_list.remove(hook_path) config.set(HOOK_SECTION, hook_prefix, HOOK_SEPARATOR.join(hook_list)) return write_config(config, config_file, debug_local_name) except (ConfigParser.NoSectionError, ConfigParser.NoOptionError, ValueError): return [True, 'OK\n'] def call_hook_list(hook_list, data): ''' call hooks and send data as json to stdin return [BOOLEAN_STATUS, message] ''' debug_local_name = DEBUG_STRING + 'call_hook:' json_encode = json.dumps(data) for hook in hook_list: if os.path.isfile(hook) and os.access(hook, os.X_OK): try: pipe = subprocess.Popen(hook, stdin=subprocess.PIPE, stdout = subprocess.PIPE, stderr=subprocess.PIPE) pipe.stdin.write(json_encode) pipe.communicate() except OSError: return [False, debug_local_name + 'Hook call error\n'] else: return [False, debug_local_name + str(hook) + ' : isn`t file or isn`t runnable\n'] return [True, 'OK\n']