[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.wait = wait
|
||||||
self.timeout = timeout
|
self.timeout = timeout
|
||||||
self.tiller = Tiller(tiller_host=tiller_host, tiller_port=tiller_port)
|
self.tiller = Tiller(tiller_host=tiller_host, tiller_port=tiller_port)
|
||||||
self.documents = yaml.safe_load_all(file)
|
self.documents = list(yaml.safe_load_all(file))
|
||||||
self.config = self.get_armada_manifest()
|
self.config = None
|
||||||
self.tiller = Tiller()
|
self.tiller = Tiller()
|
||||||
self.debug = debug
|
self.debug = debug
|
||||||
|
|
||||||
|
@ -96,6 +96,9 @@ class Armada(object):
|
||||||
raise Exception("Service: Tiller is not Available")
|
raise Exception("Service: Tiller is not Available")
|
||||||
if not lint.validate_armada_documents(self.documents):
|
if not lint.validate_armada_documents(self.documents):
|
||||||
raise Exception("Invalid Armada Manifest")
|
raise Exception("Invalid Armada Manifest")
|
||||||
|
|
||||||
|
self.config = self.get_armada_manifest()
|
||||||
|
|
||||||
if not lint.validate_armada_object(self.config):
|
if not lint.validate_armada_object(self.config):
|
||||||
raise Exception("Invalid Armada Object")
|
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, \
|
from armada.const import KEYWORD_ARMADA, KEYWORD_PREFIX, KEYWORD_GROUPS, \
|
||||||
KEYWORD_CHARTS, KEYWORD_RELEASE
|
KEYWORD_CHARTS, KEYWORD_RELEASE
|
||||||
|
|
||||||
|
|
||||||
def validate_armada_documents(documents):
|
def validate_armada_documents(documents):
|
||||||
manifest = validate_manifest_document(documents)
|
manifest = validate_manifest_document(documents)
|
||||||
group = validate_chart_group_document(documents)
|
group = validate_chart_group_document(documents)
|
||||||
|
@ -23,6 +24,7 @@ def validate_armada_documents(documents):
|
||||||
|
|
||||||
return manifest and group and chart
|
return manifest and group and chart
|
||||||
|
|
||||||
|
|
||||||
def validate_armada_object(object):
|
def validate_armada_object(object):
|
||||||
if not isinstance(object.get(KEYWORD_ARMADA, None), dict):
|
if not isinstance(object.get(KEYWORD_ARMADA, None), dict):
|
||||||
raise Exception("Could not find {} keyword".format(KEYWORD_ARMADA))
|
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))
|
raise Exception("Could not find {} keyword".format(KEYWORD_PREFIX))
|
||||||
|
|
||||||
if not isinstance(armada_object.get(KEYWORD_GROUPS), list):
|
if not isinstance(armada_object.get(KEYWORD_GROUPS), list):
|
||||||
raise Exception(
|
raise Exception('{} is of correct type: {} (expected: {} )'.format(
|
||||||
'{} is of correct type: {} (expected: {} )'.format(
|
KEYWORD_GROUPS, type(armada_object.get(KEYWORD_GROUPS)), list))
|
||||||
KEYWORD_GROUPS,
|
|
||||||
type(armada_object.get(KEYWORD_GROUPS)), list))
|
|
||||||
|
|
||||||
for group in armada_object.get(KEYWORD_GROUPS):
|
for group in armada_object.get(KEYWORD_GROUPS):
|
||||||
for chart in group.get(KEYWORD_CHARTS):
|
for chart in group.get(KEYWORD_CHARTS):
|
||||||
chart_obj = chart.get('chart')
|
chart_obj = chart.get('chart')
|
||||||
if not isinstance(chart_obj.get(KEYWORD_RELEASE), str):
|
if not isinstance(chart_obj.get(KEYWORD_RELEASE), str):
|
||||||
raise Exception(
|
raise Exception('Could not find {} in {}'.format(
|
||||||
'Could not find {} in {}'.format(KEYWORD_RELEASE,
|
KEYWORD_RELEASE, chart_obj.get('name')))
|
||||||
chart_obj.get('name')))
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def validate_manifest_document(documents):
|
def validate_manifest_document(documents):
|
||||||
manifest_documents = []
|
manifest_documents = []
|
||||||
for document in documents:
|
for document in documents:
|
||||||
|
@ -60,9 +60,8 @@ def validate_manifest_document(documents):
|
||||||
if not isinstance(manifest_data.get('chart_groups'),
|
if not isinstance(manifest_data.get('chart_groups'),
|
||||||
list) and not manifest_data.get(
|
list) and not manifest_data.get(
|
||||||
'chart_groups', False):
|
'chart_groups', False):
|
||||||
raise Exception(
|
raise Exception('Missing %s values. Expecting list type'.
|
||||||
'Missing %s values. Expecting list type'.format(
|
format(KEYWORD_GROUPS))
|
||||||
KEYWORD_GROUPS))
|
|
||||||
|
|
||||||
if len(manifest_documents) > 1:
|
if len(manifest_documents) > 1:
|
||||||
raise Exception(
|
raise Exception(
|
||||||
|
@ -70,6 +69,7 @@ def validate_manifest_document(documents):
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def validate_chart_group_document(documents):
|
def validate_chart_group_document(documents):
|
||||||
for document in documents:
|
for document in documents:
|
||||||
if document.get('schema') == DOCUMENT_GROUP:
|
if document.get('schema') == DOCUMENT_GROUP:
|
||||||
|
@ -77,22 +77,19 @@ def validate_chart_group_document(documents):
|
||||||
if not isinstance(manifest_data.get(KEYWORD_CHARTS),
|
if not isinstance(manifest_data.get(KEYWORD_CHARTS),
|
||||||
list) and not manifest_data.get(
|
list) and not manifest_data.get(
|
||||||
'chart_group', False):
|
'chart_group', False):
|
||||||
raise Exception(
|
raise Exception('Missing %s values. Expecting a list type'.
|
||||||
'Missing %s values. Expecting a list type'.format(
|
format(KEYWORD_CHARTS))
|
||||||
KEYWORD_CHARTS))
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
def validate_chart_document(documents):
|
def validate_chart_document(documents):
|
||||||
for document in documents:
|
for document in documents:
|
||||||
if document.get('schema') == DOCUMENT_CHART:
|
if document.get('schema') == DOCUMENT_CHART:
|
||||||
manifest_data = document.get('data')
|
manifest_data = document.get('data')
|
||||||
if not isinstance(manifest_data.get(KEYWORD_RELEASE),
|
if not manifest_data.get(KEYWORD_RELEASE, False):
|
||||||
str) and not manifest_data.get(
|
|
||||||
KEYWORD_RELEASE, False):
|
|
||||||
raise Exception(
|
raise Exception(
|
||||||
'Missing %s values in %s. Expecting a string type'.format(
|
'Missing %s values in %s. Expecting a string type'.format(
|
||||||
KEYWORD_RELEASE,
|
KEYWORD_RELEASE, document.get('metadata').get('name')))
|
||||||
document.get('metadata').get('name')))
|
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
|
@ -5,8 +5,8 @@ metadata:
|
||||||
name: helm-toolkit
|
name: helm-toolkit
|
||||||
data:
|
data:
|
||||||
chart_name: helm-toolkit
|
chart_name: helm-toolkit
|
||||||
release: null
|
release: helm-toolkit
|
||||||
namespace: null
|
namespace: helm-tookit
|
||||||
values: {}
|
values: {}
|
||||||
source:
|
source:
|
||||||
type: git
|
type: git
|
||||||
|
|
Loading…
Reference in New Issue