#
# TODO: Use existing PLC database methods? or keep this separate?
+### $Id$
+### $URL$
+
import report
from pg import DB, ProgrammingError
from gid import *
from record import *
+from geni.util.debug import *
GENI_TABLE_PREFIX = "geni$"
return False
def create(self):
+
querystr = "CREATE TABLE " + self.tablename + " ( \
key text, \
name text, \
gid text, \
type text, \
pointer integer);"
-
+ template = "CREATE INDEX %s_%s_idx ON %s (%s);"
+ indexes = [template % ( self.tablename, field, self.tablename, field) \
+ for field in ['name', 'type' ]]
# IF EXISTS doenst exist in postgres < 8.2
try:
self.cnx.query('DROP TABLE IF EXISTS ' + self.tablename)
pass
self.cnx.query(querystr)
+ for index in indexes:
+ self.cnx.query(index)
def remove(self, record):
query_str = "DELETE FROM " + self.tablename + " WHERE key = '" + record.get_key() + "'"
result_dict_list = []
for dict in dict_list:
if (type=="*") or (dict['type'] == type):
+ dict['hrn'] = dict['name']
result_dict_list.append(dict)
return result_dict_list
def find(self, type, value, searchfield):
result_dict_list = self.find_dict(type, value, searchfield)
result_rec_list = []
- for dict in result_dict_list:
- result_rec_list.append(GeniRecord(dict=dict))
+ for result in result_dict_list:
+ if result['type'] in ['authority']:
+ result_rec_list.append(AuthorityRecord(dict=result))
+ elif result['type'] in ['node']:
+ result_rec_list.append(NodeRecord(dict=result))
+ elif result['type'] in ['slice']:
+ result_rec_list.append(SliceRecord(dict=result))
+ elif result['type'] in ['user']:
+ result_rec_list.append(UserRecord(dict=result))
+ else:
+ result_rec_list.append(GeniRecord(dict=result))
return result_rec_list
def resolve_dict(self, type, hrn):
result_dict_list = self.list_dict()
result_rec_list = []
for dict in result_dict_list:
- result_rec_list.append(GeniRecord(dict=dict))
+ result_rec_list.append(GeniRecord(dict=dict).as_dict())
return result_rec_list
def set_geni_table_prefix(x):