/** * Creates error Result with given error code & message * <p/> * Note: To build your own error result, use {@link #createErrorResultData()} to build * {@link ErrorResultData} & then use {@link #buildResult(ResultData)} * * @param errorCode error code should be one of ResultBuilder.ERRORCODE_** * @param message message for the error */ private static CommandResult createErrorResult(int errorCode, String message) { ErrorResultData errorResultData = new ErrorResultData(); errorResultData.setErrorCode(errorCode); errorResultData.addLine(message); return buildResult(errorResultData); }
errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT) .addLine(CliStrings.HISTORY__MSG__FILE_DOES_NOT_EXISTS); return ResultBuilder.buildResult(errorResultData); errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT) .addLine(CliStrings.HISTORY__MSG__FILE_SHOULD_NOT_BE_DIRECTORY); return ResultBuilder.buildResult(errorResultData); errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT) .addLine(CliStrings.HISTORY__MSG__FILE_CANNOT_BE_WRITTEN); return ResultBuilder.buildResult(errorResultData); .setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine("exception in closing file"); return ResultBuilder.buildResult(errorResultData);
ErrorResultData errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT) .addLine(CliStrings.DESTROY_FUNCTION__MSG__CANNOT_EXECUTE); return (ResultBuilder.buildResult(errorResultData)); } catch (FunctionException ex) { ErrorResultData errorResultData = ResultBuilder.createErrorResultData() .setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine(ex.getMessage()); return (ResultBuilder.buildResult(errorResultData));
ErrorResultData errorResultData = new ErrorResultData(); errorResultData .addLine("Can not detect result type, unknown result data format for: " + resultData); wrapperResultData = errorResultData;
@CliCommand(value = {CliStrings.SET_VARIABLE}, help = CliStrings.SET_VARIABLE__HELP) @CliMetaData(shellOnly = true, relatedTopic = {CliStrings.TOPIC_GFSH}) public Result setVariable( @CliOption(key = CliStrings.SET_VARIABLE__VAR, mandatory = true, help = CliStrings.SET_VARIABLE__VAR__HELP) String var, @CliOption(key = CliStrings.SET_VARIABLE__VALUE, mandatory = true, help = CliStrings.SET_VARIABLE__VALUE__HELP) String value) { Result result; try { getGfsh().setEnvProperty(var, String.valueOf(value)); result = ResultBuilder.createInfoResult("Value for variable " + var + " is now: " + value + "."); } catch (IllegalArgumentException e) { ErrorResultData errorResultData = ResultBuilder.createErrorResultData(); errorResultData.addLine(e.getMessage()); result = ResultBuilder.buildResult(errorResultData); } return result; } }
@Test public void errorResultDataStructure() { ErrorResultData result = ResultBuilder.createErrorResultData(); result.addLine("line 1"); result.addLine("line 2"); result.setHeader("Heads"); result.setFooter("Tails"); CommandResult cmdResult = ResultBuilder.buildResult(result); assertThat(cmdResult.getHeader()).isEqualTo("Heads"); assertThat(cmdResult.getListFromContent("message")).contains("line 1", "line 2"); assertThat(cmdResult.getFooter()).isEqualTo("Tails"); assertThat(cmdResult.getValueFromContent("message")).isNotEmpty(); assertThat(cmdResult.getStatus()).isEqualTo(Result.Status.ERROR); }
@Test public void errorWithMultipleMessages() { ErrorResultData result = new ErrorResultData("This is an error"); result.addLine("This is another error"); assertThat(result.getGfJsonObject().getJSONObject("content").getString("message")) .isEqualTo("[\"This is an error\",\"This is another error\"]"); }
.setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine(e.getMessage()); return (ResultBuilder.buildResult(errorResultData));
@CliCommand(value = {CliStrings.DESCRIBE_CONNECTION}, help = CliStrings.DESCRIBE_CONNECTION__HELP) @CliMetaData(shellOnly = true, relatedTopic = {CliStrings.TOPIC_GFSH, CliStrings.TOPIC_GEODE_JMX}) public Result describeConnection() { Result result; try { TabularResultData tabularResultData = ResultBuilder.createTabularResultData(); Gfsh gfshInstance = getGfsh(); if (gfshInstance.isConnectedAndReady()) { OperationInvoker operationInvoker = gfshInstance.getOperationInvoker(); // tabularResultData.accumulate("Monitored GemFire DS", operationInvoker.toString()); tabularResultData.accumulate("Connection Endpoints", operationInvoker.toString()); } else { tabularResultData.accumulate("Connection Endpoints", "Not connected"); } result = ResultBuilder.buildResult(tabularResultData); } catch (Exception e) { ErrorResultData errorResultData = ResultBuilder.createErrorResultData() .setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine(e.getMessage()); result = ResultBuilder.buildResult(errorResultData); } return result; } }
} else { ErrorResultData errorResultData = new ErrorResultData(); errorResultData.addLine("Can not detect result type, unknown response format: " + json); resultData = errorResultData;
@CliCommand(value = {CliStrings.DEBUG}, help = CliStrings.DEBUG__HELP) @CliMetaData(shellOnly = true, relatedTopic = {CliStrings.TOPIC_GFSH, CliStrings.TOPIC_GEODE_DEBUG_UTIL}) public Result debug( @CliOption(key = CliStrings.DEBUG__STATE, unspecifiedDefaultValue = "OFF", mandatory = true, optionContext = "debug", help = CliStrings.DEBUG__STATE__HELP) String state) { Gfsh gfshInstance = Gfsh.getCurrentInstance(); if (gfshInstance != null) { // Handle state if (state.equalsIgnoreCase("ON")) { gfshInstance.setDebug(true); } else if (state.equalsIgnoreCase("OFF")) { gfshInstance.setDebug(false); } else { return ResultBuilder.createUserErrorResult( CliStrings.format(CliStrings.DEBUG__MSG_0_INVALID_STATE_VALUE, state)); } } else { ErrorResultData errorResultData = ResultBuilder.createErrorResultData().setErrorCode(ResultBuilder.ERRORCODE_DEFAULT) .addLine(CliStrings.ECHO__MSG__NO_GFSH_INSTANCE); return ResultBuilder.buildResult(errorResultData); } return ResultBuilder.createInfoResult(CliStrings.DEBUG__MSG_DEBUG_STATE_IS + state); } }
.setErrorCode(ResultBuilder.ERRORCODE_DEFAULT).addLine(e.getMessage()); return ResultBuilder.buildResult(errorResultData);
@Test public void legacyErrorComparison() { // Create the legacy results ErrorResultData legacyError = ResultBuilder.createErrorResultData(); legacyError.addLine("This is a bad line"); legacyError.addLine("This is another bad line"); Result legacyResult = ResultBuilder.buildResult(legacyError); String legacyString = CommandResponseBuilder.createCommandResponseJson("server1", (CommandResult) legacyResult); CommandResult legacyErrorResult = ResultBuilder.fromJson(legacyString); // Create the new model results ResultModel newCrm = ResultModel.createError("This is a bad line"); newCrm.getInfoSections().get(0).addLine("This is another bad line"); String newModelString = CommandResponseBuilder.createCommandResponseJson("server1", newCrm); CommandResult newErrorModelResult = ResultBuilder.fromJson(newModelString); assertThat(legacyErrorResult.getMessageFromContent()) .isEqualTo(newErrorModelResult.getErrorMessage()); assertThat(readCommandOutput(newErrorModelResult)) .isEqualTo(readCommandOutput(legacyErrorResult)); }