diff options
Diffstat (limited to 'snaps/openstack/utils')
-rw-r--r-- | snaps/openstack/utils/magnum_utils.py | 30 | ||||
-rw-r--r-- | snaps/openstack/utils/tests/magnum_utils_tests.py | 14 |
2 files changed, 44 insertions, 0 deletions
diff --git a/snaps/openstack/utils/magnum_utils.py b/snaps/openstack/utils/magnum_utils.py index c744666..96ba6d1 100644 --- a/snaps/openstack/utils/magnum_utils.py +++ b/snaps/openstack/utils/magnum_utils.py @@ -35,6 +35,36 @@ def magnum_client(os_creds): session=keystone_utils.keystone_session(os_creds)) +def get_cluster_template(magnum, template_config=None, template_name=None): + """ + Returns the first ClusterTemplate domain object that matches the parameters + :param magnum: the Magnum client + :param template_config: a ClusterTemplateConfig object (optional) + :param template_name: the name of the template to lookup + :return: ClusterTemplate object or None + """ + name = None + if template_config: + name = template_config.name + elif template_name: + name = template_name + + os_templates = magnum.cluster_templates.list() + for os_template in os_templates: + if os_template.name == name: + return __map_os_cluster_template(os_template) + + +def get_cluster_template_by_id(magnum, tmplt_id): + """ + Returns the first ClusterTemplate domain object that matches the parameters + :param magnum: the Magnum client + :param tmplt_id: the template's ID + :return: ClusterTemplate object or None + """ + return __map_os_cluster_template(magnum.cluster_templates.get(tmplt_id)) + + def create_cluster_template(magnum, cluster_template_config): """ Creates a Magnum Cluster Template object in OpenStack diff --git a/snaps/openstack/utils/tests/magnum_utils_tests.py b/snaps/openstack/utils/tests/magnum_utils_tests.py index f6da810..766e3f2 100644 --- a/snaps/openstack/utils/tests/magnum_utils_tests.py +++ b/snaps/openstack/utils/tests/magnum_utils_tests.py @@ -144,6 +144,13 @@ class MagnumUtilsClusterTypeTests(OSComponentTestCase): self.assertTrue( validate_cluster_template(config, self.cluster_template)) + template_by_name = magnum_utils.get_cluster_template( + self.magnum, template_name=config.name) + self.assertEqual(self.cluster_template, template_by_name) + template_by_id = magnum_utils.get_cluster_template_by_id( + self.magnum, self.cluster_template.id) + self.assertEqual(self.cluster_template, template_by_id) + def test_create_cluster_template_all(self): config = ClusterTemplateConfig( name=self.cluster_type_name, @@ -168,6 +175,13 @@ class MagnumUtilsClusterTypeTests(OSComponentTestCase): self.assertTrue( validate_cluster_template(config, self.cluster_template)) + template_by_name = magnum_utils.get_cluster_template( + self.magnum, template_name=config.name) + self.assertEqual(self.cluster_template, template_by_name) + template_by_id = magnum_utils.get_cluster_template_by_id( + self.magnum, self.cluster_template.id) + self.assertEqual(self.cluster_template, template_by_id) + def test_create_cluster_template_bad_image(self): config = ClusterTemplateConfig( name=self.cluster_type_name, |