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

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Tue Nov 18 17:31:01 EST 2008


Author: nunofsantos
Date: 2008-11-18 17:30:59 -0500 (Tue, 18 Nov 2008)
New Revision: 2838

Modified:
   mgmt/trunk/mint/python/mint/schema.py
   mgmt/trunk/mint/python/mint/update.py
   mgmt/trunk/mint/sql/schema.sql
Log:
discard updates for classes that are missing from the schema

Modified: mgmt/trunk/mint/python/mint/schema.py
===================================================================
--- mgmt/trunk/mint/python/mint/schema.py	2008-11-18 22:04:43 UTC (rev 2837)
+++ mgmt/trunk/mint/python/mint/schema.py	2008-11-18 22:30:59 UTC (rev 2838)
@@ -1257,7 +1257,7 @@
 
 
 
-class SysImage(SQLObject):
+class Sysimage(SQLObject):
   class sqlmeta:
     lazyUpdate = True
 
@@ -1269,8 +1269,8 @@
   creationTime = TimestampCol(default=None)
   deletionTime = TimestampCol(default=None)
   managedBroker = StringCol(length=1000, default=None)
-  statsCurr = ForeignKey('SysImageStats', cascade='null', default=None)
-  statsPrev = ForeignKey('SysImageStats', cascade='null', default=None)
+  statsCurr = ForeignKey('SysimageStats', cascade='null', default=None)
+  statsPrev = ForeignKey('SysimageStats', cascade='null', default=None)
   classInfos = dict() # brokerId => classInfo
   uuid = BLOBCol(default=None)
   osName = StringCol(length=1000, default=None)
@@ -1282,12 +1282,12 @@
   swapTotal = IntCol(default=None)
 
 
-class SysImageStats(SQLObject):
+class SysimageStats(SQLObject):
   class sqlmeta:
     lazyUpdate = True
 
   recTime = TimestampCol(default=None)
-  sysImage = ForeignKey('SysImage', cascade='null', default=None)
+  sysimage = ForeignKey('Sysimage', cascade='null', default=None)
   classInfos = dict() # brokerId => classInfo
   memFree = IntCol(default=None)
   swapFree = IntCol(default=None)
@@ -1474,8 +1474,8 @@
 
 Session.sqlmeta.addJoin(SQLMultipleJoin('SessionStats', joinMethodName='stats'))
 
-classToSchemaNameMap['SysImage'] = 'SysImage'
-schemaNameToClassMap['SysImage'] = SysImage
+classToSchemaNameMap['Sysimage'] = 'Sysimage'
+schemaNameToClassMap['Sysimage'] = Sysimage
 
-SysImage.sqlmeta.addJoin(SQLMultipleJoin('SysImageStats', joinMethodName='stats'))
+Sysimage.sqlmeta.addJoin(SQLMultipleJoin('SysimageStats', joinMethodName='stats'))
 

Modified: mgmt/trunk/mint/python/mint/update.py
===================================================================
--- mgmt/trunk/mint/python/mint/update.py	2008-11-18 22:04:43 UTC (rev 2837)
+++ mgmt/trunk/mint/python/mint/update.py	2008-11-18 22:30:59 UTC (rev 2838)
@@ -81,43 +81,46 @@
       name = key.__repr__()
       if name in mint.schema.schemaReservedWordsMap:
         name = mint.schema.schemaReservedWordsMap.get(name)
-    
-      if key.type == 10:
-        # Navigate to referenced objects
-        if name.endswith("Ref"):
-          name = name[:-3]
-        className = name[0].upper() + name[1:]
-        otherClass = getattr(mint, className, None)
-        if otherClass:
-          foreignKey = name + "_id"
-          try:
-            results[foreignKey] = model.getObjectId(otherClass, value)
-          except KeyError:
-            log.info("Referenced object %s '%s' not found by key '%s'" % (className, value, foreignKey))
-          except mint.ObjectNotFound:
-            if not orphan:
-              log.info("Referenced object %s '%s' not found, deferring creation of orphan object" % (className, value))
-              # store object in orphan map, will be picked up later when parent info is received
-              if (className, value.first, value.second) not in model.orphanObjectMap:
-                model.orphanObjectMap[(className, value.first, value.second)] = set()
-              model.orphanObjectMap[(className, value.first, value.second)].add(self)
-              orphan = True
+      
+      try:  
+        if not hasattr(getattr(mint, cls), name):
+          # Discard attrs that we don't have in our schema
+          log.debug("Class '%s' has no field '%s'" % ("mint.schema." + cls, name))
+        elif key.type == 10:
+          # Navigate to referenced objects
+          if name.endswith("Ref"):
+            name = name[:-3]
+          className = name[0].upper() + name[1:]
+          otherClass = getattr(mint, className, None)
+          if otherClass:
+            foreignKey = name + "_id"
+            try:
+              results[foreignKey] = model.getObjectId(otherClass, value)
+            except KeyError:
+              log.info("Referenced object %s '%s' not found by key '%s'" % (className, value, foreignKey))
+            except mint.ObjectNotFound:
+              if not orphan:
+                log.info("Referenced object %s '%s' not found, deferring creation of orphan object" % (className, value))
+                # store object in orphan map, will be picked up later when parent info is received
+                if (className, value.first, value.second) not in model.orphanObjectMap:
+                  model.orphanObjectMap[(className, value.first, value.second)] = set()
+                model.orphanObjectMap[(className, value.first, value.second)].add(self)
+                orphan = True
+          else:
+            log.error("Class '%s' not found" % className)
+        elif key.type == 8:
+          # convert ABSTIME types
+          if value:
+            results[name] = time_unwarp(datetime.fromtimestamp(value/1000000000))
+          else:
+            results[name] = None
+        elif key.type == 14:
+          # convert UUIDs into their string representation, to be handled by sqlobject
+          results[name] = str(value)
         else:
-          log.error("Class '%s' not found" % className)
-      elif key.type == 8:
-        # convert ABSTIME types
-        if value:
-          results[name] = time_unwarp(datetime.fromtimestamp(value/1000000000))
-        else:
-          results[name] = None
-      elif key.type == 14:
-        # convert UUIDs into their string representation, to be handled by sqlobject
-        results[name] = str(value)
-      elif not hasattr(getattr(mint, cls), name):
-        # Remove attrs that we don't have in our schema
-        log.debug("Class '%s' has no field '%s'" % ("mint.schema." + cls, name))
-      else:
-        results[name] = value
+          results[name] = value
+      except Exception:
+        continue
     if orphan:
       return None
     else:
@@ -129,17 +132,22 @@
 
   def process(self, model):
     try:
-      properties = self.qmfObj.getProperties()
-      timestamps = self.qmfObj.getTimestamps()
-      id = self.qmfObj.getObjectId()
       pkg, cls, hash = self.qmfObj.getClassKey()
-
       origCls = cls
       if cls in mint.schema.schemaReservedWordsMap:
         cls = mint.schema.schemaReservedWordsMap.get(cls)
       cls = cls[0].upper()+cls[1:]  
       sqlCls = model.dbStyle.pythonClassToDBTable(cls)
 
+      if not hasattr(mint, cls):
+        # Discard classes that we don't have in our schema
+        log.debug("Class '%s' is not in the schema" % (cls))
+        return  
+
+      properties = self.qmfObj.getProperties()
+      timestamps = self.qmfObj.getTimestamps()
+      id = self.qmfObj.getObjectId()
+
       attrs = self.processAttributes(properties, cls, model)
       if attrs == None:
         # object is orphan, a parent dependency was not found; 
@@ -220,9 +228,6 @@
 
   def process(self, model):
     try:
-      statistics = self.qmfObj.getStatistics()
-      timestamps = self.qmfObj.getTimestamps()
-      id = self.qmfObj.getObjectId()
       pkg, cls, hash = self.qmfObj.getClassKey()
 
       origCls = cls
@@ -230,6 +235,15 @@
         cls = mint.schema.schemaReservedWordsMap.get(cls)
       cls = cls[0].upper()+cls[1:]  
       sqlCls = model.dbStyle.pythonClassToDBTable(cls)
+
+      if not hasattr(mint, cls):
+        # Discard classes that we don't have in our schema
+        log.debug("Class '%s' is not in the schema" % (cls))
+        return  
+
+      statistics = self.qmfObj.getStatistics()
+      timestamps = self.qmfObj.getTimestamps()
+      id = self.qmfObj.getObjectId()
  
       statsCls = self.getStatsClass(cls)
       sqlStatsCls = model.dbStyle.pythonClassToDBTable(statsCls)

Modified: mgmt/trunk/mint/sql/schema.sql
===================================================================
--- mgmt/trunk/mint/sql/schema.sql	2008-11-18 22:04:43 UTC (rev 2837)
+++ mgmt/trunk/mint/sql/schema.sql	2008-11-18 22:30:59 UTC (rev 2838)
@@ -838,7 +838,7 @@
     running_jobs INT
 );
 
-CREATE TABLE sys_image (
+CREATE TABLE sysimage (
     id SERIAL PRIMARY KEY,
     rec_time TIMESTAMP,
     source_scope_id BIGINT,
@@ -858,12 +858,12 @@
     mem_total INT,
     swap_total INT
 );
-CREATE UNIQUE INDEX sys_image_source_ids_unique ON sys_image (source_scope_id, source_object_id);
+CREATE UNIQUE INDEX sysimage_source_ids_unique ON sysimage (source_scope_id, source_object_id);
 
-CREATE TABLE sys_image_stats (
+CREATE TABLE sysimage_stats (
     id SERIAL PRIMARY KEY,
     rec_time TIMESTAMP,
-    sys_image_id INT,
+    sysimage_id INT,
     mem_free INT,
     swap_free INT,
     load_average1_min FLOAT,
@@ -1096,11 +1096,11 @@
 
 ALTER TABLE submitter_stats ADD CONSTRAINT submitter_id_exists FOREIGN KEY (submitter_id) REFERENCES submitter (id) ON DELETE SET NULL;
 
-ALTER TABLE sys_image ADD CONSTRAINT stats_curr_id_exists FOREIGN KEY (stats_curr_id) REFERENCES sys_image_stats (id) ON DELETE SET NULL;
+ALTER TABLE sysimage ADD CONSTRAINT stats_curr_id_exists FOREIGN KEY (stats_curr_id) REFERENCES sysimage_stats (id) ON DELETE SET NULL;
 
-ALTER TABLE sys_image ADD CONSTRAINT stats_prev_id_exists FOREIGN KEY (stats_prev_id) REFERENCES sys_image_stats (id) ON DELETE SET NULL;
+ALTER TABLE sysimage ADD CONSTRAINT stats_prev_id_exists FOREIGN KEY (stats_prev_id) REFERENCES sysimage_stats (id) ON DELETE SET NULL;
 
-ALTER TABLE sys_image_stats ADD CONSTRAINT sys_image_id_exists FOREIGN KEY (sys_image_id) REFERENCES sys_image (id) ON DELETE SET NULL;
+ALTER TABLE sysimage_stats ADD CONSTRAINT sysimage_id_exists FOREIGN KEY (sysimage_id) REFERENCES sysimage (id) ON DELETE SET NULL;
 
 ALTER TABLE system ADD CONSTRAINT stats_curr_id_exists FOREIGN KEY (stats_curr_id) REFERENCES system_stats (id) ON DELETE SET NULL;
 




More information about the rhmessaging-commits mailing list