use of org.apache.geode.management.internal.cli.functions.UnregisterFunction in project geode by apache.
the class FunctionCommands method executeFunction.
Result executeFunction(InternalCache cache, Set<DistributedMember> DsMembers, String functionId) {
// unregister on a set of of members
Function unregisterFunction = new UnregisterFunction();
FunctionService.registerFunction(unregisterFunction);
List resultList = null;
if (DsMembers.isEmpty()) {
return ResultBuilder.createInfoResult("No members for execution");
}
Object[] obj = new Object[1];
obj[0] = functionId;
Execution execution = FunctionService.onMembers(DsMembers).setArguments(obj);
if (execution == null) {
cache.getLogger().error("executeUnregister execution is null");
ErrorResultData errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine(CliStrings.DESTROY_FUNCTION__MSG__CANNOT_EXECUTE);
return (ResultBuilder.buildResult(errorResultData));
}
try {
resultList = (ArrayList) execution.execute(unregisterFunction).getResult();
} catch (FunctionException ex) {
ErrorResultData errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine(ex.getMessage());
return (ResultBuilder.buildResult(errorResultData));
}
String resultStr = ((String) resultList.get(0));
if (resultStr.equals("Succeeded in unregistering")) {
StringBuilder members = new StringBuilder();
for (DistributedMember member : DsMembers) {
members.append(member.getId());
members.append(",");
}
return ResultBuilder.createInfoResult("Destroyed " + functionId + " Successfully on " + members.toString().substring(0, members.toString().length() - 1));
} else {
return ResultBuilder.createInfoResult("Failed in unregistering");
}
}
Aggregations