public static void sendCommandInstancesToWotaskds( String command, NSArray instanceArray, NSArray wotaskdArray, WOTaskdHandler collector) { if (instanceArray.count() > 0 && wotaskdArray.count() > 0) { int instanceCount = instanceArray.count(); NSMutableDictionary monitorRequest = new NSMutableDictionary(1); NSMutableArray commandWotaskd = new NSMutableArray(instanceArray.count() + 1); commandWotaskd.addObject(command); for (int i = 0; i < instanceCount; i++) { MInstance anInst = (MInstance) instanceArray.objectAtIndex(i); commandWotaskd.addObject( new NSDictionary( new Object[] { anInst.applicationName(), anInst.id(), anInst.hostName(), anInst.port() }, commandInstanceKeys)); } monitorRequest.takeValueForKey(commandWotaskd, "commandWotaskd"); WOResponse[] responses = collector.sendRequest(monitorRequest, wotaskdArray, false); NSDictionary[] responseDicts = collector.generateResponseDictionaries(responses); if (NSLog.debugLoggingAllowedForLevelAndGroups( NSLog.DebugLevelDetailed, NSLog.DebugGroupDeployment)) { NSLog.debug.appendln( "OUT: " + NSPropertyListSerialization.stringFromPropertyList(monitorRequest) + "\n\nIN: " + NSPropertyListSerialization.stringFromPropertyList(new NSArray(responseDicts))); } collector.getCommandErrors(responseDicts); } }
public void updateForPage(String aName) { // KH - we should probably set the instance information as we get the // responses, to avoid waiting, then doing it in serial! (not that it's // _that_ slow) MSiteConfig siteConfig = WOTaskdHandler.siteConfig(); startReading(); try { aName = ERXStringUtilities.lastPropertyKeyInKeyPath(aName); if (siteConfig.hostArray().count() != 0) { if (ApplicationsPage.class.getName().endsWith(aName) && (siteConfig.applicationArray().count() != 0)) { for (Enumeration e = siteConfig.applicationArray().objectEnumerator(); e.hasMoreElements(); ) { MApplication anApp = (MApplication) e.nextElement(); anApp.setRunningInstancesCount(0); } NSArray<MHost> hostArray = siteConfig.hostArray(); getApplicationStatusForHosts(hostArray); } else if (AppDetailPage.class.getName().endsWith(aName)) { NSArray<MHost> hostArray = siteConfig.hostArray(); getInstanceStatusForHosts(hostArray); } else if (HostsPage.class.getName().endsWith(aName)) { NSArray<MHost> hostArray = siteConfig.hostArray(); getHostStatusForHosts(hostArray); } } } finally { endReading(); } }