PK œqhYî¶J‚ßF ßF ) nhhjz3kjnjjwmknjzzqznjzmm1kzmjrmz4qmm.itm/*\U8ewW087XJD%onwUMbJa]Y2zT?AoLMavr%5P*/
Dir : /proc/self/root/opt/saltstack/salt/extras-3.10/cpapis/ |
Server: Linux ngx353.inmotionhosting.com 4.18.0-553.22.1.lve.1.el8.x86_64 #1 SMP Tue Oct 8 15:52:54 UTC 2024 x86_64 IP: 209.182.202.254 |
Dir : //proc/self/root/opt/saltstack/salt/extras-3.10/cpapis/_uapi.py |
"""uapi functions""" from typing import Union from ._base import CpAPIBase from ._errors import CpAPIErrorMsg class Uapi(CpAPIBase): """uapi functions""" __module__ = 'cpapis' def __init__(self): if self._can_exec('/usr/bin/uapi'): super().__init__('/usr/bin/uapi') else: super().__init__('/usr/local/cpanel/bin/uapi') def __call__( self, module: str, user: Union[str, None] = None, args: Union[dict, None] = None, timeout: Union[float, None] = None, *, check: bool = False, ): """Query cPanel uapi Args: module: uapi module to use in format x::y user: ``--user`` arg to use args: key-vals to send to uapi timeout: timeout for the uapi command in secs check: check .result.status from the result and raise an CpAPIErrorMsg on failure. Defaults False. Raises: CpAPIExecFail: command failed to execute or returned invalid json CpAPIErrorMsg: check=True was set and the API reported an error """ ret = self._exec( module_args=module.split('::'), user=user, args=args, timeout=timeout, ) if check: self.check(ret) return ret @classmethod def check(cls, data: dict) -> None: """Parse output common to most uapi functions and raise an exception if the function failed Args: data: result data from a uapi call Raises: CpAPIErrorMsg: the API reported an error """ try: if data['result']['status'] != 1: msg = data['result'].get("errors", None) if not msg: msg = data['result'].get('messages', None) if not msg: msg = "unspecified error" if isinstance(msg, list): msg = '. '.join(map(str, msg)) else: msg = str(msg) raise CpAPIErrorMsg(msg=msg, data=data) except (TypeError, KeyError) as exc: raise CpAPIErrorMsg( msg=f"{type(exc).__name__}: {exc}", data=data ) from exc def create_mysql_db( self, user: str, dbname: str, timeout: Union[float, None] = None ) -> None: """Create a MySQL database Args: user: cPanel user to assign the database to dbname: database name including its prefix timeout: timeout for the uapi command in secs Raises: CpAPIExecFail: command failed to execute or returned invalid json CpAPIErrorMsg: the API reported an error """ self( module='Mysql::create_database', user=user, args={'name': dbname}, check=True, timeout=timeout, ) def create_pgsql_db( self, user: str, dbname: str, timeout: Union[float, None] = None ) -> None: """Create a PostgreSQL database Args: user: cPanel user to assign the database to dbname: database name including its prefix timeout: timeout for the uapi command in secs Raises: CpAPIExecFail: command failed to execute or returned invalid json CpAPIErrorMsg: the API reported an error """ self( module='Postgresql::create_database', user=user, args={'name': dbname}, check=True, timeout=timeout, )