[rhmessaging-commits] rhmessaging commits: r4171 - mgmt/newdata/mint/python/mint.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Thu Jul 29 16:16:21 EDT 2010


Author: justi9
Date: 2010-07-29 16:16:20 -0400 (Thu, 29 Jul 2010)
New Revision: 4171

Modified:
   mgmt/newdata/mint/python/mint/model.py
   mgmt/newdata/mint/python/mint/update.py
Log:
 * Some more improvements for cross-agent reference processing

 * Put agent id mapping into a common function

 * Keep all agent object cache maintainence in the main Update#process
   method


Modified: mgmt/newdata/mint/python/mint/model.py
===================================================================
--- mgmt/newdata/mint/python/mint/model.py	2010-07-29 19:30:14 UTC (rev 4170)
+++ mgmt/newdata/mint/python/mint/model.py	2010-07-29 20:16:20 UTC (rev 4171)
@@ -60,20 +60,5 @@
 
         self.model = None
 
-    def get_object_by_id(self, object_id):
-        try:
-            return self.objects_by_id[object_id]
-        except KeyError:
-            pass
-
-    def add_object(self, obj):
-        self.objects_by_id[obj._qmf_object_id] = obj
-
-    def delete_object(self, obj):
-        try:
-            del self.objects_by_id[obj._qmf_object_id]
-        except KeyError:
-            pass
-
     def __repr__(self):
         return "%s(%s)" % (self.__class__.__name__, self.id)

Modified: mgmt/newdata/mint/python/mint/update.py
===================================================================
--- mgmt/newdata/mint/python/mint/update.py	2010-07-29 19:30:14 UTC (rev 4170)
+++ mgmt/newdata/mint/python/mint/update.py	2010-07-29 20:16:20 UTC (rev 4171)
@@ -174,22 +174,24 @@
         super(ObjectUpdate, self).__init__(model)
 
         self.qmf_object = qmf_object
-        self.agent = None
 
     def do_process(self, cursor, stats):
+        agent_id = self.get_agent_id()
+
         try:
-            agent_id = self.qmf_object.getAgent().getAgentBank()
-            self.agent = self.model.agents_by_id[agent_id]
+            agent = self.model.agents_by_id[agent_id]
         except KeyError:
             raise UpdateDropped()
         
         cls = self.get_class()
         obj_id = self.get_object_id()
-        obj = self.agent.get_object_by_id(obj_id)
+        obj = None
 
-        if not obj:
+        try:
+            obj = agent.objects_by_id[obj_id]
+        except KeyError:
             try:
-                obj = cls.get_object_by_qmf_id(cursor, self.agent.id, obj_id)
+                obj = cls.get_object_by_qmf_id(cursor, agent_id, obj_id)
             except RosemaryNotFound:
                 pass
 
@@ -198,6 +200,9 @@
         if obj:
             if delete_time != 0:
                 self.delete_object(cursor, stats, obj)
+
+                agent.objects_by_id.pop(obj._qmf_object_id)
+
                 return
 
             properties = self.qmf_object.getProperties()
@@ -231,8 +236,11 @@
 
         assert obj
 
-        self.agent.add_object(obj)
+        agent.objects_by_id[obj_id] = obj
 
+    def get_agent_id(self):
+        return self.qmf_object.getObjectId().agentName
+
     def get_class(self):
         class_key = self.qmf_object.getClassKey()
         name = class_key.getPackageName()
@@ -260,7 +268,7 @@
         update_time = datetime.fromtimestamp(update_time / 1000000000)
 
         obj = cls.create_object(cursor)
-        obj._qmf_agent_id = self.agent.id
+        obj._qmf_agent_id = self.get_agent_id()
         obj._qmf_object_id = self.get_object_id()
         obj._qmf_session_id = str(self.qmf_object.getObjectId().getSequence())
         obj._qmf_create_time = create_time
@@ -348,8 +356,6 @@
     def delete_object(self, cursor, stats, obj):
         obj.delete(cursor)
 
-        self.agent.delete_object(obj)
-
         self.model.print_event(3, "Deleted %s", obj)
         stats.deleted += 1
 
@@ -394,19 +400,14 @@
                 raise MappingException("Agent %s is unknown" % value.agentName)
 
             try:
-                that_id = str(value.objectName)
-            except:
-                raise MappingException("Reference isn't an oid")
-
-            that = agent.get_object_by_id(that_id)
-
-            if not that:
+                that = agent.objects_by_id[value.objectName]
+            except KeyError:
                 try:
                     that = ref.that_cls.get_object_by_qmf_id \
-                        (cursor, self.agent.id, that_id)
+                        (cursor, agent.id, value.objectName)
                 except RosemaryNotFound:
                     msg = "Referenced object %s hasn't appeared yet"
-                    raise MappingException(msg % that)
+                    raise MappingException(msg % value.objectName)
 
             value = that._id
 
@@ -479,10 +480,11 @@
 
     def __repr__(self):
         name = self.__class__.__name__
+        agent_id = self.get_agent_id()
         cls = self.qmf_object.getClassKey().getClassName()
-        id = self.qmf_object.getObjectId().objectName
+        obj_id = self.get_object_id()
 
-        return "%s(%s,%s,%s)" % (name, self.agent.id, cls, id)
+        return "%s(%s,%s,%s)" % (name, agent_id, cls, obj_id)
 
 class AgentUpdate(Update):
     def __init__(self, model, qmf_agent):
@@ -507,8 +509,6 @@
 
         stats.updated += 1
 
-        # XXX Add periodic update of update_time
-
     def delete_agent_objects(self, cursor, stats, agent):
         for pkg in self.model._packages:
             for cls in pkg._classes:



More information about the rhmessaging-commits mailing list