From: <rm...@hy...> - 2007-10-10 16:58:16
|
Author: rmorgan Date: 2007-10-10 09:58:10 -0700 (Wed, 10 Oct 2007) New Revision: 6175 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=6175 Added: trunk/src/org/hyperic/hq/appdef/server/session/ResourceRefreshZevent.java Modified: trunk/src/org/hyperic/hq/bizapp/server/session/LatherDispatcher.java trunk/src/org/hyperic/hq/measurement/server/session/MeasurementEnabler.java trunk/src/org/hyperic/hq/measurement/server/session/MeasurementStartupListener.java Log: Add ResourceRefreshZevent which indicates that the agent that manages this resource has been re-initialized. Add this event to the MeasurementEnabler to handle metric reschedules. Added: trunk/src/org/hyperic/hq/appdef/server/session/ResourceRefreshZevent.java =================================================================== --- trunk/src/org/hyperic/hq/appdef/server/session/ResourceRefreshZevent.java (rev 0) +++ trunk/src/org/hyperic/hq/appdef/server/session/ResourceRefreshZevent.java 2007-10-10 16:58:10 UTC (rev 6175) @@ -0,0 +1,21 @@ +package org.hyperic.hq.appdef.server.session; + +import org.hyperic.hq.authz.shared.AuthzSubjectValue; +import org.hyperic.hq.appdef.shared.AppdefEntityID; +import org.hyperic.hq.zevents.ZeventManager; + +/** + * A ResourceRefresh event indicates that the agent that monitors this resource + * has been re-initialized. + */ +public class ResourceRefreshZevent extends ResourceZevent { + + static { + ZeventManager.getInstance(). + registerEventClass(ResourceRefreshZevent.class); + } + + public ResourceRefreshZevent(AuthzSubjectValue subject, AppdefEntityID id) { + super(subject, id); + } +} Modified: trunk/src/org/hyperic/hq/bizapp/server/session/LatherDispatcher.java =================================================================== --- trunk/src/org/hyperic/hq/bizapp/server/session/LatherDispatcher.java 2007-10-10 16:21:41 UTC (rev 6174) +++ trunk/src/org/hyperic/hq/bizapp/server/session/LatherDispatcher.java 2007-10-10 16:58:10 UTC (rev 6175) @@ -48,9 +48,9 @@ import org.hyperic.hq.agent.AgentRemoteException; import org.hyperic.hq.agent.client.AgentCommandsClient; import org.hyperic.hq.appdef.server.session.Platform; -import org.hyperic.hq.appdef.server.session.ResourceUpdatedZevent; import org.hyperic.hq.appdef.server.session.Server; import org.hyperic.hq.appdef.server.session.Service; +import org.hyperic.hq.appdef.server.session.ResourceRefreshZevent; import org.hyperic.hq.appdef.shared.AgentCreateException; import org.hyperic.hq.appdef.shared.AgentNotFoundException; import org.hyperic.hq.appdef.shared.AgentUnauthorizedException; @@ -370,13 +370,13 @@ if (ids != null) { try { List zevents = new ArrayList(); - ResourceUpdatedZevent zevent; + ResourceRefreshZevent zevent; for (Iterator it = ids.iterator(); it.hasNext();) { Integer id = (Integer) it.next(); Platform platform = getPlatformManager() .findPlatformById(id); - zevent = new ResourceUpdatedZevent(getOverlord(), + zevent = new ResourceRefreshZevent(getOverlord(), platform.getEntityId()); zevents.add(zevent); @@ -384,7 +384,7 @@ for (Iterator i = servers.iterator(); i.hasNext(); ) { Server server = (Server)i.next(); - zevent = new ResourceUpdatedZevent(getOverlord(), + zevent = new ResourceRefreshZevent(getOverlord(), server.getEntityId()); zevents.add(zevent); @@ -393,7 +393,7 @@ serviceItr.hasNext(); ) { Service service = (Service)serviceItr.next(); - zevent = new ResourceUpdatedZevent(getOverlord(), + zevent = new ResourceRefreshZevent(getOverlord(), service.getEntityId()); zevents.add(zevent); } Modified: trunk/src/org/hyperic/hq/measurement/server/session/MeasurementEnabler.java =================================================================== --- trunk/src/org/hyperic/hq/measurement/server/session/MeasurementEnabler.java 2007-10-10 16:21:41 UTC (rev 6174) +++ trunk/src/org/hyperic/hq/measurement/server/session/MeasurementEnabler.java 2007-10-10 16:58:10 UTC (rev 6175) @@ -33,6 +33,8 @@ import org.hyperic.hq.appdef.server.session.ResourceUpdatedZevent; import org.hyperic.hq.appdef.server.session.ResourceZevent; import org.hyperic.hq.appdef.server.session.ConfigManagerEJBImpl; +import org.hyperic.hq.appdef.server.session.ResourceRefreshZevent; +import org.hyperic.hq.appdef.server.session.ResourceCreatedZevent; import org.hyperic.hq.appdef.shared.AppdefEntityID; import org.hyperic.hq.appdef.shared.ConfigManagerLocal; import org.hyperic.hq.authz.shared.AuthzSubjectValue; @@ -48,7 +50,7 @@ private static Log _log = LogFactory.getLog(MeasurementEnabler.class); public void processEvents(List events) { - DerivedMeasurementManagerLocal dm = + DerivedMeasurementManagerLocal dm = DerivedMeasurementManagerEJBImpl.getOne(); ConfigManagerLocal cm = ConfigManagerEJBImpl.getOne(); TrackerManagerLocal tm = TrackerManagerEJBImpl.getOne(); @@ -57,17 +59,28 @@ ResourceZevent z = (ResourceZevent)i.next(); AuthzSubjectValue subject = z.getAuthzSubjectValue(); AppdefEntityID id = z.getAppdefEntityID(); - boolean isUpdate; + boolean isCreate, isUpdate, isRefresh; + isCreate = z instanceof ResourceCreatedZevent; isUpdate = z instanceof ResourceUpdatedZevent; + isRefresh = z instanceof ResourceRefreshZevent; try { + // Handle reschedules for when agents are updated. + if (isRefresh) { + _log.info("Refreshing metric schedule for [" + id + "]"); + dm.reschedule(id); + continue; + } + + // For either create or update events, schedule the default + // metrics if (dm.getEnabledMetricsCount(subject, id) == 0) { _log.info("Enabling default metrics for [" + id + "]"); dm.enableDefaultMetrics(subject, id); } - if (!isUpdate) { + if (isCreate) { // On initial creation of the service check if log or config // tracking is enabled. If so, enable it. We don't auto // enable log or config tracking for update events since Modified: trunk/src/org/hyperic/hq/measurement/server/session/MeasurementStartupListener.java =================================================================== --- trunk/src/org/hyperic/hq/measurement/server/session/MeasurementStartupListener.java 2007-10-10 16:21:41 UTC (rev 6174) +++ trunk/src/org/hyperic/hq/measurement/server/session/MeasurementStartupListener.java 2007-10-10 16:58:10 UTC (rev 6175) @@ -30,6 +30,7 @@ import org.hyperic.hq.appdef.server.session.ResourceCreatedZevent; import org.hyperic.hq.appdef.server.session.ResourceUpdatedZevent; +import org.hyperic.hq.appdef.server.session.ResourceRefreshZevent; import org.hyperic.hq.application.HQApp; import org.hyperic.hq.application.StartupListener; import org.hyperic.hq.measurement.galerts.MetricAuxLogProvider; @@ -56,6 +57,7 @@ Set listenEvents = new HashSet(); listenEvents.add(ResourceCreatedZevent.class); listenEvents.add(ResourceUpdatedZevent.class); + listenEvents.add(ResourceRefreshZevent.class); ZeventManager.getInstance() .addBufferedListener(listenEvents, new MeasurementEnabler()); |