From: <sc...@hy...> - 2010-02-06 20:36:34
|
Author: scottmf Date: 2010-02-06 12:36:24 -0800 (Sat, 06 Feb 2010) New Revision: 14262 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14262 Modified: trunk/src/org/hyperic/hq/measurement/server/session/MeasurementProcessorEJBImpl.java Log: [HQ-1996] add scheduleHierarchyAfterCommit() Modified: trunk/src/org/hyperic/hq/measurement/server/session/MeasurementProcessorEJBImpl.java =================================================================== --- trunk/src/org/hyperic/hq/measurement/server/session/MeasurementProcessorEJBImpl.java 2010-02-06 20:09:46 UTC (rev 14261) +++ trunk/src/org/hyperic/hq/measurement/server/session/MeasurementProcessorEJBImpl.java 2010-02-06 20:36:24 UTC (rev 14262) @@ -26,6 +26,7 @@ package org.hyperic.hq.measurement.server.session; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -46,7 +47,11 @@ import org.hyperic.hq.appdef.shared.AppdefEntityID; import org.hyperic.hq.authz.server.session.AuthzSubject; import org.hyperic.hq.authz.server.session.AuthzSubjectManagerEJBImpl; +import org.hyperic.hq.authz.server.session.Resource; +import org.hyperic.hq.authz.server.session.ResourceEdge; +import org.hyperic.hq.authz.server.session.ResourceManagerEJBImpl; import org.hyperic.hq.authz.shared.PermissionException; +import org.hyperic.hq.authz.shared.ResourceManagerLocal; import org.hyperic.hq.common.SystemException; import org.hyperic.hq.measurement.MeasurementUnscheduleException; import org.hyperic.hq.measurement.agent.client.AgentMonitor; @@ -57,6 +62,7 @@ import org.hyperic.hq.measurement.shared.MeasurementProcessorLocal; import org.hyperic.hq.measurement.shared.MeasurementProcessorUtil; import org.hyperic.hq.measurement.shared.SRNManagerLocal; +import org.hyperic.hq.zevents.ZeventManager; import org.hyperic.util.stats.ConcurrentStatsCollector; import org.hyperic.util.timer.StopWatch; @@ -85,6 +91,26 @@ AgentMonitor monitor = new AgentMonitor(); return monitor.ping(a); } + + /** + * Schedules enabled measurements for the entire ResourceEdge hierarchy + * based on the "containment" relationship. These metrics are scheduled + * after the transaction is committed. + * @ejb:interface-method + */ + public void scheduleHierarchyAfterCommit(Resource resource) { + ResourceManagerLocal rMan = ResourceManagerEJBImpl.getOne(); + Collection resources = + rMan.findResourceEdges(rMan.getContainmentRelation(), resource); + List aeids = new ArrayList(resources.size()+1); + aeids.add(new AppdefEntityID(resource)); + for (Iterator it=resources.iterator(); it.hasNext(); ) { + ResourceEdge e = (ResourceEdge) it.next(); + aeids.add(new AppdefEntityID(e.getTo())); + } + AgentScheduleSyncZevent event = new AgentScheduleSyncZevent(aeids); + ZeventManager.getInstance().enqueueEventAfterCommit(event); + } /** * @param aeids {@link List} of {@link AppdefEntityID} |