X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ovsdb%2Fovsdbmonitor%2FOVEConfig.py;h=4754c67af5454878394ce4b7b17ea2d738437a93;hb=04a85497b994b0cb1c702d4ff8b0d2149767ae0e;hp=7cc18eb4927dcc2b8b0640149c7144ca226b9a13;hpb=436f27dd880bd4e1e1d06ca2744c875b01b9e1c1;p=openvswitch diff --git a/ovsdb/ovsdbmonitor/OVEConfig.py b/ovsdb/ovsdbmonitor/OVEConfig.py index 7cc18eb4..4754c67a 100644 --- a/ovsdb/ovsdbmonitor/OVEConfig.py +++ b/ovsdb/ovsdbmonitor/OVEConfig.py @@ -1,3 +1,4 @@ +# Copyright (c) 2011 Nicira Networks. # Copyright (c) 2010 Citrix Systems, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -14,6 +15,21 @@ from OVEStandard import * from OVELogger import * +import ovs.json + +def str_recursive(x): + t = type(x) + if t == unicode: + return str(x) + elif t == list: + return [str_recursive(_) for _ in x] + elif t == dict: + out = {} + for k,v in x.iteritems(): + out[str_recursive(k)] = str_recursive(v) + return out + else: + return x class OVEConfig(QtCore.QObject): instance = None @@ -40,21 +56,21 @@ class OVEConfig(QtCore.QObject): def saveConfig(self): settings = QtCore.QSettings() - settings.setValue('config/hosts', QVariant(json.JsonWriter().write(self.hosts))) + settings.setValue('config/hosts', QVariant(ovs.json.to_string((self.hosts)))) settings.setValue('config/logTraffic', QVariant(self.logTraffic)) settings.setValue('config/truncateUuids', QVariant(self.truncateUuids)) - settings.setValue('config/ssgList', QVariant(json.JsonWriter().write(self.ssgList))) + settings.setValue('config/ssgList', QVariant(ovs.json.to_string(self.ssgList))) settings.sync() self.emitUpdated() - + def loadConfig(self): settings = QtCore.QSettings() jsonText = unicode(settings.value('config/hosts', QVariant('[]')).toString()) - self.hosts = json.JsonReader().read(str(jsonText)) + self.hosts = str_recursive(ovs.json.from_string(str(jsonText))) self.logTraffic = settings.value('config/logTraffic', QVariant(False)).toBool() self.truncateUuids = settings.value('config/truncateUuids', QVariant(False)).toBool() jsonText = unicode(settings.value('config/ssgList', QVariant('[]')).toString()) - self.ssgList = json.JsonReader().read(str(jsonText)) + self.ssgList = ovs.json.from_string(str(jsonText)) if len(self.ssgList) == 0: self.ssgList = [ r'in_port0000',