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
This commit is contained in:
parent
b7f0bb6123
commit
0dbf2810a0
2
.gitignore
vendored
2
.gitignore
vendored
@ -39,3 +39,5 @@ nosetests.xml
|
|||||||
|
|
||||||
*~
|
*~
|
||||||
*.swp
|
*.swp
|
||||||
|
|
||||||
|
doc/_build
|
||||||
|
3
Makefile
3
Makefile
@ -6,3 +6,6 @@ notcompute.yaml: $(NOTCOMPUTE)
|
|||||||
overcloud.yaml: overcloud-source.yaml nova-compute-instance.yaml
|
overcloud.yaml: overcloud-source.yaml nova-compute-instance.yaml
|
||||||
python merge.py $< > $@.tmp
|
python merge.py $< > $@.tmp
|
||||||
mv $@.tmp $@
|
mv $@.tmp $@
|
||||||
|
|
||||||
|
test:
|
||||||
|
@bash test_merge.bash
|
||||||
|
@ -1,4 +1,10 @@
|
|||||||
templates
|
templates
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Generic templates to describe multi-host infrastructure, consumable by OpenStack Heat, Crowbar, others.
|
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'.
|
||||||
|
11
examples/lib.yaml
Normal file
11
examples/lib.yaml
Normal file
@ -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}
|
15
examples/source.yaml
Normal file
15
examples/source.yaml
Normal file
@ -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']]}
|
24
examples/source_lib_result.yaml
Normal file
24
examples/source_lib_result.yaml
Normal file
@ -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
|
24
test_merge.bash
Normal file
24
test_merge.bash
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user