// update-remove - for each host listed - hostWithName + (stopAllInstances/new siteConfig) | removeHost_W
for (Enumeration e = hostArray.objectEnumerator(); e.hasMoreElements(); ) {
NSDictionary aHost = (NSDictionary) e.nextElement();
String name = (String) aHost.valueForKey("name");
MHost anMHost = aConfig.hostWithName(name);
if (anMHost == null) {
element = new NSDictionary(new Object[]{Boolean.FALSE, _hostName + ": Host " +name+ " not found; REMOVE failed"}, errorKeys);
hostArrayResponse.addObject(element);
} else {
if ( anMHost == aConfig.localHost()) {
stopAllInstances();
( (Application) WOApplication.application()).setSiteConfig(new MSiteConfig(null));
} else {
aConfig.removeHost_W(anMHost);
}
hostArrayResponse.addObject(successElement);
}
}
removeResponse.takeValueForKey(hostArrayResponse, "hostArray");
}
if (applicationArray != null) {
NSMutableArray applicationArrayResponse = new NSMutableArray(applicationArray.count());
// update-remove - for each application listed - applicationWithName + removeApplication_W
for (Enumeration e = applicationArray.objectEnumerator(); e.hasMoreElements(); ) {
NSDictionary anApp = (NSDictionary) e.nextElement();
String name = (String) anApp.valueForKey("name");
MApplication anMApplication = aConfig.applicationWithName(name);
if (anMApplication == null) {
element = new NSDictionary(new Object[]{Boolean.FALSE, _hostName + ": Application " +name+ " not found; REMOVE failed"}, errorKeys);
applicationArrayResponse.addObject(element);
} else {
aConfig.removeApplication_W(aConfig.applicationWithName(name));
applicationArrayResponse.addObject(successElement);
}
}
removeResponse.takeValueForKey(applicationArrayResponse, "applicationArray");
}
if (instanceArray != null) {
NSMutableArray instanceArrayResponse = new NSMutableArray(instanceArray.count());
// update-remove - for each instance listed - instanceWithHostnameAndPort + removeInstance_W
for (Enumeration e = instanceArray.objectEnumerator(); e.hasMoreElements(); ) {
NSDictionary anInst = (NSDictionary) e.nextElement();
String hostName = (String) anInst.valueForKey("hostName");
Integer port = (Integer) anInst.valueForKey("port");
MInstance anMInstance = aConfig.instanceWithHostnameAndPort(hostName, port);
if (anMInstance == null) {
element = new NSDictionary(new Object[]{Boolean.FALSE, _hostName + ": Instance " +hostName+"-"+port+ " not found; REMOVE failed"}, errorKeys);
instanceArrayResponse.addObject(element);
} else {
aConfig.removeInstance_W(anMInstance);
instanceArrayResponse.addObject(successElement);
}
}
removeResponse.takeValueForKey(instanceArrayResponse, "instanceArray");
}
updateWotaskdResponse.takeValueForKey(removeResponse, "remove");
}
if (addDict != null) {
NSMutableDictionary addResponse = new NSMutableDictionary(1);
NSArray hostArray = (NSArray) addDict.valueForKey("hostArray");
NSArray applicationArray = (NSArray) addDict.valueForKey("applicationArray");
NSArray instanceArray = (NSArray) addDict.valueForKey("instanceArray");
if (hostArray != null) {
NSMutableArray hostArrayResponse = new NSMutableArray(hostArray.count());
// update-add - for each host listed - addHost_W
for (Enumeration e = hostArray.objectEnumerator(); e.hasMoreElements(); ) {
NSDictionary aHost = (NSDictionary) e.nextElement();
aConfig.addHost_W(new MHost(aHost, aConfig));
hostArrayResponse.addObject(successElement);
}
addResponse.takeValueForKey(hostArrayResponse, "hostArray");
}
if (applicationArray != null) {
NSMutableArray applicationArrayResponse = new NSMutableArray(applicationArray.count());
// update-add - for each application listed - addApplication_W
for (Enumeration e = applicationArray.objectEnumerator(); e.hasMoreElements(); ) {
NSDictionary anApp = (NSDictionary) e.nextElement();
aConfig.addApplication_W(new MApplication(anApp, aConfig));
applicationArrayResponse.addObject(successElement);
}
addResponse.takeValueForKey(applicationArrayResponse, "applicationArray");
}
if (instanceArray != null) {
NSMutableArray instanceArrayResponse = new NSMutableArray(instanceArray.count());
// update-add - for each instance listed - addInstance_W
for (Enumeration e = instanceArray.objectEnumerator(); e.hasMoreElements(); ) {
NSDictionary anInst = (NSDictionary) e.nextElement();
aConfig.addInstance_W(new MInstance(anInst, aConfig));
instanceArrayResponse.addObject(successElement);
}
addResponse.takeValueForKey(instanceArrayResponse, "instanceArray");
}
updateWotaskdResponse.takeValueForKey(addResponse, "add");
}
if (configureDict != null) {
NSMutableDictionary configureResponse = new NSMutableDictionary(2);
NSDictionary siteDict = (NSDictionary) configureDict.valueForKey("site");
NSArray hostArray = (NSArray) configureDict.valueForKey("hostArray");
NSArray applicationArray = (NSArray) configureDict.valueForKey("applicationArray");
NSArray instanceArray = (NSArray) configureDict.valueForKey("instanceArray");
if (siteDict != null) {
// update-configure - siteConfig.updateValues
aConfig.updateValues(siteDict);
configureResponse.takeValueForKey(successElement, "site");
}
if (hostArray != null) {
NSMutableArray hostArrayResponse = new NSMutableArray(hostArray.count());
// update-configure - for each host listed - hostWithName + updateValues
for (Enumeration e = hostArray.objectEnumerator(); e.hasMoreElements(); ) {
NSDictionary aHost = (NSDictionary) e.nextElement();
String name = (String) aHost.valueForKey("name");
MHost anMHost = aConfig.hostWithName(name);
if (anMHost == null) {
element = new NSDictionary(new Object[]{Boolean.FALSE, _hostName + ": Host " +name+ " not found; UPDATE failed"}, errorKeys);
hostArrayResponse.addObject(element);
} else {
anMHost.updateValues(aHost);
hostArrayResponse.addObject(successElement);
}
}
configureResponse.takeValueForKey(hostArrayResponse, "hostArray");
}