diff --git a/lib/ansible/modules/network/f5/bigip_iapp_service.py b/lib/ansible/modules/network/f5/bigip_iapp_service.py index 4529000967..5efd2b9cf2 100644 --- a/lib/ansible/modules/network/f5/bigip_iapp_service.py +++ b/lib/ansible/modules/network/f5/bigip_iapp_service.py @@ -289,6 +289,8 @@ class Parameters(AnsibleF5Parameters): return None if self._values['template'].startswith("/" + self.partition): return self._values['template'] + elif self._values['template'].startswith("/"): + return self._values['template'] else: return '/{0}/{1}'.format( self.partition, self._values['template'] diff --git a/test/units/modules/network/f5/test_bigip_iapp_service.py b/test/units/modules/network/f5/test_bigip_iapp_service.py index 2b4358731e..b87b2104ae 100644 --- a/test/units/modules/network/f5/test_bigip_iapp_service.py +++ b/test/units/modules/network/f5/test_bigip_iapp_service.py @@ -197,6 +197,30 @@ class TestParameters(unittest.TestCase): assert p.tables[0]['rows'][0]['row'] == ['12.12.12.12', '80', '0'] assert p.tables[0]['rows'][1]['row'] == ['13.13.13.13', '443', '10'] + def test_module_template_same_partition(self): + args = dict( + template='foo', + partition='bar' + ) + p = Parameters(args) + assert p.template == '/bar/foo' + + def test_module_template_same_partition_full_path(self): + args = dict( + template='/bar/foo', + partition='bar' + ) + p = Parameters(args) + assert p.template == '/bar/foo' + + def test_module_template_different_partition_full_path(self): + args = dict( + template='/Common/foo', + partition='bar' + ) + p = Parameters(args) + assert p.template == '/Common/foo' + @patch('ansible.module_utils.f5_utils.AnsibleF5Client._get_mgmt_root', return_value=True)