[PATCH master] network: call GDBus proxy methods like python
Vratislav Podzimek
vpodzime at redhat.com
Thu Nov 14 05:52:47 UTC 2013
On Wed, 2013-11-13 at 21:40 +0100, Radek Vykydal wrote:
> ---
> pyanaconda/nm.py | 136 +++++++++----------------------------------------------
> 1 file changed, 22 insertions(+), 114 deletions(-)
>
> diff --git a/pyanaconda/nm.py b/pyanaconda/nm.py
> index b039211..4daaa49 100644
> --- a/pyanaconda/nm.py
> +++ b/pyanaconda/nm.py
> @@ -82,13 +82,8 @@ def _get_proxy(bus_type=Gio.BusType.SYSTEM,
> def _get_property(object_path, prop, interface_name_suffix=""):
> interface_name = "org.freedesktop.NetworkManager" + interface_name_suffix
> proxy = _get_proxy(object_path=object_path, interface_name="org.freedesktop.DBus.Properties")
> - args = GLib.Variant('(ss)', (interface_name, prop))
> try:
> - prop = proxy.call_sync("Get",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> + prop = proxy.Get('(ss)', interface_name, prop)
> except GLib.GError as e:
> if "org.freedesktop.DBus.Error.AccessDenied" in e.message:
> return None
> @@ -97,7 +92,7 @@ def _get_property(object_path, prop, interface_name_suffix=""):
> else:
> raise
>
> - return prop.unpack()[0]
> + return prop
>
> def nm_state():
> """Return state of NetworkManager
> @@ -139,14 +134,7 @@ def nm_devices():
> interfaces = []
>
> proxy = _get_proxy()
> - args = None
> - devices = proxy.call_sync("GetDevices",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> -
> - devices = devices.unpack()[0]
> + devices = proxy.GetDevices()
> for device in devices:
> device_type = _get_property(device, "DeviceType", ".Device")
> if device_type not in supported_device_types:
> @@ -214,20 +202,13 @@ def nm_device_property(name, prop):
> retval = None
>
> proxy = _get_proxy()
> - args = GLib.Variant('(s)', (name,))
> try:
> - device = proxy.call_sync("GetDeviceByIpIface",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> + device = proxy.GetDeviceByIpIface('(s)', name)
> except GLib.GError as e:
> if "org.freedesktop.NetworkManager.UnknownDevice" in e.message:
> raise UnknownDeviceError(name, e)
> raise
>
> - device = device.unpack()[0]
> -
> retval = _get_property(device, prop, ".Device")
> if not retval:
> # Look in device type based interface
> @@ -602,22 +583,10 @@ def _find_settings(value, key1, key2, format_value=lambda x:x):
>
> proxy = _get_proxy(object_path="/org/freedesktop/NetworkManager/Settings", interface_name="org.freedesktop.NetworkManager.Settings")
>
> - args = None
> - connections = proxy.call_sync("ListConnections",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> -
> - for con in connections.unpack()[0]:
> + connections = proxy.ListConnections()
> + for con in connections:
> proxy = _get_proxy(object_path=con, interface_name="org.freedesktop.NetworkManager.Settings.Connection")
> - args = None
> - settings = proxy.call_sync("GetSettings",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> - settings = settings.unpack()[0]
> + settings = proxy.GetSettings()
> try:
> v = settings[key1][key2]
> except KeyError:
> @@ -636,13 +605,7 @@ def nm_get_settings(value, key1, key2, format_value=lambda x:x):
> settings_paths = _find_settings(value, key1, key2, format_value)
> for settings_path in settings_paths:
> proxy = _get_proxy(object_path=settings_path, interface_name="org.freedesktop.NetworkManager.Settings.Connection")
> - args = None
> - settings = proxy.call_sync("GetSettings",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> - settings = settings.unpack()[0]
> + settings = proxy.GetSettings()
> retval.append(settings)
>
> return retval
> @@ -653,21 +616,10 @@ def nm_get_all_settings():
>
> proxy = _get_proxy(object_path="/org/freedesktop/NetworkManager/Settings", interface_name="org.freedesktop.NetworkManager.Settings")
>
> - args = None
> - connections = proxy.call_sync("ListConnections",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> -
> - for con in connections.unpack()[0]:
> + connections = proxy.ListConnections()
> + for con in connections:
> proxy = _get_proxy(object_path=con, interface_name="org.freedesktop.NetworkManager.Settings.Connection")
> - args = None
> - settings = proxy.call_sync("GetSettings",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> + settings = proxy.GetSettings()
> retval.append(settings)
>
> return retval
> @@ -695,13 +647,7 @@ def nm_device_setting_value(name, key1, key2):
> else:
> settings_path = settings_paths[0]
> proxy = _get_proxy(object_path=settings_path, interface_name="org.freedesktop.NetworkManager.Settings.Connection")
> - args = None
> - settings = proxy.call_sync("GetSettings",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> - settings = settings.unpack()[0]
> + settings = proxy.GetSettings()
> try:
> value = settings[key1][key2]
> except KeyError:
> @@ -730,13 +676,7 @@ def nm_ap_setting_value(ssid, key1, key2):
> else:
> settings_path = settings_paths[0]
> proxy = _get_proxy(object_path=settings_path, interface_name="org.freedesktop.NetworkManager.Settings.Connection")
> - args = None
> - settings = proxy.call_sync("GetSettings",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> - settings = settings.unpack()[0]
> + settings = proxy.GetSettings()
> try:
> value = settings[key1][key2]
> except KeyError:
> @@ -749,26 +689,15 @@ def nm_disconnect_device(name):
> :raise UnknownDeviceError: if device is not found
> """
> proxy = _get_proxy()
> - args = GLib.Variant('(s)', (name,))
> try:
> - device = proxy.call_sync("GetDeviceByIpIface",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> + device = proxy.GetDeviceByIpIface('(s)', name)
> except GLib.GError as e:
> if "org.freedesktop.NetworkManager.UnknownDevice" in e.message:
> raise UnknownDeviceError(name, e)
> raise
>
> - device = device.unpack()[0]
> device_proxy = _get_proxy(object_path=device, interface_name="org.freedesktop.NetworkManager.Device")
> - args = None
> - device_proxy.call_sync("Disconnect",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> + device_proxy.Disconnect()
>
> def nm_activate_device_connection(dev_name, con_uuid):
> """Activate device with specified connection.
> @@ -788,32 +717,20 @@ def nm_activate_device_connection(dev_name, con_uuid):
> device_path = "/"
> else:
> proxy = _get_proxy()
> - args = GLib.Variant('(s)', (dev_name,))
> try:
> - device = proxy.call_sync("GetDeviceByIpIface",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> + device_path = proxy.GetDeviceByIpIface('(s)', dev_name)
> except Exception as e:
> if "org.freedesktop.NetworkManager.UnknownDevice" in e.message:
> raise UnknownDeviceError(dev_name, e)
> raise
>
> - device_path = device.unpack()[0]
> -
> con_paths = _find_settings(con_uuid, 'connection', 'uuid')
> if not con_paths:
> raise SettingsNotFoundError(con_uuid)
>
> - args = GLib.Variant('(ooo)', (con_paths[0], device_path, "/"))
> nm_proxy = _get_proxy()
> try:
> - nm_proxy.call_sync("ActivateConnection",
> - args,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> + nm_proxy.ActivateConnection('(ooo)', con_paths[0], device_path, "/")
> except GLib.GError as e:
> if "org.freedesktop.NetworkManager.UnmanagedDevice" in e.message:
> raise UnmanagedDeviceError(dev_name, e)
> @@ -841,16 +758,11 @@ def nm_add_connection(values):
> if key1 not in settings:
> settings[key1] = {}
> settings[key1][key2] = gvalue
> - gsettings = GLib.Variant("(a{sa{sv}})", (settings,))
>
> proxy = _get_proxy(object_path="/org/freedesktop/NetworkManager/Settings",
> interface_name="org.freedesktop.NetworkManager.Settings")
> - connection = proxy.call_sync("AddConnection",
> - gsettings,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> - return connection.unpack()
> + connection = proxy.AddConnection('(a{sa{sv}})', settings)
> + return connection
>
> def nm_update_settings_of_device(name, new_values):
> """Update setting of device.
> @@ -918,13 +830,9 @@ def _update_settings(settings_path, new_values):
> DEFAULT_DBUS_TIMEOUT,
> None)
> for key1, key2, value, default_type_str in new_values:
> - settings = _gvariant_settings(settings, key1, key2, value, default_type_str)
> + new_settings = _gvariant_settings(settings, key1, key2, value, default_type_str)
>
> - proxy.call_sync("Update",
> - settings,
> - Gio.DBusCallFlags.NONE,
> - DEFAULT_DBUS_TIMEOUT,
> - None)
> + proxy.Update(settings.get_type_string(), new_settings)
>
> def _gvariant_settings(settings, updated_key1, updated_key2, value, default_type_str=None):
> """Update setting of updated_key1, updated_key2 of settings object with value.
> @@ -974,7 +882,7 @@ def _gvariant_settings(settings, updated_key1, updated_key2, value, default_type
> new_settings[updated_key1] = {}
> new_settings[updated_key1][updated_key2] = GLib.Variant(type_str, value)
>
> - return GLib.Variant(settings.get_type_string(), (new_settings,))
> + return new_settings
>
> def nm_ipv6_to_dbus_ay(address):
> """Convert ipv6 address from string to list of bytes 'ay' for dbus
Nice, ACK!
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic
More information about the anaconda-patches
mailing list