ok
Direktori : /proc/self/root/proc/thread-self/root/sbin/ |
Current File : //proc/self/root/proc/thread-self/root/sbin/cl-post-jwt-update |
#!/opt/cloudlinux/venv/bin/python3 -bb import argparse import subprocess, os HOOKS_DIR = '/opt/cloudlinux/rhn_hooks/post.d' def _update_edition_user_file(): """ Save information about current edition in specific location available for users """ if not os.path.exists('/usr/bin/cldetect') or not os.path.exists('/opt/cloudlinux/'): return p = subprocess.Popen(['/usr/bin/cldetect', '--detect-edition'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() if p.returncode == 0: with open('/opt/cloudlinux/cl_edition.tmp', 'wb') as f: f.write(stdout) os.rename('/opt/cloudlinux/cl_edition.tmp', '/opt/cloudlinux/cl_edition') os.chmod('/opt/cloudlinux/cl_edition', 0o644) def _trigger_universal_hooks(): """ Discovers executable files in directory and triggers them all together Executable files are brought by different rpm packages, depending on which one requires the action """ if not os.path.exists(HOOKS_DIR): return hooks = [os.path.join(HOOKS_DIR, f) for f in os.listdir(HOOKS_DIR) if os.path.isfile(os.path.join(HOOKS_DIR, f))] for hook in hooks: process = subprocess.Popen([hook], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() def _run_edition_change_check(): # run interactively subprocess.run(['cloudlinux-edition-watcher', 'check']) def main(args): """ You add your other actions here, but don't forget to handle errors. """ _update_edition_user_file() if args.allow_transition: _run_edition_change_check() _trigger_universal_hooks() if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--allow-transition', action='store_true', default=False) main(args=parser.parse_args())