diff --git a/tuned/commands/base.py b/tuned/commands/base.py index cb4a885..744da5d 100644 --- a/tuned/commands/base.py +++ b/tuned/commands/base.py @@ -15,7 +15,7 @@ class Command(object): @property def name(self): - return self._name + return self._desc @property def desc(self): diff --git a/tuned/commands/command_set_elevator.py b/tuned/commands/command_set_elevator.py deleted file mode 100644 index 25f7d41..0000000 --- a/tuned/commands/command_set_elevator.py +++ /dev/null @@ -1,39 +0,0 @@ -import tuned.commands -import tuned.logs -import os -import struct - -log = tuned.logs.get() - -class SetElevatorCommand(tuned.commands.Command): - """ - """ - - def __init__(self): - """ - """ - super(self.__class__, self).__init__("set_elevator") - - def execute(self, args): - dev = args[0]; - elevator = args[1] - old_args = [dev, ""] - - try: - f = open(os.path.join("/sys/block/", dev, "queue/scheduler"), "r") - old_args[1] = f.read() - f.close() - except (OSError,IOError) as e: - log.error("Getting elevator of %s error: %s" % (dev, e)) - - log.debug("Applying elevator: %s < %s" % (dev, elevator)) - try: - f = open(os.path.join("/sys/block/", dev, "queue/scheduler"), "w") - f.write(elevator) - f.close() - except (OSError,IOError) as e: - log.error("Setting elevator on %s error: %s" % (dev, e)) - return old_args - - def revert(self, args): - self.execute(args) diff --git a/tuned/commands/repository.py b/tuned/commands/repository.py index d13c13e..48d35c4 100644 --- a/tuned/commands/repository.py +++ b/tuned/commands/repository.py @@ -10,13 +10,13 @@ log = tuned.logs.get() class CommandRepository(tuned.patterns.Singleton): def __init__(self): super(self.__class__, self).__init__() - self._loader = tuned.utils.PluginLoader("tuned.commands", "command_", tuned.commands.Command) + self._loader = tuned.utils.PluginLoader("tuned.commands", "command_", tuned.plugins.Command) self._commands = {} storage = tuned.utils.storage.Storage.get_instance() if storage.data.has_key("commands"): for command_name, args in data["sysctl"].iteritems(): - self._revert(command_name, args) + self._execute(command_name, args) storage.data["commands"] = {} @@ -35,7 +35,7 @@ class CommandRepository(tuned.patterns.Singleton): # Store the previously set values storage = tuned.utils.storage.Storage.get_instance() - if not storage.data["commands"].has_key(command_name): + if not storage.data["commands"].has_key(command_name) storage.data["commands"][command_name] = previous_args storage.save() else: @@ -43,15 +43,6 @@ class CommandRepository(tuned.patterns.Singleton): # in a row and show error instead? pass - def _revert(self, command_name, args): - # Load command on-the-fly - if not self._commands.has_key(command_name): - self._load_command(command_name) - - # Execute command and get the previously set values. - log.debug("reverting command %s with args %s" % (command_name, unicode(args))) - self._commands[command_name].revert(args) - def revert(self, command_name): storage = tuned.utils.storage.Storage.get_instance() if not storage.data["commands"].has_key(command_name): @@ -66,10 +57,10 @@ class CommandRepository(tuned.patterns.Singleton): try: command_cls = self._loader.load(command_name) command_instance = command_cls() - self._commands[command_instance.name] = command_instance + self._commands[command_instance.name](command_instance) return command_instance except Exception as exception: - command_exception = tuned.commands.exception.LoadCommandException(command_name, exception) + command_exception = tuned.plugins.exception.LoadCommandException(command_name, exception) raise command_exception def delete(self, command_name): diff --git a/tuned/plugins/plugin_disk.py b/tuned/plugins/plugin_disk.py index 01bb655..1a7868f 100644 --- a/tuned/plugins/plugin_disk.py +++ b/tuned/plugins/plugin_disk.py @@ -2,7 +2,6 @@ import os, copy import tuned.plugins import tuned.logs import tuned.monitors -import tuned.commands import struct log = tuned.logs.get() @@ -137,13 +136,13 @@ class DiskPlugin(tuned.plugins.Plugin): for dev in self.devidle.keys(): if self.devidle[dev]["LEVEL"] > 0: os.system("hdparm -S0 -B255 /dev/"+dev+" > /dev/null 2>&1") - tuned.commands.get_repository().revert("set_elevator") + self._revert_elevator(dev) def update_tuning(self): load = self._load_monitor.get_load() for dev, devload in load.iteritems(): - if not self._elevator_set and len(self._options["elevator"]) != 0: - tuned.commands.get_repository().execute("set_elevator", [dev, self._options["elevator"]]) + if not self._elevator_set: + self._apply_elevator(dev) self._init_stats(dev) self._update_stats(dev, devload)