[ https://issues.apache.org/jira/browse/GEODE-7830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17051486#comment-17051486 ]
Aaron Lindsey commented on GEODE-7830: -------------------------------------- [~dschneider] Thanks for that perspective. I agree that there might be a situation where an operator tries to perform a rebalance, but the rebalance does not do what they expect due to regions/servers not being online yet. In that specific case, however, the operator could check the rebalanceRegionResults which is included in the operationResult and see that it is empty which means that there are no regions that were actually rebalanced. Then they would know that the rebalance didn't do what they intended. > Management REST API rebalance endpoints return confusing operationResults > ------------------------------------------------------------------------- > > Key: GEODE-7830 > URL: https://issues.apache.org/jira/browse/GEODE-7830 > Project: Geode > Issue Type: Bug > Components: management > Reporter: Aaron Lindsey > Assignee: Darrel Schneider > Priority: Major > > We observed odd behavior regarding the operationResult object returned in the > rebalance API: > # It contains success=false if the cluster has no regions or has no servers. > This is confusing because the rebalance didn't fail — it just didn't have > anything to rebalance so it was basically a no-op. As a consumer of this API, > I need to be able to distinguish between "real" failures and this "no-op" > failure, and I should not have to write code to parse the "statusMessage" to > do that. > # Sometimes, success=true and other times success=false for the same > statusMessage: "Distributed system has no regions that can be rebalanced." > This is confusing because I don't know why it sometimes considers this a > failure and other times considers it a success. If #1 above is fixed, then > this would not be an issue because it would always return success=true for > this particular statusMessage. > Here is an example of two confusing operationResults we observed: > {code:json} > { > "result": [ > { > "statusCode": "OK", > "links": { > "self": > "http://geodecluster-sample-locator.default/management/v1/operations/rebalances/15dfe6ef-acaf-4a45-9b55-1d855a977ba8", > "list": > "http://geodecluster-sample-locator.default/management/v1/operations/rebalances" > }, > "operationStart": "2020-02-25T18:53:34.058Z", > "operationEnd": "2020-02-25T18:53:34.063Z", > "operationId": "15dfe6ef-acaf-4a45-9b55-1d855a977ba8", > "operation": { > "simulate": false > }, > "operationResult": { > "statusMessage": "Distributed system has no regions that can be > rebalanced.", > "success": true > } > }, > { > "statusCode": "OK", > "links": { > "self": > "http://geodecluster-sample-locator.default/management/v1/operations/rebalances/8218ce0d-e3b8-4c49-b925-665a28e821c3", > "list": > "http://geodecluster-sample-locator.default/management/v1/operations/rebalances" > }, > "operationStart": "2020-02-25T18:53:45.650Z", > "operationEnd": "2020-02-25T18:53:45.654Z", > "operationId": "8218ce0d-e3b8-4c49-b925-665a28e821c3", > "operation": { > "simulate": false > }, > "operationResult": { > "statusMessage": "Distributed system has no regions that can be > rebalanced.", > "success": false > } > } > ], > "statusCode": "OK" > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)