The apply test does some really simple string manipulation to generate
puppet manifests based on our site.pp on the fly. Unfortunately the old
code assumed there would be no blank lines within a node{} definition.
This assumption is breaking as we work to decouple the
openstack_project::server contents from within openstack_project
manifests and move that into site.pp.
This is a relatively simple fix where we csplit nodes based on the
previous /^}$/ which ends the last node{} definition instead of
splitting on blank lines. Added some comments to make what the parsing
does a bit more clear.
Change-Id: I2cc7317ed90423d6f923c4303a76e091a0bc2ebb