ovs.db.schema: Factor common checks for identifiers into new function.
authorBen Pfaff <blp@nicira.com>
Tue, 23 Aug 2011 16:55:14 +0000 (09:55 -0700)
committerBen Pfaff <blp@nicira.com>
Wed, 24 Aug 2011 18:57:43 +0000 (11:57 -0700)
Suggested-by: Reid Price <reid@nicira.com>
python/ovs/db/schema.py

index 2d053a0454d318261dcdda8dec6dceea904b7a0a..29fe986a254c56a0f47aa9057914f21d21903d8b 100644 (file)
@@ -19,6 +19,12 @@ 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."""
 
@@ -70,11 +76,7 @@ class DbSchema(object):
 
         tables = {}
         for tableName, tableJson in tablesJson.iteritems():
-            if tableName.startswith('_'):
-                raise error.Error('names beginning with "_" are reserved',
-                                  json)
-            elif not ovs.db.parser.is_identifier(tableName):
-                raise error.Error("name must be a valid id", json)
+            _check_id(tableName, json)
             tables[tableName] = TableSchema.from_json(tableJson, tableName)
 
         return DbSchema(name, version, tables)
@@ -182,11 +184,7 @@ class TableSchema(object):
 
         columns = {}
         for column_name, column_json in columns_json.iteritems():
-            if column_name.startswith('_'):
-                raise error.Error('names beginning with "_" are reserved',
-                                  json)
-            elif not ovs.db.parser.is_identifier(column_name):
-                raise error.Error("name must be a valid id", json)
+            _check_id(column_name, json)
             columns[column_name] = ColumnSchema.from_json(column_json,
                                                           column_name)