X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=python%2Fovs%2Fdb%2Fschema.py;h=bc86232f9c99ad0433a777c3d3015cfac3290d50;hb=ec9f40dce11c7e81bc41d42e3bbfaaf8287165ce;hp=675f4ece6a4f45dfede2ff0ba8e53d226ddd3bae;hpb=8cdf0349740c3e1a73af9aa6209bb22be952cd37;p=sliver-openvswitch.git diff --git a/python/ovs/db/schema.py b/python/ovs/db/schema.py index 675f4ece6..bc86232f9 100644 --- a/python/ovs/db/schema.py +++ b/python/ovs/db/schema.py @@ -1,4 +1,4 @@ -# Copyright (c) 2009, 2010, 2011 Nicira Networks +# Copyright (c) 2009, 2010, 2011 Nicira, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -19,12 +19,14 @@ from ovs.db import error import ovs.db.parser from ovs.db import types + def _check_id(name, json): if name.startswith('_'): raise error.Error('names beginning with "_" are reserved', json) elif not ovs.db.parser.is_identifier(name): raise error.Error("name must be a valid id", json) + class DbSchema(object): """Schema for an OVSDB database.""" @@ -118,6 +120,7 @@ class DbSchema(object): # error. column.persistent = True + class IdlSchema(DbSchema): def __init__(self, name, version, tables, idlPrefix, idlHeader): DbSchema.__init__(self, name, version, tables) @@ -138,6 +141,7 @@ class IdlSchema(DbSchema): return IdlSchema(schema.name, schema.version, schema.tables, idlPrefix, idlHeader) + def column_set_from_json(json, columns): if json is None: return tuple(columns) @@ -156,6 +160,7 @@ def column_set_from_json(json, columns): raise error.Error("array of distinct column names expected", json) return tuple([columns[column_name] for column_name in json]) + class TableSchema(object): def __init__(self, name, columns, mutable=True, max_rows=sys.maxint, is_root=True, indexes=[]): @@ -212,7 +217,7 @@ class TableSchema(object): differ from 'default_is_root'. Ordinarily 'default_is_root' should be false, because ordinarily a table would be not be part of the root set if its "isRoot" member is omitted. However, garbage collection was not - orginally included in OVSDB, so in older schemas that do not include + originally included in OVSDB, so in older schemas that do not include any "isRoot" members, every table is implicitly part of the root set. To serialize such a schema in a way that can be read by older OVSDB tools, specify 'default_is_root' as True. @@ -238,6 +243,7 @@ class TableSchema(object): return json + class ColumnSchema(object): def __init__(self, name, mutable, persistent, type_): self.name = name @@ -263,4 +269,3 @@ class ColumnSchema(object): if not self.persistent: json["ephemeral"] = True return json -