[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