From: <rm...@hy...> - 2007-07-10 17:46:31
|
Author: rmorgan Date: 2007-07-10 10:46:17 -0700 (Tue, 10 Jul 2007) New Revision: 5115 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=5115 Modified: branches/HQ_3_0/src/org/hyperic/hq/autoinventory/server/session/AIStartupListener.java Log: Push AI runtime scan config when servers are updated. [HHQ-60] [HHQ-951] [merge from trunk] Modified: branches/HQ_3_0/src/org/hyperic/hq/autoinventory/server/session/AIStartupListener.java =================================================================== --- branches/HQ_3_0/src/org/hyperic/hq/autoinventory/server/session/AIStartupListener.java 2007-07-10 17:43:49 UTC (rev 5114) +++ branches/HQ_3_0/src/org/hyperic/hq/autoinventory/server/session/AIStartupListener.java 2007-07-10 17:46:17 UTC (rev 5115) @@ -33,7 +33,12 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hyperic.hq.appdef.server.session.ResourceCreatedZevent; +import org.hyperic.hq.appdef.server.session.ResourceUpdatedZevent; +import org.hyperic.hq.appdef.server.session.ResourceZevent; +import org.hyperic.hq.appdef.server.session.ServerManagerEJBImpl; +import org.hyperic.hq.appdef.server.session.Server; import org.hyperic.hq.appdef.shared.AppdefEntityID; +import org.hyperic.hq.appdef.shared.ServerManagerLocal; import org.hyperic.hq.application.StartupListener; import org.hyperic.hq.authz.shared.AuthzSubjectValue; import org.hyperic.hq.autoinventory.shared.AutoinventoryManagerLocal; @@ -54,6 +59,7 @@ */ Set events = new HashSet(); events.add(ResourceCreatedZevent.class); + events.add(ResourceUpdatedZevent.class); ZeventManager.getInstance(). addBufferedListener(events, new RuntimeAIEnabler()); } @@ -65,24 +71,40 @@ public void processEvents(List events) { for (Iterator i = events.iterator(); i.hasNext();) { - ResourceCreatedZevent zevent = (ResourceCreatedZevent) i.next(); + ResourceZevent zevent = (ResourceZevent) i.next(); AuthzSubjectValue subject = zevent.getAuthzSubjectValue(); AppdefEntityID id = zevent.getAppdefEntityID(); + AutoinventoryManagerLocal aiManager = + AutoinventoryManagerEJBImpl.getOne(); + ServerManagerLocal serverMgr = + ServerManagerEJBImpl.getOne(); + boolean isUpdate = zevent instanceof ResourceUpdatedZevent; // Only servers have runtime AI. if (!id.isServer()) { return; } - _log.info("Enabling Runtime-AI for " + id); - - AutoinventoryManagerLocal aiManager = - AutoinventoryManagerEJBImpl.getOne(); - try { - aiManager.toggleRuntimeScan(subject, id, true); - } catch (Exception e) { - throw new SystemException("Error enabling Runtime-AI for " + - "server [" + id + "]", e); + if (isUpdate) { + Server s = serverMgr.getServerById(id.getId()); + _log.info("Toggling Runtime-AI for " + id); + try { + aiManager.toggleRuntimeScan(subject, id, + s.isRuntimeAutodiscovery()); + } catch (Exception e) { + throw new SystemException("Error toggling " + + "Runtime-AI for " + + "server [" + id + "]", e); + } + } else { + _log.info("Enabling Runtime-AI for " + id); + try { + aiManager.toggleRuntimeScan(subject, id, true); + } catch (Exception e) { + throw new SystemException("Error enabling " + + "Runtime-AI for " + + "server [" + id + "]", e); + } } } } |