InstanceCommandResult r = future.get(timeoutInMsec, TimeUnit.MILLISECONDS); InstanceCommandExecutor res = (InstanceCommandExecutor) r.getInstanceCommand(); String instanceLocation = res.getCommandOutput(); if ((!instanceLocation.endsWith(res.getServer().getName())) || (res.getReport().getActionExitCode() != ActionReport.ExitCode.SUCCESS)) { uptime = -1; state = NOT_RUNNING; Properties props = res.getReport().getTopMessagePart().getProps(); String uptimeStr = props.getProperty("Uptime"); String pidstr = props.getProperty("Pid");
InstanceCommandResult aResult = new InstanceCommandResult(); InstanceCommandExecutor ice = new InstanceCommandExecutor(habitat, commandName, failPolicy, offlinePolicy, svr, host, port, logger, parameters, aReport, aResult); if (CommandTarget.DAS.isValid(habitat, ice.getServer().getName())) continue; if (intermediateDownloadDir != null) { ice.setFileOutputDirectory( subdirectoryForInstance(intermediateDownloadDir, ice)); maxWaitTime = timeBeforeAsadminTimeout; InstanceCommandExecutor ice = (InstanceCommandExecutor) aResult.getInstanceCommand(); if(ice.getReport().getActionExitCode() != ActionReport.ExitCode.FAILURE) completedInstances.add(ice.getServer()); finalResult = FailurePolicy.applyFailurePolicy(failPolicy, ice.getReport().getActionExitCode()); if(returnValue == ActionReport.ExitCode.SUCCESS) returnValue = finalResult;
@Override public void run() { try { executeCommand(params); aReport.setActionExitCode(ActionReport.ExitCode.SUCCESS); if(StringUtils.ok(getCommandOutput())) aReport.setMessage(strings.getLocalString("ice.successmessage", "{0}:\n{1}\n", getServer().getName(), getCommandOutput())); Map<String, String> attributes = this.getAttributes(); for(Map.Entry<String, String> ae : attributes.entrySet()) { String key = ae.getKey(); aReport.setMessage(strings.getLocalString("clusterutil.warnoffline", "WARNING: Instance {0} seems to be offline; command {1} was not replicated to that instance", getServer().getName(), commandName)); else aReport.setMessage(strings.getLocalString("clusterutil.failoffline", "FAILURE: Instance {0} seems to be offline; command {1} was not replicated to that instance", getServer().getName(), commandName)); } else { finalResult = FailurePolicy.applyFailurePolicy(failPolicy, ActionReport.ExitCode.FAILURE); if(finalResult.equals(ActionReport.ExitCode.FAILURE)) aReport.setMessage(strings.getLocalString("clusterutil.commandFailed", "FAILURE: Command {0} failed on server instance {1}: {2}", commandName, getServer().getName(), cmdEx.getMessage())); else aReport.setMessage(strings.getLocalString("clusterutil.commandWarning", "WARNING: Command {0} did not complete successfully on server instance {1}: {2}", commandName, getServer().getName(), cmdEx.getMessage()));
private static File subdirectoryForInstance(final File dir, final InstanceCommandExecutor exec) { return new File(dir, exec.getServer().getName()); } }
private Future<InstanceCommandResult> pingInstance() { try { ActionReport aReport = report.addSubActionsReport(); InstanceCommandResult aResult = new InstanceCommandResult(); ParameterMap map = new ParameterMap(); map.set("type", "terse"); InstanceCommandExecutor ice = new InstanceCommandExecutor(habitat, "__locations", FailurePolicy.Error, FailurePolicy.Error, svr, host, port, logger, map, aReport, aResult); return stateService.submitJob(svr, ice, aResult); /* String ret = rac.executeCommand(map).trim(); if (ret == null || (!ret.endsWith("/" + name))) return -1; running = true; String uptimeStr = rac.getAttributes().get("Uptime_value"); return Long.parseLong(uptimeStr); */ } catch (CommandException ex) { running = false; return null; } }
logger.log(Level.FINEST, "replicateCommand(): Use traditional way for replication - {0}", commandName); InstanceCommandExecutor ice = new InstanceCommandExecutor(habitat, commandName, failPolicy, offlinePolicy, svr, host, port, logger, parameters, aReport, aResult); if (CommandTarget.DAS.isValid(habitat, ice.getServer().getName())) { continue; ice.setFileOutputDirectory( new File(intermediateDownloadDir, ice.getServer().getName())); } else { InstanceCommandExecutor ice = (InstanceCommandExecutor) aResult.getInstanceCommand(); iReport = ice.getReport(); iServer = ice.getServer();
public void run() { try { executeCommand(params); aReport.setActionExitCode(ActionReport.ExitCode.SUCCESS); if(StringUtils.ok(getCommandOutput())) aReport.setMessage(strings.getLocalString("ice.successmessage", "{0}:\n{1}\n", getServer().getName(), getCommandOutput())); Map<String, String> attributes = this.getAttributes(); for(String key : attributes.keySet()) { if(key.endsWith("_value")) aReport.setMessage(strings.getLocalString("clusterutil.warnoffline", "WARNING: Instance {0} seems to be offline; command {1} was not replicated to that instance", getServer().getName(), commandName)); else aReport.setMessage(strings.getLocalString("clusterutil.failoffline", "FAILURE: Instance {0} seems to be offline; command {1} was not replicated to that instance", getServer().getName(), commandName)); } else { finalResult = FailurePolicy.applyFailurePolicy(failPolicy, ActionReport.ExitCode.FAILURE); if(finalResult.equals(ActionReport.ExitCode.FAILURE)) aReport.setMessage(strings.getLocalString("clusterutil.commandFailed", "FAILURE: Command {0} failed on server instance {1}: {2}", commandName, getServer().getName(), cmdEx.getMessage())); else aReport.setMessage(strings.getLocalString("clusterutil.commandWarning", "WARNING: Command {0} did not complete successfully on server instance {1}: {2}", commandName, getServer().getName(), cmdEx.getMessage()));