[Sugar-devel] [PATCH] Use NetworkManager to generate connection UUIDs
Simon Schampijer
simon at schampijer.de
Tue Oct 9 17:47:50 EDT 2012
Hi Daniel,
thanks for the patch.
On 10/08/2012 11:48 PM, Daniel Drake wrote:
> Recent versions of NetworkManager have gotten stricter when checking
> UUIDs. A UUID must be 32 hex characters plus 4 dashes.
To know the scope of this issue a bit more: What current side effects do
we have?
> Sugar's unique_id() doesn't satisify this. Switch to using NM
> to generate UUIDs.
We can use the python module for uuid as well to generate an UUID with
the 4 dashes (e.g. uuid.uuid1()) [1].
The other place we do use our own util is for the activity id, should we
switch there as well?
[1] http://docs.python.org/library/uuid.html
Regards,
Simon
> ---
> src/jarabe/desktop/networkviews.py | 4 ++--
> src/jarabe/model/adhoc.py | 4 ++--
> src/jarabe/model/network.py | 4 ++--
> src/jarabe/model/olpcmesh.py | 4 ++--
> 4 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/src/jarabe/desktop/networkviews.py b/src/jarabe/desktop/networkviews.py
> index c949b7e..02ab2b7 100644
> --- a/src/jarabe/desktop/networkviews.py
> +++ b/src/jarabe/desktop/networkviews.py
> @@ -22,6 +22,7 @@ import hashlib
>
> import dbus
> import glib
> +from gi.repository import NetworkManager
>
> from sugar3.graphics.icon import Icon
> from sugar3.graphics.xocolor import XoColor
> @@ -30,7 +31,6 @@ from sugar3.graphics import style
> from sugar3.graphics.icon import get_icon_state
> from sugar3.graphics import palette
> from sugar3.graphics.menuitem import MenuItem
> -from sugar3.util import unique_id
> from sugar3 import profile
>
> from jarabe.view.pulsingicon import EventPulsingIcon
> @@ -346,7 +346,7 @@ class WirelessNetworkView(EventPulsingIcon):
> logging.debug('Creating new connection for SSID %r', self._ssid)
> settings = Settings()
> settings.connection.id = self._display_name
> - settings.connection.uuid = unique_id()
> + settings.connection.uuid = NetworkManager.utils_uuid_generate()
> settings.connection.type = '802-11-wireless'
> settings.wireless.ssid = self._ssid
>
> diff --git a/src/jarabe/model/adhoc.py b/src/jarabe/model/adhoc.py
> index dfd6caa..7b2c3ea 100644
> --- a/src/jarabe/model/adhoc.py
> +++ b/src/jarabe/model/adhoc.py
> @@ -18,10 +18,10 @@ import logging
>
> import dbus
> from gi.repository import GObject
> +from gi.repository import NetworkManager
>
> from jarabe.model import network
> from jarabe.model.network import Settings
> -from sugar3.util import unique_id
> from jarabe.model.network import IP4Config
>
>
> @@ -187,7 +187,7 @@ class AdHocManager(GObject.GObject):
> ssid = 'Ad-hoc Network %d' % (channel,)
> settings = Settings()
> settings.connection.id = self._get_connection_id(channel)
> - settings.connection.uuid = unique_id()
> + settings.connection.uuid = NetworkManager.utils_uuid_generate()
> settings.connection.type = '802-11-wireless'
> settings.connection.autoconnect = False
> settings.wireless.ssid = dbus.ByteArray(ssid)
> diff --git a/src/jarabe/model/network.py b/src/jarabe/model/network.py
> index 930ba13..043a6a2 100644
> --- a/src/jarabe/model/network.py
> +++ b/src/jarabe/model/network.py
> @@ -27,11 +27,11 @@ import dbus.service
> from gi.repository import GObject
> import ConfigParser
> from gi.repository import GConf
> +from gi.repository import NetworkManager
> import ctypes
>
> from sugar3 import dispatch
> from sugar3 import env
> -from sugar3.util import unique_id
>
> NM_STATE_UNKNOWN = 0
> NM_STATE_ASLEEP = 10
> @@ -991,7 +991,7 @@ def create_gsm_connection(username, password, number, apn, pin):
>
> settings.connection.id = GSM_CONNECTION_ID
> settings.connection.type = NM_CONNECTION_TYPE_GSM
> - settings.connection.uuid = unique_id()
> + settings.connection.uuid = NetworkManager.utils_uuid_generate()
> settings.connection.autoconnect = False
> settings.ip4_config.method = 'auto'
> settings.serial.baud = GSM_BAUD_RATE
> diff --git a/src/jarabe/model/olpcmesh.py b/src/jarabe/model/olpcmesh.py
> index c2a81f5..dd35c29 100644
> --- a/src/jarabe/model/olpcmesh.py
> +++ b/src/jarabe/model/olpcmesh.py
> @@ -18,11 +18,11 @@ import logging
>
> import dbus
> from gi.repository import GObject
> +from gi.repository import NetworkManager
>
> from jarabe.model import network
> from jarabe.model.network import Settings
> from jarabe.model.network import OlpcMesh as OlpcMeshSettings
> -from sugar3.util import unique_id
>
> _XS_ANYCAST = '\xc0\x27\xc0\x27\xc0\x00'
>
> @@ -177,7 +177,7 @@ class OlpcMeshManager(object):
> settings.ip4_config.method = 'link-local'
> settings.connection.id = self._get_connection_id(channel, xs_hosted)
> settings.connection.autoconnect = False
> - settings.connection.uuid = unique_id()
> + settings.connection.uuid = NetworkManager.utils_uuid_generate()
> settings.connection.type = '802-11-olpc-mesh'
> network.add_connection(settings,
> reply_handler=self._add_connection_reply_cb,
>
More information about the Sugar-devel
mailing list