[rhmessaging-commits] rhmessaging commits: r3434 - in mgmt/trunk/mint: sql and 1 other directory.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Mon Jun 8 14:11:25 EDT 2009


Author: nunofsantos
Date: 2009-06-08 14:11:25 -0400 (Mon, 08 Jun 2009)
New Revision: 3434

Modified:
   mgmt/trunk/mint/python/mint/schema.py
   mgmt/trunk/mint/sql/schema.sql
   mgmt/trunk/mint/sql/triggers.sql
Log:
updated schema

Modified: mgmt/trunk/mint/python/mint/schema.py
===================================================================
--- mgmt/trunk/mint/python/mint/schema.py	2009-06-08 17:51:40 UTC (rev 3433)
+++ mgmt/trunk/mint/python/mint/schema.py	2009-06-08 18:11:25 UTC (rev 3434)
@@ -288,6 +288,74 @@
     model.callMethod(self.qmfBrokerId, originalId, self.qmfClassKey, "Submit",
                      callback, args=actualArgs)
 
+  def GetAd(self, model, callback, Id, JobAd):
+    actualArgs = list()
+    if Id is not None:
+        actualArgs.append(Id)
+    if JobAd is not None:
+        actualArgs.append(JobAd)
+    originalId = ObjectId(None, self.qmfScopeId, self.qmfObjectId)
+    model.callMethod(self.qmfBrokerId, originalId, self.qmfClassKey, "GetAd",
+                     callback, args=actualArgs)
+
+  def SetAttribute(self, model, callback, Id, Name, Value):
+    actualArgs = list()
+    if Id is not None:
+        actualArgs.append(Id)
+    if Name is not None:
+        actualArgs.append(Name)
+    if Value is not None:
+        actualArgs.append(Value)
+    originalId = ObjectId(None, self.qmfScopeId, self.qmfObjectId)
+    model.callMethod(self.qmfBrokerId, originalId, self.qmfClassKey, "SetAttribute",
+                     callback, args=actualArgs)
+
+  def Hold(self, model, callback, Id, Reason):
+    actualArgs = list()
+    if Id is not None:
+        actualArgs.append(Id)
+    if Reason is not None:
+        actualArgs.append(Reason)
+    originalId = ObjectId(None, self.qmfScopeId, self.qmfObjectId)
+    model.callMethod(self.qmfBrokerId, originalId, self.qmfClassKey, "Hold",
+                     callback, args=actualArgs)
+
+  def Release(self, model, callback, Id, Reason):
+    actualArgs = list()
+    if Id is not None:
+        actualArgs.append(Id)
+    if Reason is not None:
+        actualArgs.append(Reason)
+    originalId = ObjectId(None, self.qmfScopeId, self.qmfObjectId)
+    model.callMethod(self.qmfBrokerId, originalId, self.qmfClassKey, "Release",
+                     callback, args=actualArgs)
+
+  def Remove(self, model, callback, Id, Reason):
+    actualArgs = list()
+    if Id is not None:
+        actualArgs.append(Id)
+    if Reason is not None:
+        actualArgs.append(Reason)
+    originalId = ObjectId(None, self.qmfScopeId, self.qmfObjectId)
+    model.callMethod(self.qmfBrokerId, originalId, self.qmfClassKey, "Remove",
+                     callback, args=actualArgs)
+
+  def Fetch(self, model, callback, Id, File, Start, End, Data):
+    actualArgs = list()
+    if Id is not None:
+        actualArgs.append(Id)
+    if File is not None:
+        actualArgs.append(File)
+    if Start is not None:
+        actualArgs.append(Start)
+    if End is not None:
+        actualArgs.append(End)
+    if Data is not None:
+        actualArgs.append(Data)
+    originalId = ObjectId(None, self.qmfScopeId, self.qmfObjectId)
+    model.callMethod(self.qmfBrokerId, originalId, self.qmfClassKey, "Fetch",
+                     callback, args=actualArgs)
+
 class SchedulerStats(SQLObject):
   class sqlmeta:
     lazyUpdate = True
@@ -629,6 +697,44 @@
 
 
 
+class Submission(SQLObject):
+  class sqlmeta:
+    lazyUpdate = True
+  qmfBrokerId = StringCol(length=1000, default=None)
+  qmfScopeId = BigIntCol(default=None)
+  qmfAgentId = StringCol(length=1000, default=None)
+  qmfObjectId = BigIntCol(default=None)
+  qmfIdsUnique = DatabaseIndex(qmfBrokerId, qmfScopeId, qmfObjectId, unique=True)
+  qmfClassKey = StringCol(length=1000, default=None)
+  qmfPersistent = BoolCol(default=None)
+  qmfUpdateTime = TimestampCol(default=None)
+  qmfCreateTime = TimestampCol(default=None)
+  qmfDeleteTime = TimestampCol(default=None)
+  statsCurr = ForeignKey('SubmissionStats', cascade='null', default=None)
+  statsCurrIndex = DatabaseIndex(statsCurr)
+  statsPrev = ForeignKey('SubmissionStats', cascade='null', default=None)
+  statsPrevIndex = DatabaseIndex(statsPrev)
+  classInfos = dict() # brokerId => classInfo
+  scheduler = ForeignKey('Scheduler', cascade='null', default=None)
+  submitter = ForeignKey('Submitter', cascade='null', default=None)
+  Name = StringCol(length=1000, default=None)
+
+
+class SubmissionStats(SQLObject):
+  class sqlmeta:
+    lazyUpdate = True
+  qmfUpdateTime = TimestampCol(default=None)
+  submission = ForeignKey('Submission', cascade='null', default=None)
+  classInfos = dict() # brokerId => classInfo
+  Idle = BigIntCol(default=None)
+  Running = BigIntCol(default=None)
+  Removed = BigIntCol(default=None)
+  Completed = BigIntCol(default=None)
+  Held = BigIntCol(default=None)
+
+
+
+
 class Acl(SQLObject):
   class sqlmeta:
     lazyUpdate = True
@@ -1540,6 +1646,16 @@
 
 Grid.sqlmeta.addJoin(SQLMultipleJoin('GridStats', joinMethodName='stats'))
 
+classToSchemaNameMap['Submission'] = 'Submission'
+schemaNameToClassMap['Submission'] = Submission
+
+Scheduler.sqlmeta.addJoin(SQLMultipleJoin('Submission', joinMethodName='submissions'))
+
+Submitter.sqlmeta.addJoin(SQLMultipleJoin('Submission', joinMethodName='submissions'))
+
+
+Submission.sqlmeta.addJoin(SQLMultipleJoin('SubmissionStats', joinMethodName='stats'))
+
 classToSchemaNameMap['Acl'] = 'Acl'
 schemaNameToClassMap['Acl'] = Acl
 
@@ -1669,6 +1785,6 @@
 Sysimage.sqlmeta.addJoin(SQLMultipleJoin('SysimageStats', joinMethodName='stats'))
 
 
-entityClasses = ['Slot', 'Job', 'Scheduler', 'Submitter', 'Negotiator', 'Collector', 'Master', 'Grid', 'Acl', 'Cluster', 'Store', 'Journal', 'System', 'Broker', 'Agent', 'Vhost', 'Queue', 'Exchange', 'Binding', 'ClientConnection', 'Link', 'Bridge', 'Session', 'Sysimage']
+entityClasses = ['Slot', 'Job', 'Scheduler', 'Submitter', 'Negotiator', 'Collector', 'Master', 'Grid', 'Submission', 'Acl', 'Cluster', 'Store', 'Journal', 'System', 'Broker', 'Agent', 'Vhost', 'Queue', 'Exchange', 'Binding', 'ClientConnection', 'Link', 'Bridge', 'Session', 'Sysimage']
 
-statsClasses = ['SlotStats', 'JobStats', 'SchedulerStats', 'SubmitterStats', 'NegotiatorStats', 'CollectorStats', 'MasterStats', 'GridStats', 'AclStats', 'ClusterStats', 'StoreStats', 'JournalStats', 'SystemStats', 'BrokerStats', 'AgentStats', 'VhostStats', 'QueueStats', 'ExchangeStats', 'BindingStats', 'ClientConnectionStats', 'LinkStats', 'BridgeStats', 'SessionStats', 'SysimageStats']
+statsClasses = ['SlotStats', 'JobStats', 'SchedulerStats', 'SubmitterStats', 'NegotiatorStats', 'CollectorStats', 'MasterStats', 'GridStats', 'SubmissionStats', 'AclStats', 'ClusterStats', 'StoreStats', 'JournalStats', 'SystemStats', 'BrokerStats', 'AgentStats', 'VhostStats', 'QueueStats', 'ExchangeStats', 'BindingStats', 'ClientConnectionStats', 'LinkStats', 'BridgeStats', 'SessionStats', 'SysimageStats']

Modified: mgmt/trunk/mint/sql/schema.sql
===================================================================
--- mgmt/trunk/mint/sql/schema.sql	2009-06-08 17:51:40 UTC (rev 3433)
+++ mgmt/trunk/mint/sql/schema.sql	2009-06-08 18:11:25 UTC (rev 3434)
@@ -930,6 +930,38 @@
     tpl_outstanding_ai_os_high BIGINT
 );
 
+CREATE TABLE submission (
+    id SERIAL PRIMARY KEY,
+    qmf_broker_id VARCHAR(1000),
+    qmf_scope_id BIGINT,
+    qmf_agent_id VARCHAR(1000),
+    qmf_object_id BIGINT,
+    qmf_class_key VARCHAR(1000),
+    qmf_persistent BOOL,
+    qmf_update_time TIMESTAMP,
+    qmf_create_time TIMESTAMP,
+    qmf_delete_time TIMESTAMP,
+    stats_curr_id INT,
+    stats_prev_id INT,
+    scheduler_id INT,
+    submitter_id INT,
+    name VARCHAR(1000)
+);
+CREATE UNIQUE INDEX submission_qmfIdsUnique ON submission (qmf_broker_id, qmf_scope_id, qmf_object_id);
+CREATE INDEX submission_statsPrevIndex ON submission (stats_prev_id);
+CREATE INDEX submission_statsCurrIndex ON submission (stats_curr_id);
+
+CREATE TABLE submission_stats (
+    id SERIAL PRIMARY KEY,
+    qmf_update_time TIMESTAMP,
+    submission_id INT,
+    idle BIGINT,
+    running BIGINT,
+    removed BIGINT,
+    completed BIGINT,
+    held BIGINT
+);
+
 CREATE TABLE submitter (
     id SERIAL PRIMARY KEY,
     qmf_broker_id VARCHAR(1000),
@@ -1227,6 +1259,16 @@
 
 ALTER TABLE store_stats ADD CONSTRAINT store_id_exists FOREIGN KEY (store_id) REFERENCES store (id) ON DELETE SET NULL;
 
+ALTER TABLE submission ADD CONSTRAINT stats_curr_id_exists FOREIGN KEY (stats_curr_id) REFERENCES submission_stats (id) ON DELETE SET NULL;
+
+ALTER TABLE submission ADD CONSTRAINT stats_prev_id_exists FOREIGN KEY (stats_prev_id) REFERENCES submission_stats (id) ON DELETE SET NULL;
+
+ALTER TABLE submission ADD CONSTRAINT scheduler_id_exists FOREIGN KEY (scheduler_id) REFERENCES scheduler (id) ON DELETE SET NULL;
+
+ALTER TABLE submission ADD CONSTRAINT submitter_id_exists FOREIGN KEY (submitter_id) REFERENCES submitter (id) ON DELETE SET NULL;
+
+ALTER TABLE submission_stats ADD CONSTRAINT submission_id_exists FOREIGN KEY (submission_id) REFERENCES submission (id) ON DELETE SET NULL;
+
 ALTER TABLE submitter ADD CONSTRAINT stats_curr_id_exists FOREIGN KEY (stats_curr_id) REFERENCES submitter_stats (id) ON DELETE SET NULL;
 
 ALTER TABLE submitter ADD CONSTRAINT stats_prev_id_exists FOREIGN KEY (stats_prev_id) REFERENCES submitter_stats (id) ON DELETE SET NULL;

Modified: mgmt/trunk/mint/sql/triggers.sql
===================================================================
--- mgmt/trunk/mint/sql/triggers.sql	2009-06-08 17:51:40 UTC (rev 3433)
+++ mgmt/trunk/mint/sql/triggers.sql	2009-06-08 18:11:25 UTC (rev 3434)
@@ -121,6 +121,19 @@
 CREATE INDEX grid_stats_update_time ON grid_stats (qmf_update_time);
 
 
+CREATE OR REPLACE FUNCTION update_submission_stats() RETURNS trigger AS '
+BEGIN
+  UPDATE submission SET stats_prev_id = stats_curr_id, stats_curr_id = new.id WHERE id = new.submission_id;
+  RETURN new;
+END
+' LANGUAGE plpgsql;
+
+CREATE TRIGGER update_submission_stats AFTER INSERT ON submission_stats 
+  FOR EACH ROW EXECUTE PROCEDURE update_submission_stats(); 
+
+CREATE INDEX submission_stats_update_time ON submission_stats (qmf_update_time);
+
+
 CREATE OR REPLACE FUNCTION update_acl_stats() RETURNS trigger AS '
 BEGIN
   UPDATE acl SET stats_prev_id = stats_curr_id, stats_curr_id = new.id WHERE id = new.acl_id;




More information about the rhmessaging-commits mailing list