diff --git a/heat/engine/resources/nova_utils.py b/heat/engine/resources/nova_utils.py index 09578325d9..740db39c1a 100644 --- a/heat/engine/resources/nova_utils.py +++ b/heat/engine/resources/nova_utils.py @@ -86,6 +86,7 @@ def get_image_id(nova_client, image_identifier): def get_flavor_id(nova_client, flavor): ''' Get the id for the specified flavor name. + If the specified value is flavor id, just return it. :param nova_client: the nova client to use :param flavor: the name of the flavor to find @@ -98,6 +99,9 @@ def get_flavor_id(nova_client, flavor): if o.name == flavor: flavor_id = o.id break + if o.id == flavor: + flavor_id = o.id + break if flavor_id is None: raise exception.FlavorMissing(flavor_id=flavor) return flavor_id diff --git a/heat/tests/test_nova_utils.py b/heat/tests/test_nova_utils.py index 6c9f04c015..ca3f5559e8 100644 --- a/heat/tests/test_nova_utils.py +++ b/heat/tests/test_nova_utils.py @@ -62,6 +62,8 @@ class NovaUtilsTests(HeatTestCase): self.m.ReplayAll() self.assertEqual(flav_id, nova_utils.get_flavor_id(self.nova_client, flav_name)) + self.assertEqual(flav_id, nova_utils.get_flavor_id(self.nova_client, + flav_id)) self.assertRaises(exception.FlavorMissing, nova_utils.get_flavor_id, self.nova_client, 'noflavor') self.m.VerifyAll()