diff --git a/nailgun/nailgun/objects/cluster.py b/nailgun/nailgun/objects/cluster.py index 5874a4c935..e181a7c93e 100644 --- a/nailgun/nailgun/objects/cluster.py +++ b/nailgun/nailgun/objects/cluster.py @@ -47,6 +47,7 @@ from nailgun.policy.merge import NetworkRoleMergePolicy from nailgun.settings import settings from nailgun.utils import AttributesGenerator from nailgun.utils import dict_merge +from nailgun.utils import text_format_safe from nailgun.utils import traverse @@ -363,6 +364,7 @@ class Cluster(NailgunObject): plugin_attrs = traverse( plugin_attrs, + formatter=text_format_safe, formatter_context={'cluster': instance, 'settings': settings}, keywords={'generator': AttributesGenerator.evaluate} ) diff --git a/nailgun/nailgun/test/unit/test_objects.py b/nailgun/nailgun/test/unit/test_objects.py index 0c00ffe21c..17861b8379 100644 --- a/nailgun/nailgun/test/unit/test_objects.py +++ b/nailgun/nailgun/test/unit/test_objects.py @@ -1679,6 +1679,20 @@ class TestClusterObject(BaseTestCase): updated_attributes['editable']['test_plugin'] ['plugin_name_text']['value']) + def test_get_attributes_with_plugin(self): + cluster = self.env.create_cluster(api=False) + self.env.create_plugin( + name='test_plugin', + version='1.0.0', + package_version='4.0.0', + cluster=cluster, + attributes_metadata=self.env.get_default_plugin_env_config( + value='{}') + ) + attr = objects.Cluster.get_attributes(cluster, True) + plugin_attrs = attr.editable['test_plugin']['metadata']['versions'][0] + self.assertEqual('{}', plugin_attrs['plugin_name_text']['value']) + class TestClusterObjectVirtRoles(BaseTestCase):