[bug] get armada object after valid document

- calling object get after vaild doc
This commit is contained in:
gardlt 2017-07-27 10:34:03 -05:00 committed by Tim Heyer
parent 5b232d5831
commit 86846d64bf
3 changed files with 22 additions and 22 deletions

View File

@ -66,8 +66,8 @@ class Armada(object):
self.wait = wait
self.timeout = timeout
self.tiller = Tiller(tiller_host=tiller_host, tiller_port=tiller_port)
self.documents = yaml.safe_load_all(file)
self.config = self.get_armada_manifest()
self.documents = list(yaml.safe_load_all(file))
self.config = None
self.tiller = Tiller()
self.debug = debug
@ -96,6 +96,9 @@ class Armada(object):
raise Exception("Service: Tiller is not Available")
if not lint.validate_armada_documents(self.documents):
raise Exception("Invalid Armada Manifest")
self.config = self.get_armada_manifest()
if not lint.validate_armada_object(self.config):
raise Exception("Invalid Armada Object")

View File

@ -16,6 +16,7 @@ from armada.const import DOCUMENT_CHART, DOCUMENT_GROUP, DOCUMENT_MANIFEST
from armada.const import KEYWORD_ARMADA, KEYWORD_PREFIX, KEYWORD_GROUPS, \
KEYWORD_CHARTS, KEYWORD_RELEASE
def validate_armada_documents(documents):
manifest = validate_manifest_document(documents)
group = validate_chart_group_document(documents)
@ -23,6 +24,7 @@ def validate_armada_documents(documents):
return manifest and group and chart
def validate_armada_object(object):
if not isinstance(object.get(KEYWORD_ARMADA, None), dict):
raise Exception("Could not find {} keyword".format(KEYWORD_ARMADA))
@ -33,21 +35,19 @@ def validate_armada_object(object):
raise Exception("Could not find {} keyword".format(KEYWORD_PREFIX))
if not isinstance(armada_object.get(KEYWORD_GROUPS), list):
raise Exception(
'{} is of correct type: {} (expected: {} )'.format(
KEYWORD_GROUPS,
type(armada_object.get(KEYWORD_GROUPS)), list))
raise Exception('{} is of correct type: {} (expected: {} )'.format(
KEYWORD_GROUPS, type(armada_object.get(KEYWORD_GROUPS)), list))
for group in armada_object.get(KEYWORD_GROUPS):
for chart in group.get(KEYWORD_CHARTS):
chart_obj = chart.get('chart')
if not isinstance(chart_obj.get(KEYWORD_RELEASE), str):
raise Exception(
'Could not find {} in {}'.format(KEYWORD_RELEASE,
chart_obj.get('name')))
raise Exception('Could not find {} in {}'.format(
KEYWORD_RELEASE, chart_obj.get('name')))
return True
def validate_manifest_document(documents):
manifest_documents = []
for document in documents:
@ -60,9 +60,8 @@ def validate_manifest_document(documents):
if not isinstance(manifest_data.get('chart_groups'),
list) and not manifest_data.get(
'chart_groups', False):
raise Exception(
'Missing %s values. Expecting list type'.format(
KEYWORD_GROUPS))
raise Exception('Missing %s values. Expecting list type'.
format(KEYWORD_GROUPS))
if len(manifest_documents) > 1:
raise Exception(
@ -70,6 +69,7 @@ def validate_manifest_document(documents):
return True
def validate_chart_group_document(documents):
for document in documents:
if document.get('schema') == DOCUMENT_GROUP:
@ -77,22 +77,19 @@ def validate_chart_group_document(documents):
if not isinstance(manifest_data.get(KEYWORD_CHARTS),
list) and not manifest_data.get(
'chart_group', False):
raise Exception(
'Missing %s values. Expecting a list type'.format(
KEYWORD_CHARTS))
raise Exception('Missing %s values. Expecting a list type'.
format(KEYWORD_CHARTS))
return True
def validate_chart_document(documents):
for document in documents:
if document.get('schema') == DOCUMENT_CHART:
manifest_data = document.get('data')
if not isinstance(manifest_data.get(KEYWORD_RELEASE),
str) and not manifest_data.get(
KEYWORD_RELEASE, False):
if not manifest_data.get(KEYWORD_RELEASE, False):
raise Exception(
'Missing %s values in %s. Expecting a string type'.format(
KEYWORD_RELEASE,
document.get('metadata').get('name')))
KEYWORD_RELEASE, document.get('metadata').get('name')))
return True

View File

@ -5,8 +5,8 @@ metadata:
name: helm-toolkit
data:
chart_name: helm-toolkit
release: null
namespace: null
release: helm-toolkit
namespace: helm-tookit
values: {}
source:
type: git