pass user_data to heat template 23/30623/2
authorRoss Brattain <ross.b.brattain@intel.com>
Thu, 16 Mar 2017 02:46:19 +0000 (19:46 -0700)
committerRoss Brattain <ross.b.brattain@intel.com>
Thu, 16 Mar 2017 02:51:14 +0000 (19:51 -0700)
We had code to support adding user_data but the
Server model was not connected.

The string formatting of the user_data is left
as an exercise for the reader.

Change-Id: I298657b93de67e19436bca616b119df636dacce2
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
tests/unit/benchmark/contexts/test_model.py
yardstick/benchmark/contexts/model.py

index a4b7d81..a8314ae 100644 (file)
@@ -230,4 +230,25 @@ class ServerTestCase(unittest.TestCase):
             ports=['some-server-some-network-port'],
             user=self.mock_context.user,
             key_name=self.mock_context.keypair_name,
+            user_data='',
+            scheduler_hints='hints')
+
+    @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
+    def test__add_instance_with_user_data(self, mock_template):
+        user_data = "USER_DATA"
+        attrs = {
+            'image': 'some-image', 'flavor': 'some-flavor',
+            'user_data': user_data,
+        }
+        test_server = model.Server('foo', self.mock_context, attrs)
+
+        test_server._add_instance(mock_template, 'some-server',
+                                  [], 'hints')
+
+        mock_template.add_server.assert_called_with(
+            'some-server', 'some-image', 'some-flavor',
+            ports=[],
+            user=self.mock_context.user,
+            key_name=self.mock_context.keypair_name,
+            user_data=user_data,
             scheduler_hints='hints')
index 8cf3b62..0396865 100644 (file)
@@ -148,6 +148,7 @@ class Server(Object):     # pragma: no cover
         self.context = context
         self.public_ip = None
         self.private_ip = None
+        self.user_data = ''
 
         if attrs is None:
             attrs = {}
@@ -200,6 +201,8 @@ class Server(Object):     # pragma: no cover
         if "flavor" in attrs:
             self._flavor = attrs["flavor"]
 
+        self.user_data = attrs.get('user_data', '')
+
         Server.list.append(self)
 
     @property
@@ -249,6 +252,7 @@ class Server(Object):     # pragma: no cover
                             ports=port_name_list,
                             user=self.user,
                             key_name=self.keypair_name,
+                            user_data=self.user_data,
                             scheduler_hints=scheduler_hints)
 
     def add_to_template(self, template, networks, scheduler_hints=None):