From c259d66569f850352b8d0aefe6e514c7c1e46109 Mon Sep 17 00:00:00 2001 From: Tatiana Ovchinnikova Date: Mon, 14 Mar 2016 12:31:49 +0300 Subject: [PATCH] Horizon support for Heat template versions This patch set adds "template_version_list" and "template_function_list" methods. Partially implements blueprint: heat-template-versions Change-Id: Id9718bb5d1c2b70664a9c27c67e91436e5489dd6 --- openstack_dashboard/api/heat.py | 8 +++++ .../test/api_tests/heat_tests.py | 27 ++++++++++++++ .../test/test_data/heat_data.py | 35 +++++++++++++++++++ 3 files changed, 70 insertions(+) diff --git a/openstack_dashboard/api/heat.py b/openstack_dashboard/api/heat.py index 9482a2d1de..12ace3e67c 100644 --- a/openstack_dashboard/api/heat.py +++ b/openstack_dashboard/api/heat.py @@ -232,3 +232,11 @@ def resource_type_get(request, resource_type): def service_list(request): return heatclient(request).services.list() + + +def template_version_list(request): + return heatclient(request).template_versions.list() + + +def template_function_list(request, template_version): + return heatclient(request).template_versions.get(template_version) diff --git a/openstack_dashboard/test/api_tests/heat_tests.py b/openstack_dashboard/test/api_tests/heat_tests.py index 758433090d..c688efe133 100644 --- a/openstack_dashboard/test/api_tests/heat_tests.py +++ b/openstack_dashboard/test/api_tests/heat_tests.py @@ -329,3 +329,30 @@ class HeatApiTests(test.APITestCase): api.heat.get_template_files(template_data=tmpl)[0] except exceptions.GetFileError: self.assertRaises(exceptions.GetFileError) + + def test_template_version_list(self): + api_template_versions = self.template_versions.list() + + heatclient = self.stub_heatclient() + heatclient.template_versions = self.mox.CreateMockAnything() + heatclient.template_versions.list().AndReturn(api_template_versions) + self.mox.ReplayAll() + + template_versions = api.heat.template_version_list(self.request) + + self.assertItemsEqual(template_versions, api_template_versions) + + def test_template_function_list(self): + template_version = self.template_versions.first().version + api_template_functions = self.template_functions.list() + + heatclient = self.stub_heatclient() + heatclient.template_versions = self.mox.CreateMockAnything() + heatclient.template_versions.get( + template_version).AndReturn(api_template_functions) + self.mox.ReplayAll() + + template_functions = api.heat.template_function_list( + self.request, template_version) + + self.assertItemsEqual(template_functions, api_template_functions) diff --git a/openstack_dashboard/test/test_data/heat_data.py b/openstack_dashboard/test/test_data/heat_data.py index 1914d80ec0..1895e986d1 100644 --- a/openstack_dashboard/test/test_data/heat_data.py +++ b/openstack_dashboard/test/test_data/heat_data.py @@ -16,6 +16,7 @@ from heatclient.v1 import resource_types from heatclient.v1 import resources from heatclient.v1 import services from heatclient.v1 import stacks +from heatclient.v1 import template_versions from openstack_dashboard.test.test_data import utils @@ -363,6 +364,8 @@ def data(TEST): TEST.resource_types = utils.TestDataContainer() TEST.heat_resources = utils.TestDataContainer() TEST.heat_services = utils.TestDataContainer() + TEST.template_versions = utils.TestDataContainer() + TEST.template_functions = utils.TestDataContainer() # Services service_1 = services.Service(services.ServiceManager(None), { @@ -586,3 +589,35 @@ def data(TEST): }) TEST.heat_resources.add(resource_1) + + # Template versions + template_version_1 = template_versions.TemplateVersion( + template_versions.TemplateVersionManager(None), { + "version": "HeatTemplateFormatVersion.2012-12-12", + "type": "cfn" + }) + + template_version_2 = template_versions.TemplateVersion( + template_versions.TemplateVersionManager(None), { + "version": "heat_template_version.2013-05-23", + "type": "hot" + }) + + TEST.template_versions.add(template_version_1) + TEST.template_versions.add(template_version_2) + + # Template functions + template_function_1 = template_versions.TemplateVersion( + template_versions.TemplateVersionManager(None), { + "functions": "Fn::GetAZs", + "description": "A function for retrieving the availability zones." + }) + + template_function_2 = template_versions.TemplateVersion( + template_versions.TemplateVersionManager(None), { + "functions": "Fn::Join", + "description": "A function for joining strings." + }) + + TEST.template_functions.add(template_function_1) + TEST.template_functions.add(template_function_2)