Server IP : 149.255.58.128 / Your IP : 216.73.216.74
System : Linux cloud516.thundercloud.uk 5.14.0-427.26.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 17 15:51:13 EDT 2024 x86_64
PHP Version : 8.2.28
Disable Function : allow_url_include, apache_child_terminate, apache_setenv, exec, passthru, pcntl_exec, posix_kill, posix_mkfifo, posix_getpwuid, posix_setpgid, posix_setsid, posix_setuid, posix_setgid, posix_seteuid, posix_setegid, posix_uname, proc_close, proc_get_status, proc_open, proc_terminate, shell_exec, show_source, system
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Upload Files :
Command :
Current File : /usr/lib/python3.9/site-packages/tuned/profiles//merger.py
import collections
from functools import reduce
class Merger(object):
"""
Tool for merging multiple profiles into one.
"""
def __init__(self):
pass
def merge(self, configs):
"""
Merge multiple configurations into one. If there are multiple units of the same type, option 'devices'
is set for each unit with respect to eliminating any duplicate devices.
"""
merged_config = reduce(self._merge_two, configs)
return merged_config
def _merge_two(self, profile_a, profile_b):
"""
Merge two profiles. The configuration of units with matching names are updated with options
from the newer profile. If the 'replace' options of the newer unit is 'True', all options from the
older unit are dropped.
"""
profile_a.options.update(profile_b.options)
for unit_name, unit in list(profile_b.units.items()):
if unit.replace or unit_name not in profile_a.units:
profile_a.units[unit_name] = unit
else:
profile_a.units[unit_name].type = unit.type
profile_a.units[unit_name].enabled = unit.enabled
profile_a.units[unit_name].devices = unit.devices
if unit.devices_udev_regex is not None:
profile_a.units[unit_name].devices_udev_regex = unit.devices_udev_regex
if unit.cpuinfo_regex is not None:
profile_a.units[unit_name].cpuinfo_regex = unit.cpuinfo_regex
if unit.uname_regex is not None:
profile_a.units[unit_name].uname_regex = unit.uname_regex
if unit.script_pre is not None:
profile_a.units[unit_name].script_pre = unit.script_pre
if unit.script_post is not None:
profile_a.units[unit_name].script_post = unit.script_post
if unit.drop is not None:
for option in unit.drop:
profile_a.units[unit_name].options.pop(option, None)
unit.drop = None
if unit_name == "script" and profile_a.units[unit_name].options.get("script", None) is not None:
script = profile_a.units[unit_name].options.get("script", None)
profile_a.units[unit_name].options.update(unit.options)
profile_a.units[unit_name].options["script"] = script + profile_a.units[unit_name].options["script"]
else:
profile_a.units[unit_name].options.update(unit.options)
return profile_a
Name |
Size |
Last Modified |
Owner / Group |
Permissions |
Options |
.. | -- | December 04 2024 22:44:57 | 0 / root | 0755 | |
__pycache__ | -- | December 04 2024 22:44:57 | 0 / root | 0755 | |
functions | -- | December 04 2024 22:44:57 | 0 / root | 0755 | |
| | | | | |
__init__.py | 0.274 KB | August 07 2024 20:09:40 | 0 / root | 0644 | |
exceptions.py | 0.093 KB | August 07 2024 20:09:40 | 0 / root | 0644 | |
factory.py | 0.138 KB | August 07 2024 20:09:40 | 0 / root | 0644 | |
loader.py | 4.17 KB | August 07 2024 20:09:40 | 0 / root | 0644 | |
locator.py | 3.695 KB | August 07 2024 20:09:40 | 0 / root | 0644 | |
merger.py | 2.133 KB | August 07 2024 20:09:40 | 0 / root | 0644 | |
profile.py | 1.107 KB | August 07 2024 20:09:40 | 0 / root | 0644 | |
unit.py | 2.616 KB | August 07 2024 20:09:40 | 0 / root | 0644 | |
variables.py | 2.285 KB | August 07 2024 20:09:40 | 0 / root | 0644 | |