plugin repository: use new hardware enumeration to obtain devices
This commit is contained in:
parent
31b0128bbc
commit
74c8c2c0fe
3 changed files with 12 additions and 5 deletions
|
|
@ -1,4 +1,4 @@
|
|||
from tuned import storage, units, monitors, plugins, profiles, exports
|
||||
from tuned import storage, units, monitors, plugins, profiles, exports, hardware
|
||||
from tuned.exceptions import TunedException
|
||||
import tuned.logs
|
||||
import controller
|
||||
|
|
@ -23,8 +23,9 @@ class Application(object):
|
|||
|
||||
unit_factory = units.Factory()
|
||||
device_matcher = units.DeviceMatcher()
|
||||
hardware_enumerator = hardware.Enumerator()
|
||||
monitors_repository = monitors.Repository()
|
||||
plugins_repository = plugins.Repository(storage_factory, monitors_repository)
|
||||
plugins_repository = plugins.Repository(storage_factory, monitors_repository, hardware_enumerator)
|
||||
unit_manager = units.Manager(plugins_repository, monitors_repository, unit_factory, device_matcher)
|
||||
|
||||
profile_factory = profiles.Factory()
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ class Plugin(object):
|
|||
saving. Plugins use Monitor objects to get information from the running system.
|
||||
|
||||
Methods requiring reimplementation:
|
||||
- device_requirements(cls)
|
||||
- update_tuning(self)
|
||||
"""
|
||||
|
||||
|
|
@ -22,7 +23,8 @@ class Plugin(object):
|
|||
return {}
|
||||
|
||||
@classmethod
|
||||
def tunable_devices(cls):
|
||||
def device_requirements(cls):
|
||||
raise Exception("device_requirements not implemented")
|
||||
return None
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -8,11 +8,12 @@ __all__ = ["Repository"]
|
|||
|
||||
class Repository(PluginLoader):
|
||||
|
||||
def __init__(self, storage_factory, monitor_repository):
|
||||
def __init__(self, storage_factory, monitor_repository, hardware_enumerator):
|
||||
super(self.__class__, self).__init__()
|
||||
self._plugins = set()
|
||||
self._storage_factory = storage_factory
|
||||
self._monitor_repository = monitor_repository
|
||||
self._hardware_enumerator = hardware_enumerator
|
||||
|
||||
def _set_loader_parameters(self):
|
||||
self._namespace = "tuned.plugins"
|
||||
|
|
@ -28,7 +29,10 @@ class Repository(PluginLoader):
|
|||
|
||||
def tunable_devices(self, plugin_name):
|
||||
plugin_cls = self.load_plugin(plugin_name)
|
||||
return plugin_cls.tunable_devices()
|
||||
device_requirements = plugin_cls.device_requirements()
|
||||
devices = self._hardware_enumerator.get_devices(**device_requirements)
|
||||
|
||||
return map(lambda device: device.sys_name, devices)
|
||||
|
||||
def is_supported(self, plugin_name):
|
||||
plugin_cls = self.load_plugin(plugin_name)
|
||||
|
|
|
|||
Loading…
Reference in a new issue