]> review.fuel-infra Code Review - openstack-build/heat-build.git/commitdiff
Implement NetworkInterfaces instance property.
authorSteve Baker <sbaker@redhat.com>
Mon, 11 Feb 2013 01:31:09 +0000 (14:31 +1300)
committerSteve Baker <sbaker@redhat.com>
Mon, 11 Feb 2013 03:36:52 +0000 (16:36 +1300)
This accepts a list of strings, where each string will be a Ref
to either a OS::Quantum::Port or a (yet to be implemented)
AWS::EC2::NetworkInterface.

This fixes bug 1096013

Change-Id: Ic8aecf8d59395edcf111b3a778e79762af0e50d4

heat/engine/resources/instance.py
heat/tests/test_engine_service.py
heat/tests/test_instance.py
heat/tests/test_loadbalancer.py

index ef38f2b3d01272af8e1ca47659e1ddbce0ebc739..7145fbc4729bd7d740f0da266a0e6a23695d9e8b 100644 (file)
@@ -89,6 +89,7 @@ class Instance(resource.Resource):
                          'SecurityGroups': {'Type': 'List'},
                          'SecurityGroupIds': {'Type': 'List',
                                               'Implemented': False},
+                         'NetworkInterfaces': {'Type': 'List'},
                          'SourceDestCheck': {'Type': 'Boolean',
                                              'Implemented': False},
                          'SubnetId': {'Type': 'String',
@@ -258,6 +259,13 @@ class Instance(resource.Resource):
         else:
             scheduler_hints = None
 
+        nics = []
+        if self.properties['NetworkInterfaces']:
+            for nic in self.properties['NetworkInterfaces']:
+                nics.append({'port-id': nic})
+        else:
+            nics = None
+
         server_userdata = self._build_userdata(userdata)
         server = None
         try:
@@ -269,7 +277,8 @@ class Instance(resource.Resource):
                 security_groups=security_groups,
                 userdata=server_userdata,
                 meta=tags,
-                scheduler_hints=scheduler_hints)
+                scheduler_hints=scheduler_hints,
+                nics=nics)
         finally:
             # Avoid a race condition where the thread could be cancelled
             # before the ID is stored
index 45ca0632528f40ee1210afe5941871df3411f078..a9fcb861af0ff05d90c457603d581833f0eeb179 100644 (file)
@@ -76,7 +76,7 @@ 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).AndReturn(fc.servers.list()[-1])
+                      meta=None, nics=None).AndReturn(fc.servers.list()[-1])
     return fc
 
 
index 2a59558d3e761d3a684e2eb03fbb0e722ce080a4..8c168e78e2d2f16bec997cd26bb38d84c89e64dc 100644 (file)
@@ -72,7 +72,7 @@ class instancesTest(unittest.TestCase):
             name='%s.%s' % (stack_name, instance.name),
             security_groups=None,
             userdata=server_userdata, scheduler_hints=None,
-            meta=None).AndReturn(self.fc.servers.list()[1])
+            meta=None, nics=None).AndReturn(self.fc.servers.list()[1])
         self.m.ReplayAll()
 
         self.assertEqual(instance.create(), None)
@@ -112,7 +112,7 @@ class instancesTest(unittest.TestCase):
             name='%s.%s' % (stack_name, instance.name),
             security_groups=None,
             userdata=server_userdata, scheduler_hints=None,
-            meta=None).AndReturn(self.fc.servers.list()[1])
+            meta=None, nics=None).AndReturn(self.fc.servers.list()[1])
         self.m.ReplayAll()
 
         self.assertEqual(instance.create(), None)
@@ -173,7 +173,7 @@ class instancesTest(unittest.TestCase):
             name='%s.%s' % (stack_name, instance.name),
             security_groups=None,
             userdata=server_userdata, scheduler_hints=None,
-            meta=None).AndReturn(self.fc.servers.list()[1])
+            meta=None, nics=None).AndReturn(self.fc.servers.list()[1])
         self.m.ReplayAll()
 
         self.assertEqual(instance.create(), None)
index 9676287f2e0b8d10e34915071b8fd39a2fa3254c..82b689c8e84671be86601dda9f3fd77454757528 100644 (file)
@@ -88,7 +88,7 @@ class LoadBalancerTest(unittest.TestCase):
         instance.Instance.nova().MultipleTimes().AndReturn(self.fc)
         self.fc.servers.create(
             flavor=2, image=745, key_name='test',
-            meta=None, name=u'test_stack.LoadBalancer.LB_instance',
+            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])
         #stack.Stack.create_with_template(mox.IgnoreArg()).AndReturn(None)