| Server IP : 3.138.164.131 / Your IP : 216.73.216.136 Web Server : Apache System : Linux ns1.techtime.me 4.18.0-147.8.1.el8.lve.1.x86_64 #1 SMP Mon Jun 29 09:55:57 EDT 2020 x86_64 User : injazaat ( 1471) PHP Version : 8.1.20 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/opt/alt/python37/lib/python3.7/site-packages/lve_utils/hooks/ |
Upload File : |
#!/usr/bin/python
# 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 print_function
from __future__ import absolute_import
import pwd
import subprocess
from clcommon.public_hooks.lib import ModifyUserHook
from clcommon.lib.cledition import lve_supported_or_exit
class LveLifecycleHook(ModifyUserHook):
"""
Apply limits on user creation and remove
limits on user destroy
"""
LVECTL = '/usr/sbin/lvectl'
@classmethod
def exec_lvectl_cmd(cls, cmd, uid):
"""
This function doesn't return! Should be last call in code
:param cmd: apply|destroy
:param uid: lve id
"""
return subprocess.call([cls.LVECTL, cmd, str(uid)])
@lve_supported_or_exit
def post_create_user(self, username, owner, **kwargs):
uid = pwd.getpwnam(username).pw_uid
self.exec_lvectl_cmd('apply', uid)
@lve_supported_or_exit
def pre_delete_user(self, username, **kwargs):
uid = pwd.getpwnam(username).pw_uid
self.exec_lvectl_cmd('delete', uid)
self.exec_lvectl_cmd('destroy', uid)