diff --git a/muranoagent/executors/puppet/__init__.py b/muranoagent/executors/puppet/__init__.py index d307152d..e468fdc4 100644 --- a/muranoagent/executors/puppet/__init__.py +++ b/muranoagent/executors/puppet/__init__.py @@ -86,8 +86,10 @@ class PuppetExecutor(chef_puppet_executor_base.ChefPuppetExecutorBase): def _create_manifest(self, module_name, module_recipe): - return "node 'default' { class { " + module_name + '::' +\ - module_recipe + ':}}' + if len(module_recipe) == 0: + return "node 'default' {{ class {{ {0}:}}}}".format(module_name) + return "node 'default' {{ class {{ {0}::{1}:}}}}".\ + format(module_name, module_recipe) def _create_hiera_data(self, cookbook_name, recipe_attributes): diff --git a/muranoagent/tests/unit/executors/test_puppet.py b/muranoagent/tests/unit/executors/test_puppet.py index 56b36638..2808fa13 100644 --- a/muranoagent/tests/unit/executors/test_puppet.py +++ b/muranoagent/tests/unit/executors/test_puppet.py @@ -33,6 +33,10 @@ class TestPuppetExecutor(base.MuranoAgentTestCase, fixtures.TestWithFixtures): node = self.puppet_executor._create_manifest('cookbook', 'recipe') self.assertEqual(node, self.get_manifest('cookbook', 'recipe')) + def test_create_manifest_norecipe(self): + node = self.puppet_executor._create_manifest('cookbook', '') + self.assertEqual(node, self.get_manifest_norecipe('cookbook')) + def test_create_hierdata(self): atts = { 'att1': 'value1', @@ -126,4 +130,8 @@ class TestPuppetExecutor(base.MuranoAgentTestCase, fixtures.TestWithFixtures): def get_manifest(self, cookbook, recipe): return "node \'default\' { " \ - "class { " + cookbook + '::' + recipe + ':}}' + "class { " + cookbook + '::' + recipe + ':}}' + + def get_manifest_norecipe(self, cookbook): + return "node \'default\' { " \ + "class { " + cookbook + ':}}'