diff options
author | Clint Byrum <clint@fewbar.com> | 2013-09-18 18:08:08 -0700 |
---|---|---|
committer | Clint Byrum <clint@fewbar.com> | 2013-09-19 13:02:03 -0700 |
commit | 0dbf2810a0ee78658c35e61dc447c5f968226cb9 (patch) | |
tree | 3fbdcde17fd5ceb58b9baf548061306022aa269a | |
parent | b7f0bb6123f75c87e4da51f6bfa7a92a515a898c (diff) |
Add functional tests and examples for merge
merge.py is undocumented and untested, which is undesirable, as it does
not seem to be going away any time soon.
Change-Id: I7e4870e58a32c567e5947b9a48893b8210ad4d65
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 3 | ||||
-rw-r--r-- | README.md | 8 | ||||
-rw-r--r-- | examples/lib.yaml | 11 | ||||
-rw-r--r-- | examples/source.yaml | 15 | ||||
-rw-r--r-- | examples/source_lib_result.yaml | 24 | ||||
-rw-r--r-- | test_merge.bash | 24 |
7 files changed, 86 insertions, 1 deletions
@@ -39,3 +39,5 @@ nosetests.xml *~ *.swp + +doc/_build @@ -6,3 +6,6 @@ notcompute.yaml: $(NOTCOMPUTE) overcloud.yaml: overcloud-source.yaml nova-compute-instance.yaml python merge.py $< > $@.tmp mv $@.tmp $@ + +test: + @bash test_merge.bash @@ -1,4 +1,10 @@ templates ========= -Generic templates to describe multi-host infrastructure, consumable by OpenStack Heat, Crowbar, others.
\ No newline at end of file +Generic templates to describe multi-host infrastructure, consumable by OpenStack Heat, Crowbar, others. + + +merge.py +======== + +The Makefile contains several targets for generated templates, see its contents for all of them. To run functional tests for merge.py, run 'make test'. diff --git a/examples/lib.yaml b/examples/lib.yaml new file mode 100644 index 00000000..e527d83f --- /dev/null +++ b/examples/lib.yaml @@ -0,0 +1,11 @@ +Parameters: + ImportantValue: + Default: a_default + Type: String +Resources: + GenericB: + Type: OS::Nova::Server + Properties: + image: {Ref: BImage} + Metadata: + my_meta: {Ref: ImportantValue} diff --git a/examples/source.yaml b/examples/source.yaml new file mode 100644 index 00000000..89707a7b --- /dev/null +++ b/examples/source.yaml @@ -0,0 +1,15 @@ +Parameters: + SourceImage: + Type: String + Default: my_image +Resources: + A: + Type: OS::Nova::Server + Properties: + image: {Ref: SourceImage} + B: + Type: FileInclude + Path: examples/lib.yaml + SubKey: Resources.GenericB + Parameters: + ImportantValue: {'Fn::Join': [ '', ['one', 'two', 'three']]} diff --git a/examples/source_lib_result.yaml b/examples/source_lib_result.yaml new file mode 100644 index 00000000..a165cabf --- /dev/null +++ b/examples/source_lib_result.yaml @@ -0,0 +1,24 @@ +Description: examples/source.yaml +HeatTemplateFormatVersion: '2012-12-12' +Parameters: + AImage: null + Default: my_image + Type: String +Resources: + A: + Properties: + image: + Ref: AImage + Type: OS::Nova::Server + B: + Metadata: + my_meta: + Fn::Join: + - '' + - - one + - two + - three + Properties: + image: + Ref: BImage + Type: OS::Nova::Server diff --git a/test_merge.bash b/test_merge.bash new file mode 100644 index 00000000..35390aaa --- /dev/null +++ b/test_merge.bash @@ -0,0 +1,24 @@ +#!/bin/bash +set -ue +result="" +cleanup() { + if [ -n "$result" ] ; then + rm -f $result + fi +} +trap cleanup EXIT +result=$(mktemp /tmp/test_merge.XXXXXX) +fail=0 +python merge.py examples/source.yaml > $result +if ! cmp $result examples/source_lib_result.yaml ; then + diff -u $result examples/source_lib_result.yaml + echo + echo FAIL - merge of source.yaml result does not match expected output + echo + fail=1 +else + echo + echo PASS - merge of source.yaml result matches expected output + echo +fi +exit $fail |