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: ')
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)