]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Make AvailabilityZone parameter available to nova create
authorJeff Peeler <jpeeler@redhat.com>
Fri, 15 Feb 2013 15:57:46 +0000 (10:57 -0500)
committerJeff Peeler <jpeeler@redhat.com>
Mon, 18 Feb 2013 17:38:05 +0000 (12:38 -0500)
Looks for the AvailabilityZone property in the instance's
resource section. For example:

"Resources" : {
  "Properties": {
    "AvailabilityZone" : "nova",
...

Fixes bug #1096006

Change-Id: I3333b5f909b27e53f6985713de58dd30efc1a80a
Signed-off-by: Jeff Peeler <jpeeler@redhat.com>
heat/engine/resources/instance.py
heat/tests/test_engine_service.py
heat/tests/test_instance.py
heat/tests/test_loadbalancer.py

index c44f512813ca705960ca98aa2b7e3e6c771d8dcd..1b626bcba6cd4ffe74d141ffeb1a8ef247fbb9c3 100644 (file)
@@ -72,8 +72,7 @@ class Instance(resource.Resource):
                                           'Required': True},
                          'KeyName': {'Type': 'String',
                                      'Required': True},
-                         'AvailabilityZone': {'Type': 'String',
-                                              'Default': 'nova'},
+                         'AvailabilityZone': {'Type': 'String'},
                          'DisableApiTermination': {'Type': 'String',
                                                    'Implemented': False},
                          'KernelId': {'Type': 'String',
@@ -225,6 +224,7 @@ class Instance(resource.Resource):
         userdata = self.properties['UserData'] or ''
         flavor = self.properties['InstanceType']
         key_name = self.properties['KeyName']
+        availability_zone = self.properties['AvailabilityZone']
 
         keypairs = [k.name for k in self.nova().keypairs.list()]
         if key_name not in keypairs:
@@ -279,7 +279,8 @@ class Instance(resource.Resource):
                 userdata=server_userdata,
                 meta=tags,
                 scheduler_hints=scheduler_hints,
-                nics=nics)
+                nics=nics,
+                availability_zone=availability_zone)
         finally:
             # Avoid a race condition where the thread could be cancelled
             # before the ID is stored
index a9fcb861af0ff05d90c457603d581833f0eeb179..35816ea55fcfe1a84ac6a8ac6632bb23a86bb346 100644 (file)
@@ -76,7 +76,9 @@ def setup_mocks(mocks, stack):
     fc.servers.create(image=744, flavor=3, key_name='test',
                       name='%s.WebServer' % stack.name, security_groups=None,
                       userdata=server_userdata, scheduler_hints=None,
-                      meta=None, nics=None).AndReturn(fc.servers.list()[-1])
+                      meta=None, nics=None,
+                      availability_zone=None).AndReturn(
+                          fc.servers.list()[-1])
     return fc
 
 
index 8c168e78e2d2f16bec997cd26bb38d84c89e64dc..734478edaf06a6e950a334e882983c1daf0a9b06 100644 (file)
@@ -72,7 +72,8 @@ class instancesTest(unittest.TestCase):
             name='%s.%s' % (stack_name, instance.name),
             security_groups=None,
             userdata=server_userdata, scheduler_hints=None,
-            meta=None, nics=None).AndReturn(self.fc.servers.list()[1])
+            meta=None, nics=None, availability_zone=None).AndReturn(
+                self.fc.servers.list()[1])
         self.m.ReplayAll()
 
         self.assertEqual(instance.create(), None)
@@ -112,7 +113,8 @@ class instancesTest(unittest.TestCase):
             name='%s.%s' % (stack_name, instance.name),
             security_groups=None,
             userdata=server_userdata, scheduler_hints=None,
-            meta=None, nics=None).AndReturn(self.fc.servers.list()[1])
+            meta=None, nics=None, availability_zone=None).AndReturn(
+                self.fc.servers.list()[1])
         self.m.ReplayAll()
 
         self.assertEqual(instance.create(), None)
@@ -131,8 +133,6 @@ class instancesTest(unittest.TestCase):
         self.assertEqual(instance.state, instance.DELETE_COMPLETE)
         self.m.VerifyAll()
 
-        AZ = instance.FnGetAtt('AvailabilityZone')
-        self.assertEqual(AZ, 'nova')
         private_ip = instance.FnGetAtt('PublicIp')
         self.assertEqual(private_ip, '4.5.6.7')
         private_ip = instance.FnGetAtt('PrivateIp')
@@ -173,7 +173,8 @@ class instancesTest(unittest.TestCase):
             name='%s.%s' % (stack_name, instance.name),
             security_groups=None,
             userdata=server_userdata, scheduler_hints=None,
-            meta=None, nics=None).AndReturn(self.fc.servers.list()[1])
+            meta=None, nics=None, availability_zone=None).AndReturn(
+                self.fc.servers.list()[1])
         self.m.ReplayAll()
 
         self.assertEqual(instance.create(), None)
index 82b689c8e84671be86601dda9f3fd77454757528..cfce3028cfbd728c50445269c623dab8725b855f 100644 (file)
@@ -90,7 +90,8 @@ class LoadBalancerTest(unittest.TestCase):
             flavor=2, image=745, key_name='test',
             meta=None, nics=None, name=u'test_stack.LoadBalancer.LB_instance',
             scheduler_hints=None, userdata=mox.IgnoreArg(),
-            security_groups=None).AndReturn(self.fc.servers.list()[1])
+            security_groups=None, availability_zone=None).AndReturn(
+                self.fc.servers.list()[1])
         #stack.Stack.create_with_template(mox.IgnoreArg()).AndReturn(None)
         Metadata.__set__(mox.IgnoreArg(),
                          mox.IgnoreArg()).AndReturn(None)