X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=python%2Fovs%2Fdb%2Fschema.py;h=1b5a771f771538a75f3d78b75e7bd8a56b3349c6;hb=6dc2f8eeada4e4e1b1fc29d69cb7cbdf1cd94061;hp=7e18564e0367436d98b51b6590ba8dd7c8e3f5e4;hpb=7cba02e442012a7ae6cfdfe67f858a18057e5470;p=openvswitch diff --git a/python/ovs/db/schema.py b/python/ovs/db/schema.py index 7e18564e..1b5a771f 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.""" @@ -95,6 +97,9 @@ class DbSchema(object): json["version"] = self.version return json + def copy(self): + return DbSchema.from_json(self.to_json()) + def __follow_ref_table(self, column, base, base_name): if not base or base.type != types.UuidType or not base.ref_table_name: return @@ -115,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) @@ -135,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) @@ -153,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=[]): @@ -235,6 +243,7 @@ class TableSchema(object): return json + class ColumnSchema(object): def __init__(self, name, mutable, persistent, type_): self.name = name @@ -260,4 +269,3 @@ class ColumnSchema(object): if not self.persistent: json["ephemeral"] = True return json -