Search in sources :

Example 1 with UnregisterFunction

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");
    }
}
Also used : Function(org.apache.geode.cache.execute.Function) ListFunctionFunction(org.apache.geode.management.internal.cli.functions.ListFunctionFunction) UnregisterFunction(org.apache.geode.management.internal.cli.functions.UnregisterFunction) UserFunctionExecution(org.apache.geode.management.internal.cli.functions.UserFunctionExecution) Execution(org.apache.geode.cache.execute.Execution) FunctionException(org.apache.geode.cache.execute.FunctionException) DistributedMember(org.apache.geode.distributed.DistributedMember) ArrayList(java.util.ArrayList) List(java.util.List) UnregisterFunction(org.apache.geode.management.internal.cli.functions.UnregisterFunction) ErrorResultData(org.apache.geode.management.internal.cli.result.ErrorResultData)

Aggregations

ArrayList (java.util.ArrayList)1 List (java.util.List)1 Execution (org.apache.geode.cache.execute.Execution)1 Function (org.apache.geode.cache.execute.Function)1 FunctionException (org.apache.geode.cache.execute.FunctionException)1 DistributedMember (org.apache.geode.distributed.DistributedMember)1 ListFunctionFunction (org.apache.geode.management.internal.cli.functions.ListFunctionFunction)1 UnregisterFunction (org.apache.geode.management.internal.cli.functions.UnregisterFunction)1 UserFunctionExecution (org.apache.geode.management.internal.cli.functions.UserFunctionExecution)1 ErrorResultData (org.apache.geode.management.internal.cli.result.ErrorResultData)1