Skip to content

Commit

Permalink
python/ovs/db/idl: make SchemaHelper accept schema in json form
Browse files Browse the repository at this point in the history
This is needed when using schema that was retrieved from ovsdb by get_schema
method.

Signed-off-by: Isaku Yamahata <[email protected]>
Signed-off-by: Ben Pfaff <[email protected]>
  • Loading branch information
Isaku Yamahata authored and blp committed Sep 13, 2012
1 parent 7698e31 commit e15ad8e
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions python/ovs/db/idl.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -1242,8 +1251,8 @@ def get_idl_schema(self):
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 = {}
Expand Down

0 comments on commit e15ad8e

Please sign in to comment.