????
Current Path : /usr/share/cagefs-plugins/ |
Current File : //usr/share/cagefs-plugins/mysql_lib.py |
#!/opt/cloudlinux/venv/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 from __future__ import absolute_import from __future__ import division from __future__ import print_function from __future__ import unicode_literals import subprocess from future import standard_library standard_library.install_aliases() from builtins import * def _execute(query): with open('/etc/psa/.psa.shadow', 'r') as f: password = f.readline().rstrip() query = query.replace("\n", " ").strip() proc = subprocess.Popen( f'mysql --no-beep --skip-column-names --user=admin --execute="{query};"', shell=True, executable='/bin/bash', stdout=subprocess.PIPE, text=True, bufsize=-1, env={ # NOTE: Despite what is said in MySQL documentation, passing password using an environment variable seems to # be quite safe for systems of this millennium. More precisely, on modern Linux no one can read /proc/<pid>/environ # except for euid of root and the process owner. 'MYSQL_PWD': password, } ) return proc.communicate()[0] def install_cagefs_module_plesk(): result = _execute("select * from psa.Modules where name='plesk-cagefs'") if result == "": _execute(""" insert into psa.Modules(name, packname, display_name, description, icon) values( 'plesk-cagefs', 'plesk-cagefs', 'CageFS', 'GageFS', '/images/modules/plesk-cagefs/addon_CloudLinux_logo2.png' ) """) def delete_cagefs_module_plesk(): _execute("delete from psa.Modules where name='plesk-cagefs'")