[bug] Make validation status handling more lenient

Allows for lowercase success/failure check and guards
against non-standard resposnes

Change-Id: I87a8623c6530960b60c470fd1333c8ae6e95eeac
This commit is contained in:
Bryan Strassner 2018-03-23 10:07:10 -05:00
parent e604118dfb
commit 84f161121d
3 changed files with 12 additions and 12 deletions

View File

@ -346,8 +346,12 @@ class ArmadaOperator(BaseOperator):
except json.JSONDecodeError as e:
raise AirflowException(e)
status = str(json.loads(validate_site_design_dict).get('status',
'unspecified'))
# Check if site design is valid
if validate_site_design_dict.get('status') == 'Success':
logging.info("Armada Site Design valdation status "
"is: {}".format(status))
if status.lower() == 'success':
return 'valid'
else:
return 'invalid'

View File

@ -54,19 +54,12 @@ class DeckhandValidateSiteDesignOperator(DeckhandBaseOperator):
except requests.exceptions.RequestException as e:
raise AirflowException(e)
# Assigns Boolean 'False' to validation_status if result
# status is 'failure'
if (any([v.get('status') == 'failure'
if (any([str(v.get('status', 'unspecified')).lower() == 'failure'
for v in retrieved_list.get('results', [])])):
validation_status = False
raise AirflowException("DeckHand Site Design Validation Failed!")
else:
validation_status = True
if validation_status:
logging.info("Revision %d has been successfully validated",
self.revision_id)
else:
raise AirflowException("DeckHand Site Design Validation Failed!")
class DeckhandValidateSiteDesignOperatorPlugin(AirflowPlugin):

View File

@ -71,10 +71,13 @@ class DrydockValidateDesignOperator(DrydockBaseOperator):
logging.info(json.loads(validate_site_design))
# Check if site design is valid
if json.loads(validate_site_design).get('status') == 'Success':
status = str(json.loads(validate_site_design).get('status',
'unspecified'))
if status.lower() == 'success':
logging.info("DryDock Site Design has been successfully validated")
else:
raise AirflowException("DryDock Site Design Validation Failed!")
raise AirflowException("DryDock Site Design Validation Failed "
"with status: {}!".format(status))
class DrydockValidateDesignOperatorPlugin(AirflowPlugin):