Be stricter about allowed missing substitutions

Change-Id: Idb36c3521d878e72c5afd158e91841bea6e58ec9
This commit is contained in:
Mark Burnett 2018-02-27 16:33:53 -06:00
parent 86c3c11ba4
commit cfa3dffc5c
3 changed files with 16 additions and 7 deletions

View File

@ -31,7 +31,10 @@ def build_all(*, config_files, output_dir, validators):
debug = _debug()
try:
c = config.Configuration.from_streams(
debug=debug, streams=config_files)
debug=debug,
substitute=True,
allow_missing_substitutions=False,
streams=config_files)
b = builder.Builder(c, validators=validators)
b.build_all(output_dir=output_dir)
except exceptions.PromenadeException as e:
@ -52,7 +55,11 @@ def genereate_certs(*, config_files, output_dir):
debug = _debug()
try:
c = config.Configuration.from_streams(
debug=debug, streams=config_files, substitute=True, validate=False)
debug=debug,
streams=config_files,
substitute=True,
allow_missing_substitutions=True,
validate=False)
g = generator.Generator(c)
g.generate(output_dir)
except exceptions.PromenadeException as e:

View File

@ -18,6 +18,7 @@ class Configuration:
documents,
debug=False,
substitute=True,
allow_missing_substitutions=True,
validate=True):
LOG.info("Parsing document schemas.")
schema_set = validation.load_schemas_from_docs(documents)
@ -29,12 +30,12 @@ class Configuration:
deckhand_eng = layering.DocumentLayering(
documents,
substitution_sources=documents,
fail_on_missing_sub_src=False)
fail_on_missing_sub_src=not allow_missing_substitutions)
documents = [dict(d) for d in deckhand_eng.render()]
except dh_errors.DeckhandException as e:
LOG.exception(str(e))
LOG.error('An unknown Deckhand exception occurred while trying'
' to render documents.')
LOG.exception(
'An unknown Deckhand exception occurred while trying'
' to render documents.')
raise exceptions.DeckhandException(str(e))
LOG.info("Deckhand engine returned %d documents." % len(documents))

View File

@ -43,7 +43,8 @@ class JoinScriptsResource(BaseResource):
join_ip = _get_join_ip()
try:
config = Configuration.from_design_ref(design_ref)
config = Configuration.from_design_ref(
design_ref, allow_missing_substitutions=False)
except exceptions.DeckhandException as e:
raise falcon.HTTPInternalServerError(description=str(e))