!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache. PHP/7.3.33 

uname -a: Linux acloudg.aryanict.com 4.18.0-513.9.1.lve.el8.x86_64 #1 SMP Mon Dec 4 15:01:22 UTC
2023 x86_64
 

uid=1095(katebhospital) gid=1098(katebhospital) groups=1098(katebhospital) 

Safe-mode: OFF (not secure)

/usr/lib/python3.6/site-packages/tuned/plugins/   drwxr-xr-x
Free 293.97 GB of 429.69 GB (68.42%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     hotplug.py (3.84 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
from . import base
import tuned.consts as consts
import tuned.logs

log = tuned.logs.get()

class Plugin(base.Plugin):
    """
    Base class for plugins with device hotpluging support.
    """

    def __init__(self, *args, **kwargs):
        super(Plugin, self).__init__(*args, **kwargs)

    def cleanup(self):
        super(Plugin, self).cleanup()
        self._hardware_events_cleanup()

    def _hardware_events_init(self):
        pass

    def _hardware_events_cleanup(self):
        pass

    def _init_devices(self):
        self._hardware_events_init()

    def _hardware_events_callback(self, event, device):
        if event == "add":
            log.info("device '%s' added" % device.sys_name)
            self._add_device(device.sys_name)
        elif event == "remove":
            log.info("device '%s' removed" % device.sys_name)
            self._remove_device(device.sys_name)

    def _add_device_process(self, instance, device_name):
        log.info("instance %s: adding new device %s" % (instance.name, device_name))
        self._assigned_devices.add(device_name)
        self._call_device_script(instance, instance.script_pre, "apply", [device_name])
        self._added_device_apply_tuning(instance, device_name)
        self._call_device_script(instance, instance.script_post, "apply", [device_name])
        instance.processed_devices.add(device_name)

    def _add_device(self, device_name):
        if device_name in (self._assigned_devices | self._free_devices):
            return

        for instance_name, instance in list(self._instances.items()):
            if len(self._get_matching_devices(instance, [device_name])) == 1:
                self._add_device_process(instance, device_name)
                break
        else:
            log.debug("no instance wants %s" % device_name)
            self._free_devices.add(device_name)

    def _add_devices_nocheck(self, instance, device_names):
        """
        Add devices specified by the set to the instance, no check is performed.
        """
        for dev in device_names:
            self._add_device_process(instance, dev)
        # This can be a bit racy (we can overcount),
        # but it shouldn't affect the boolean result
        instance.active = len(instance.processed_devices) \
                + len(instance.assigned_devices) > 0

    def _remove_device_process(self, instance, device_name):
        if device_name in instance.processed_devices:
            self._call_device_script(instance, instance.script_post, "unapply", [device_name])
            self._removed_device_unapply_tuning(instance, device_name)
            self._call_device_script(instance, instance.script_pre, "unapply", [device_name])
            instance.processed_devices.remove(device_name)
            # This can be a bit racy (we can overcount),
            # but it shouldn't affect the boolean result
            instance.active = len(instance.processed_devices) \
                    + len(instance.assigned_devices) > 0
            self._assigned_devices.remove(device_name)
            return True
        return False

    def _remove_device(self, device_name):
        """Remove device from the instance

        Parameters:
        device_name -- name of the device

        """
        if device_name not in (self._assigned_devices | self._free_devices):
            return

        for instance in list(self._instances.values()):
            if self._remove_device_process(instance, device_name):
                break
        else:
            self._free_devices.remove(device_name)

    def _remove_devices_nocheck(self, instance, device_names):
        """
        Remove devices specified by the set from the instance, no check is performed.
        """
        for dev in device_names:
            self._remove_device_process(instance, dev)

    def _added_device_apply_tuning(self, instance, device_name):
        self._execute_all_device_commands(instance, [device_name])
        if instance.has_dynamic_tuning and self._global_cfg.get(consts.CFG_DYNAMIC_TUNING, consts.CFG_DEF_DYNAMIC_TUNING):
            self._instance_apply_dynamic(instance, device_name)

    def _removed_device_unapply_tuning(self, instance, device_name):
        if instance.has_dynamic_tuning and self._global_cfg.get(consts.CFG_DYNAMIC_TUNING, consts.CFG_DEF_DYNAMIC_TUNING):
            self._instance_unapply_dynamic(instance, device_name)
        self._cleanup_all_device_commands(instance, [device_name], remove = True)

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0034 ]--