mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-22 13:02:44 +01:00
auto-t: iwd.py: remove StationDebug out of Device init
Since a Device class can represent multiple modes (AP, AdHoc, station) move StationDebug out of the init and only create this class when it is used (presumably only when the device is in station mode). The StationDebug class is now created in a property method consistent with 'station_if'. If Device is not in station mode it is automatically switched if the test tries any StationDebug methods. If the Device mode is changed from 'station' the StationDebug class instance is destroyed.
This commit is contained in:
parent
04fccea63b
commit
4ee44ee0ea
@ -280,17 +280,13 @@ class Device(IWDDBusAbstract):
|
||||
'''
|
||||
_iface_name = IWD_DEVICE_INTERFACE
|
||||
|
||||
def __init__(self, object_path = None, properties = None,
|
||||
service=IWD_SERVICE, namespace=ctx):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self._wps_manager_if = None
|
||||
self._station_if = None
|
||||
self._station_props = None
|
||||
self._station_debug_obj = None
|
||||
|
||||
IWDDBusAbstract.__init__(self, object_path, properties, service,
|
||||
namespace)
|
||||
|
||||
self._station_debug = StationDebug(object_path=object_path,
|
||||
namespace=namespace)
|
||||
IWDDBusAbstract.__init__(self, *args, **kwargs)
|
||||
|
||||
@property
|
||||
def _wps_manager(self):
|
||||
@ -309,6 +305,17 @@ class Device(IWDDBusAbstract):
|
||||
IWD_STATION_INTERFACE)
|
||||
return self._station_if
|
||||
|
||||
@property
|
||||
def _station_debug(self):
|
||||
if self._properties['Mode'] != 'station':
|
||||
self._prop_proxy.Set(IWD_DEVICE_INTERFACE, 'Mode', 'station')
|
||||
|
||||
if self._station_debug_obj is None:
|
||||
self._station_debug_obj = StationDebug(object_path=self._object_path,
|
||||
namespace=self._namespace)
|
||||
|
||||
return self._station_debug_obj
|
||||
|
||||
def _station_properties(self):
|
||||
if self._station_props is not None:
|
||||
return self._station_props
|
||||
@ -335,6 +342,9 @@ class Device(IWDDBusAbstract):
|
||||
for name, value in changed.items():
|
||||
self._station_props[name] = value
|
||||
|
||||
if name == 'Mode' and value != 'station':
|
||||
self._station_debug_obj = None
|
||||
|
||||
@property
|
||||
def device_path(self):
|
||||
'''
|
||||
|
Loading…
Reference in New Issue
Block a user