wireless plugin: use new commands interface, not completed!
This commit is contained in:
parent
e2cf4b13b6
commit
0f6051843f
2 changed files with 13 additions and 62 deletions
|
|
@ -18,7 +18,7 @@
|
|||
__all__ = ["command", "command_get"]
|
||||
|
||||
# @command_set("scheduler", per_device=True)
|
||||
# def set_scheduler(self, device, value):
|
||||
# def set_scheduler(self, value, device):
|
||||
# set_new_scheduler
|
||||
#
|
||||
# @command_get("scheduler")
|
||||
|
|
|
|||
|
|
@ -8,27 +8,16 @@ import glob
|
|||
|
||||
log = tuned.logs.get()
|
||||
|
||||
class WirelessPlugin(tuned.plugins.Plugin):
|
||||
class WirelessPlugin(tuned.plugins.RFKillPlugin):
|
||||
"""
|
||||
Plugin for setting wireless powersaving options.
|
||||
"""
|
||||
|
||||
def __init__(self, devices, options):
|
||||
"""
|
||||
"""
|
||||
super(self.__class__, self).__init__(devices, options)
|
||||
|
||||
if not tuned.utils.storage.Storage.get_instance().data.has_key("wireless"):
|
||||
tuned.utils.storage.Storage.get_instance().data["wireless"] = {}
|
||||
|
||||
self.register_command("wifi_power_level", self._set_wifi_power_level)
|
||||
self.register_command("enable_bluetooth", self._set_enable_bluetooth)
|
||||
|
||||
@classmethod
|
||||
def _get_default_options(cls):
|
||||
return {
|
||||
"dynamic_tuning" : "0",
|
||||
"wifi_power_level" : None,
|
||||
"enable_bluetooth" : None,
|
||||
"power_level" : None,
|
||||
}
|
||||
|
||||
def cleanup(self):
|
||||
|
|
@ -37,51 +26,13 @@ class WirelessPlugin(tuned.plugins.Plugin):
|
|||
def update_tuning(self):
|
||||
pass
|
||||
|
||||
@command("wireless", "wifi_power_level")
|
||||
def _set_wifi_power_level(self, power_level):
|
||||
try:
|
||||
lines = open("/proc/net/wireless").readlines()
|
||||
except (OSError,IOError) as e:
|
||||
log.error("Error reading wifi devices from /proc/net/wireless: %s" % (e))
|
||||
return
|
||||
@command_set("power_level", per_device=True)
|
||||
def _set_power_level(self, value, device):
|
||||
# TODO: not implemented ticket #26
|
||||
# 1. iwpriv <interface> set_power <power_level>
|
||||
# 2. /sys/bus/pci/devices/*/power_level
|
||||
log.warn("setting wifi power_level is not implemented, ticket #26")
|
||||
|
||||
ifaces = []
|
||||
for line in lines:
|
||||
if line.find("|") != -1:
|
||||
continue
|
||||
try:
|
||||
ifaces.append(line[:line.find(":")])
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
if len(ifaces) == 0:
|
||||
log.info("No wifi interfaces found")
|
||||
return
|
||||
|
||||
# TODO: set old_value properly. Is there "get_power"? I don't have wifi here
|
||||
old_value = "5"
|
||||
|
||||
for iface in ifaces:
|
||||
tuned.utils.commands.execute(["iwpriv", iface, "set_power", power_level])
|
||||
|
||||
for sys_file in glob.glob("/sys/bus/pci/devices/*/power_level"):
|
||||
tuned.utils.commands.write_to_file(sys_file, power_level)
|
||||
|
||||
return old_value
|
||||
|
||||
@command("wireless", "enable_bluetooth")
|
||||
def _set_enable_bluetooth(self, value):
|
||||
old_value = "" # TODO: Set old_value properly
|
||||
if value == "1" or value == "true":
|
||||
tuned.utils.commands.execute(["modprobe", "hci_usb"])
|
||||
tuned.utils.commands.execute(["hciconfig", "hci0", "up"])
|
||||
elif value == "0" or value == "false":
|
||||
tuned.utils.commands.execute(["hciconfig", "hci0", "down"])
|
||||
tuned.utils.commands.execute(["rmmod", "hci_usb"])
|
||||
else:
|
||||
log.warn("Incorrect enable_bluetooth value.")
|
||||
return
|
||||
|
||||
return old_value
|
||||
|
||||
|
||||
@command_get("power_level")
|
||||
def _get_power_level(self, device):
|
||||
return None
|
||||
|
|
|
|||
Loading…
Reference in a new issue