| Server IP : 109.234.162.214 / Your IP : 216.73.216.34 Web Server : Apache System : Linux servd162214.srv.odns.fr 4.18.0-372.26.1.lve.1.el8.x86_64 #1 SMP Fri Sep 16 14:08:19 EDT 2022 x86_64 User : carpe ( 1178) PHP Version : 8.0.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /opt/cloudlinux/venv/lib64/python3.11/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)