in bigtop-manager-stack/bigtop-manager-stack-core/src/main/java/org/apache/bigtop/manager/stack/core/executor/StackExecutor.java [71:106]
public static ShellResult execute(ComponentCommandPayload payload) {
try {
String command = payload.getCommand().equalsIgnoreCase(Command.CUSTOM.getCode())
? payload.getCustomCommand()
: payload.getCommand();
Script script = getCommandScript(payload);
String methodName = CaseUtils.toCamelCase(command, CaseUtils.SEPARATOR_UNDERSCORE, false);
Method method = script.getClass().getMethod(methodName, Params.class);
Params params = PARAMS_MAP
.get(payload.getServiceName())
.getClass()
.getDeclaredConstructor(ComponentCommandPayload.class)
.newInstance(payload);
if (Environments.isDevMode()) {
log.info("Executing {}::{} on dev mode", script.getName(), method.getName());
return ShellResult.success();
} else {
runBeforeHook(command, params);
log.info("Executing {}::{}", script.getName(), method.getName());
ShellResult result = (ShellResult) method.invoke(script, params);
if (result.getExitCode() != MessageConstants.SUCCESS_CODE) {
log.error("Error executing script: {}", result.getErrMsg());
}
runAfterHook(command, params);
return result;
}
} catch (Exception e) {
log.error("Error executing command, payload: {}", payload, e);
return ShellResult.fail();
}
}