2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 14:25:26 +00:00

python/ovs/db/idl: make SchemaHelper accept schema in json form

This is needed when using schema that was retrieved from ovsdb by get_schema
method.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Ben Pfaff <blp@nicira.com>
This commit is contained in:
Isaku Yamahata
2012-09-13 11:27:30 +09:00
committed by Ben Pfaff
parent 7698e31d6a
commit e15ad8e6e3

View File

@@ -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
"""
self.schema_location = location
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_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 = {}