Author: tmckay
Date: 2013-03-18 18:06:20 +0000 (Mon, 18 Mar 2013)
New Revision: 5744
Modified:
trunk/cumin/model/upgrades/1.3a_to_1.4
trunk/rosemary/python/rosemary/model.py
trunk/rosemary/python/rosemary/sqlmodel.py
Log:
Eliminate creation of schema for things with storage = none
Modify the upgrade script for 1.4
Modified: trunk/cumin/model/upgrades/1.3a_to_1.4
===================================================================
--- trunk/cumin/model/upgrades/1.3a_to_1.4 2013-03-18 16:06:30 UTC (rev 5743)
+++ trunk/cumin/model/upgrades/1.3a_to_1.4 2013-03-18 18:06:20 UTC (rev 5744)
@@ -15,70 +15,14 @@
# select 'drop sequence "' || schemaname || '"."' ||
tablename || '_id_seq"'
# from pg_tables
# where schemaname = 'org.apache.qpid.cluster';
-
-run 'drop sequence
\"com.redhat.cumin.messaging\".\"BrokerGroup_id_seq\"'
-run 'drop sequence
\"com.redhat.cumin.messaging\".\"BrokerGroupMapping_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"ManagementSetupState_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"System_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Agent_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Exchange_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Binding_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Subscription_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Link_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Bridge_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Vhost_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Connection_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Session_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Queue_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.broker\".\"Broker_id_seq\"'
-run 'drop sequence
\"org.apache.qpid.cluster\".\"Cluster_id_seq\"'
-run 'drop sequence \"org.apache.qpid.acl\".\"Acl_id_seq\"'
-run 'drop sequence
\"com.redhat.rhm.store\".\"Store_id_seq\"'
-run 'drop sequence
\"com.redhat.rhm.store\".\"Journal_id_seq\"'
-# select 'drop table if exists "' || schemaname || '"."'
|| tablename || '" cascade'
-# from pg_tables
-# where schemaname = 'org.apache.qpid.cluster';
+run 'drop schema \"com.redhat.cumin.messaging\" cascade'
+run 'drop schema \"com.redhat.rhm.store\" cascade'
+run 'drop schema \"com.redhat.cumin.grid\" cascade'
+run 'drop schema \"org.apache.qpid.broker\" cascade'
+run 'drop schema \"org.apache.qpid.cluster\" cascade'
+run 'drop schema \"org.apache.qpid.acl\" cascade'
-run 'drop table if exists
\"com.redhat.cumin.messaging\".\"BrokerGroup_samples\" cascade'
-run 'drop table if exists
\"com.redhat.cumin.messaging\".\"BrokerGroupMapping_samples\"
cascade'
-run 'drop table if exists
\"com.redhat.cumin.messaging\".\"BrokerGroup\" cascade'
-run 'drop table if exists
\"com.redhat.cumin.messaging\".\"BrokerGroupMapping\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"System_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Broker_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Agent_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Vhost_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Queue_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Exchange_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Binding_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Subscription_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Connection_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Link_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Bridge_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Session_samples\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"ManagementSetupState\" cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"ManagementSetupState_samples\"
cascade'
-run 'drop table if exists \"org.apache.qpid.broker\".\"System\"
cascade'
-run 'drop table if exists \"org.apache.qpid.broker\".\"Agent\"
cascade'
-run 'drop table if exists \"org.apache.qpid.broker\".\"Exchange\"
cascade'
-run 'drop table if exists \"org.apache.qpid.broker\".\"Binding\"
cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Subscription\" cascade'
-run 'drop table if exists \"org.apache.qpid.broker\".\"Link\"
cascade'
-run 'drop table if exists \"org.apache.qpid.broker\".\"Bridge\"
cascade'
-run 'drop table if exists \"org.apache.qpid.broker\".\"Vhost\"
cascade'
-run 'drop table if exists
\"org.apache.qpid.broker\".\"Connection\" cascade'
-run 'drop table if exists \"org.apache.qpid.broker\".\"Session\"
cascade'
-run 'drop table if exists \"org.apache.qpid.broker\".\"Queue\"
cascade'
-run 'drop table if exists \"org.apache.qpid.broker\".\"Broker\"
cascade'
-run 'drop table if exists
\"org.apache.qpid.cluster\".\"Cluster_samples\" cascade'
-run 'drop table if exists \"org.apache.qpid.cluster\".\"Cluster\"
cascade'
-run 'drop table if exists \"org.apache.qpid.acl\".\"Acl_samples\"
cascade'
-run 'drop table if exists \"org.apache.qpid.acl\".\"Acl\"
cascade'
-run 'drop table if exists
\"com.redhat.rhm.store\".\"Store_samples\" cascade'
-run 'drop table if exists
\"com.redhat.rhm.store\".\"Journal_samples\" cascade'
-run 'drop table if exists \"com.redhat.rhm.store\".\"Store\"
cascade'
-run 'drop table if exists \"com.redhat.rhm.store\".\"Journal\"
cascade'
-
# select 'alter table "' || schemaname || '"."' ||
tablename || '" drop column "_qmf_create_time" cascade' from
pg_tables where
# schemaname like 'com.redhat%' order by "schemaname";
@@ -86,10 +30,6 @@
run 'alter table \"com.redhat.cumin\".\"UserRoleMapping\" drop
column \"_qmf_create_time\" cascade'
run 'alter table \"com.redhat.cumin\".\"Role\" drop column
\"_qmf_create_time\" cascade'
run 'alter table \"com.redhat.cumin\".\"User\" drop column
\"_qmf_create_time\" cascade'
-run 'alter table \"com.redhat.cumin.grid\".\"Node\" drop column
\"_qmf_create_time\" cascade'
-run 'alter table \"com.redhat.cumin.grid\".\"Limit\" drop column
\"_qmf_create_time\" cascade'
-run 'alter table \"com.redhat.cumin.grid\".\"Quota\" drop column
\"_qmf_create_time\" cascade'
-run 'alter table \"com.redhat.cumin.grid\".\"JobSummary\" drop
column \"_qmf_create_time\" cascade'
run 'alter table \"com.redhat.grid\".\"Master\" drop column
\"_qmf_create_time\" cascade'
run 'alter table \"com.redhat.grid\".\"Collector\" drop column
\"_qmf_create_time\" cascade'
run 'alter table \"com.redhat.grid\".\"Negotiator\" drop column
\"_qmf_create_time\" cascade'
@@ -105,10 +45,6 @@
run 'alter table \"com.redhat.cumin\".\"UserRoleMapping\" drop
column \"_qmf_delete_time\" cascade'
run 'alter table \"com.redhat.cumin\".\"Role\" drop column
\"_qmf_delete_time\" cascade'
run 'alter table \"com.redhat.cumin\".\"User\" drop column
\"_qmf_delete_time\" cascade'
-run 'alter table \"com.redhat.cumin.grid\".\"Node\" drop column
\"_qmf_delete_time\" cascade'
-run 'alter table \"com.redhat.cumin.grid\".\"Limit\" drop column
\"_qmf_delete_time\" cascade'
-run 'alter table \"com.redhat.cumin.grid\".\"Quota\" drop column
\"_qmf_delete_time\" cascade'
-run 'alter table \"com.redhat.cumin.grid\".\"JobSummary\" drop
column \"_qmf_delete_time\" cascade'
run 'alter table \"com.redhat.grid\".\"Master\" drop column
\"_qmf_delete_time\" cascade'
run 'alter table \"com.redhat.grid\".\"Collector\" drop column
\"_qmf_delete_time\" cascade'
run 'alter table \"com.redhat.grid\".\"Negotiator\" drop column
\"_qmf_delete_time\" cascade'
@@ -121,4 +57,4 @@
run 'alter table \"com.redhat.sesame\".\"Sysimage\" drop column
\"_qmf_delete_time\" cascade'
run 'create index \"Sysimage_nodeName_idx\" on
\"com.redhat.sesame\".\"Sysimage\" \(\"nodeName\"\)'
-run 'alter table \"com.redhat.sesame\".\"Sysimage\" drop column
uuid cascade'
\ No newline at end of file
+run 'alter table \"com.redhat.sesame\".\"Sysimage\" drop column
uuid cascade'
Modified: trunk/rosemary/python/rosemary/model.py
===================================================================
--- trunk/rosemary/python/rosemary/model.py 2013-03-18 16:06:30 UTC (rev 5743)
+++ trunk/rosemary/python/rosemary/model.py 2013-03-18 18:06:20 UTC (rev 5744)
@@ -361,7 +361,7 @@
# meth.extend(child)
for child in elem.findall("index"):
- idx = RosemaryIndex(self, child.get("name"))
+ idx = RosemaryIndex(self, child.get("name"), self._storage)
idx.extend(child)
def check_persistent(self):
@@ -411,9 +411,13 @@
def add_sql_entities(self):
name = "%s_id_seq" % self._name
- self.sql_sequence = SqlSequence(self._package.sql_schema, name)
+ self.sql_sequence = SqlSequence(self._package.sql_schema,
+ name,
+ self._storage)
- self.sql_table = SqlTable(self._package.sql_schema, self._name)
+ self.sql_table = SqlTable(self._package.sql_schema,
+ self._name,
+ self._storage)
id_col = SqlColumn(self.sql_table, "_id", sql_int8)
self.sql_table.key_column = id_col
@@ -446,14 +450,16 @@
def add_samples_sql(self):
name = "%s_samples" % self._name
- table = SqlTable(self._package.sql_schema, name)
+ table = SqlTable(self._package.sql_schema,
+ name,
+ self._storage)
self.sql_samples_table = table
def add_sql_sample_indices(self):
# Add indices based on the unique column groups
# for the sample table
for k,v in self._sample_index_col_groups.iteritems():
- SqlIndex(self._package.sql_schema, k, v)
+ SqlIndex(self._package.sql_schema, k, v, self._storage)
def add_sql_sample_operations(self):
self.sql_samples_insert = SqlInsertObjectSamples(
@@ -1107,9 +1113,10 @@
pass
class RosemaryIndex(object):
- def __init__(self, cls, name):
+ def __init__(self, cls, name, storage):
self.cls = cls
self.name = name
+ self._storage = storage
self.cls._indexes.append(self)
self.cls._indexes_by_name[self.name] = self
@@ -1132,7 +1139,7 @@
name = "%s_%s_idx" % (self.cls._name, self.name)
columns = [x.sql_column for x in self.attributes]
- self.sql_index = SqlIndex(schema, name, columns)
+ self.sql_index = SqlIndex(schema, name, columns, self._storage)
def __repr__(self):
args = (self.__class__.__name__, self.name)
Modified: trunk/rosemary/python/rosemary/sqlmodel.py
===================================================================
--- trunk/rosemary/python/rosemary/sqlmodel.py 2013-03-18 16:06:30 UTC (rev 5743)
+++ trunk/rosemary/python/rosemary/sqlmodel.py 2013-03-18 18:06:20 UTC (rev 5744)
@@ -49,17 +49,39 @@
self._views = list()
self._views_by_name = dict()
+ def add_table(self, table):
+ if table._storage == "database":
+ self._tables.append(table)
+ self._tables_by_name[table._name] = table
+
+ def add_sequence(self, sequence):
+ if sequence._storage == "database":
+ self._sequences.append(sequence)
+ self._sequences_by_name[sequence.name] = sequence
+
+ def add_index(self, index):
+ if index._storage == "database":
+ self._indexes.append(index)
+ self._indexes_by_name[index.name] = index
+
+# def add_view(self, view):
+
def write_create_ddl(self, out):
+ if not (self._tables or self._sequences or self._indexes or self._views):
+ return
+
out.write("create schema %s\n" % self.identifier)
-
for seq in self._sequences:
- seq.write_create_ddl(out)
+ if seq._storage == "database":
+ seq.write_create_ddl(out)
for table in self._tables:
- table.write_create_ddl(out)
+ if table._storage == "database":
+ table.write_create_ddl(out)
for index in self._indexes:
- index.write_create_ddl(out)
+ if index._storage == "database":
+ index.write_create_ddl(out)
for view in self._views:
view.write_create_ddl(out)
@@ -67,36 +89,37 @@
out.write(" ;\n")
def write_drop_ddl(self, out):
- out.write("drop schema %s cascade;\n" % self.identifier)
+ if self._tables or self._sequences or self._indexes or self._views:
+ out.write("drop schema %s cascade;\n" % self.identifier)
def __repr__(self):
args = (self.__class__.__name__, self._name)
return "%s(%s)" % args
class SqlSequence(object):
- def __init__(self, schema, name):
+ def __init__(self, schema, name, storage):
assert isinstance(schema, SqlSchema)
self.schema = schema
self.name = name
+ self._storage = storage
self.identifier = "%s.\"%s\"" % (self.schema.identifier,
self.name)
- self.schema._sequences.append(self)
- self.schema._sequences_by_name[self.name] = self
+ self.schema.add_sequence(self)
def write_create_ddl(self, out):
out.write(" create sequence \"%s\"\n" % self.name)
class SqlTable(object):
- def __init__(self, schema, name):
+ def __init__(self, schema, name, storage):
assert isinstance(schema, SqlSchema)
self._schema = schema
self._name = name
+ self._storage = storage
- self._schema._tables.append(self)
- self._schema._tables_by_name[self._name] = self
+ self._schema.add_table(self)
if hasattr(self._schema, self._name):
raise Exception("Collision")
@@ -226,15 +249,15 @@
return " ".join(tokens)
class SqlIndex(object):
- def __init__(self, schema, name, columns):
+ def __init__(self, schema, name, columns, storage):
assert len(set([x.table for x in columns])) == 1
self.schema = schema
self.name = name
self.columns = columns
+ self._storage = storage
- self.schema._indexes.append(self)
- self.schema._indexes_by_name[self.name] = self
+ self.schema.add_index(self)
def write_create_ddl(self, out):
cols = ", ".join(["\"%s\"" % x.name for x in
self.columns])