def do_set(connection, data, set_gobject):
    print_user_data(connection, False,
                    [d[0] for d in data],
                    prefix = 'BEFORE: ')
    print('')
    s_u = connection.get_setting(NM.SettingUser)
    if s_u is None:
        connection.add_setting(NM.SettingUser())
        s_u = connection.get_setting(NM.SettingUser)
    for d in data:
        key = d[0]
        val = d[1]
        if val is None:
            print(' DEL: "%s"' % (key))
        else:
            print(' SET: "%s" = "%s"' % (key, val))
        if set_gobject:
            d = s_u.get_property(NM.SETTING_USER_DATA)
            if val is None:
                d.pop(key, None)
            else:
                d[key] = val
            s_u.set_property(NM.SETTING_USER_DATA, d)
        else:
            try:
                s_u.set_data(key, val)
            except Exception as e:
                if val is None:
                    print('error deleting key "%s": %s' % (key, e))
                else:
                    print('error setting key "%s" = "%s": %s' % (key, val, e))
                sys.exit(1)


    try:
        connection.commit_changes(True, None)
    except Exception as e:
        print('failure to commit connection: %s' % (e))
        sys.exit(1)

    print('')
    print_user_data(connection, False,
                    [d[0] for d in data],
                    prefix = 'AFTER:  ')
Exemple #2
0
    def add_connection_metadata(self, serialized_data, uname, conn_uuid):
        sc = NM.SimpleConnection.new_from_dbus(
            GLib.Variant.parse(None, serialized_data, None, None))
        setu = sc.get_setting(NM.SettingUser)
        if not setu:
            sc.add_setting(NM.SettingUser())
            setu = sc.get_setting(NM.SettingUser)

        setc = sc.get_setting(NM.SettingConnection)

        hashed_uuid = str(uuid.uuid5(uuid.UUID(conn_uuid), uname))

        setu.set_data('org.fleet-commander.connection', 'true')
        setu.set_data('org.fleet-commander.connection.uuid', conn_uuid)
        setc.set_property("uuid", hashed_uuid)
        setc.add_permission("user", uname, None)

        return (sc.to_dbus(NM.ConnectionSerializationFlags.NO_SECRETS),
                hashed_uuid)