Heray-Was-Here
Server : Apache
System : Linux dal-shared-66.hostwindsdns.com 4.18.0-513.24.1.lve.1.el8.x86_64 #1 SMP Thu May 9 15:10:09 UTC 2024 x86_64
User : krnuyqrm ( 1183)
PHP Version : 7.4.33
Disable Function : NONE
Directory :  /proc/self/root/proc/self/root/usr/lib/python2.7/site-packages/hw_cpbackup/util/whm/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/self/root/proc/self/root/usr/lib/python2.7/site-packages/hw_cpbackup/util/whm/whmapi.py
import json
import logging
import subprocess

logger = logging.getLogger(__name__)


class WhmApi:
    """
    Enumerate WHM data from the current host
    """

    def __init__(self):
        self.whmapi1 = '/usr/sbin/whmapi1'

    def run_cmd(self, cmd, output='json', **kwargs):
        cmd_arr = [self.whmapi1, '--output={output}'.format(output=output), cmd]
        for k, v in kwargs.items():
            cmd_arr.append('{key}={value}'.format(key=k, value=v))

        p = subprocess.Popen(cmd_arr, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        out, err = p.communicate()
        if p.returncode != 0:
            raise Exception('Command failed: {err}'.format(err=err.decode()))

        if output == 'json':
            data = json.loads(out.decode(encoding='utf-8'))
        else:
            data = out.decode()

        return data

    def get_user_info(self, user):
        return self.run_cmd('listaccts', search=user, searchtype='user')

    def get_users_with_backups_enabled(self):
        _accounts_with_backups = []
        accounts = self.run_cmd('listaccts', want='backup,domain,user')
        if 'data' in accounts:
            for account in accounts['data']['acct']:
                if account.get('backup', 0) == 1:
                    _accounts_with_backups.append(account)
        return _accounts_with_backups

    def enable_user_backups(self, user):
        logger.info('enabling backups for {user}...'.format(user=user))
        self.run_cmd('modifyacct', user=user, BACKUP=1)
        logger.info('enabled backups for {user}'.format(user=user))

    def disable_user_backups(self, user):
        logger.info('disabling backups for {user}...'.format(user=user))
        self.run_cmd('modifyacct', user=user, BACKUP=0)
        logger.info('disabled backups for {user}'.format(user=user))

Hry