Repository: ambari Updated Branches: refs/heads/trunk 5fc461804 -> 108a1209b
AMBARI-15678: YARN service_check doesn't fail when application status is not reasonable (Masahiro Tanaka via jluniya) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/108a1209 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/108a1209 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/108a1209 Branch: refs/heads/trunk Commit: 108a1209b4724f365bc53da55919d544dcff70bd Parents: 5fc4618 Author: Jayush Luniya <[email protected]> Authored: Fri Apr 22 13:35:35 2016 -0700 Committer: Jayush Luniya <[email protected]> Committed: Fri Apr 22 13:35:35 2016 -0700 ---------------------------------------------------------------------- .../2.1.0.2.0/package/scripts/service_check.py | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/108a1209/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py index e8d98ab..792a681 100644 --- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py +++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service_check.py @@ -116,7 +116,6 @@ class ServiceCheckDefault(ServiceCheck): if "application" in item: application_name = item - json_response_received = False for rm_webapp_address in params.rm_webapp_addresses_list: info_app_url = params.scheme + "://" + rm_webapp_address + "/ws/v1/cluster/apps/" + application_name @@ -129,16 +128,16 @@ class ServiceCheckDefault(ServiceCheck): try: json_response = json.loads(stdout) - - json_response_received = True - - if json_response['app']['state'] != "FINISHED" or json_response['app']['finalStatus'] != "SUCCEEDED": - raise Exception("Application " + app_url + " state/status is not valid. Should be FINISHED/SUCCEEDED.") except Exception as e: - pass + raise Exception("Could not get json response from YARN API") + + if json_response is None or 'app' not in json_response or \ + 'state' not in json_response['app'] or 'finalStatus' not in json_response['app']: + raise Exception("Application " + app_url + " returns invalid data.") + + if json_response['app']['state'] != "FINISHED" or json_response['app']['finalStatus'] != "SUCCEEDED": + raise Exception("Application " + app_url + " state/status is not valid. Should be FINISHED/SUCCEEDED.") - if not json_response_received: - raise Exception("Could not get json response from YARN API") if __name__ == "__main__":
