X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=python%2Fovs%2Fdb%2Fidl.py;h=5330cea624e9474ed69a8fcdccd2070b4640882a;hb=e15ad8e6e3104a41fd3007a12a80a5b35ea71399;hp=5b06d9101f260642a90bedfc0ff77924ef0bca01;hpb=7698e31d6a3467948224f056183427f4b8f2d4d9;p=sliver-openvswitch.git diff --git a/python/ovs/db/idl.py b/python/ovs/db/idl.py index 5b06d9101..5330cea62 100644 --- a/python/ovs/db/idl.py +++ b/python/ovs/db/idl.py @@ -1198,13 +1198,22 @@ class SchemaHelper(object): The location on disk of the schema used may be found in the 'schema_location' variable.""" - def __init__(self, location=None): - """Creates a new Schema object.""" + def __init__(self, location=None, schema_json=None): + """Creates a new Schema object. - if location is None: - location = "%s/vswitch.ovsschema" % ovs.dirs.PKGDATADIR + 'location' file path to ovs schema. None means default location + 'schema_json' schema in json preresentation in memory + """ + + if location and schema_json: + raise ValueError("both location and schema_json can't be " + "specified. it's ambiguous.") + if schema_json is None: + if location is None: + location = "%s/vswitch.ovsschema" % ovs.dirs.PKGDATADIR + schema_json = ovs.json.from_file(location) - self.schema_location = location + self.schema_json = schema_json self._tables = {} self._all = False @@ -1242,8 +1251,8 @@ class SchemaHelper(object): object based on columns registered using the register_columns() function.""" - schema = ovs.db.schema.DbSchema.from_json( - ovs.json.from_file(self.schema_location)) + schema = ovs.db.schema.DbSchema.from_json(self.schema_json) + self.schema_json = None if not self._all: schema_tables = {}