aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClint Byrum <clint@fewbar.com>2013-09-18 18:08:08 -0700
committerClint Byrum <clint@fewbar.com>2013-09-19 13:02:03 -0700
commit0dbf2810a0ee78658c35e61dc447c5f968226cb9 (patch)
tree3fbdcde17fd5ceb58b9baf548061306022aa269a
parentb7f0bb6123f75c87e4da51f6bfa7a92a515a898c (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--.gitignore2
-rw-r--r--Makefile3
-rw-r--r--README.md8
-rw-r--r--examples/lib.yaml11
-rw-r--r--examples/source.yaml15
-rw-r--r--examples/source_lib_result.yaml24
-rw-r--r--test_merge.bash24
7 files changed, 86 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index bc15ad26..769ab221 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,3 +39,5 @@ nosetests.xml
*~
*.swp
+
+doc/_build
diff --git a/Makefile b/Makefile
index ad93ff03..534cd0f0 100644
--- a/Makefile
+++ b/Makefile
@@ -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
diff --git a/README.md b/README.md
index 20135527..97cc384e 100644
--- a/README.md
+++ b/README.md
@@ -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