[bug] get armada object after valid document
- calling object get after vaild doc
This commit is contained in:
parent
5b232d5831
commit
86846d64bf
|
@ -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")
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue