blob: eac968a56a8e75a8e2d448a8d6c0268ddcabbd12 [file] [log] [blame]
# Copyright 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Helper functions to manage errors returned by Google Compute APIs."""
import json
# Error reason returned by GetErrorReason() when a resource is not found.
REASON_NOT_FOUND = 'notFound'
def GetErrorContent(error):
"""Returns the contents of an error returned by Google Compute APIs as a
dictionary or None.
"""
if not error.resp.get('content-type', '').startswith('application/json'):
return None
return json.loads(error.content)
def GetErrorReason(error_content):
"""Returns the error reason as a string."""
if not error_content:
return None
if (not error_content.get('error') or
not error_content['error'].get('errors')):
return None
error_list = error_content['error']['errors']
if not error_list:
return None
return error_list[0].get('reason')