From 30e247e585969b29b5a504c0b6bbd23d07ea80c8 Mon Sep 17 00:00:00 2001 From: Ross Brattain Date: Wed, 15 Mar 2017 19:46:19 -0700 Subject: pass user_data to heat template 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 --- tests/unit/benchmark/contexts/test_model.py | 21 +++++++++++++++++++++ yardstick/benchmark/contexts/model.py | 4 ++++ 2 files changed, 25 insertions(+) diff --git a/tests/unit/benchmark/contexts/test_model.py b/tests/unit/benchmark/contexts/test_model.py index a4b7d81ef..a8314aef4 100644 --- a/tests/unit/benchmark/contexts/test_model.py +++ b/tests/unit/benchmark/contexts/test_model.py @@ -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') diff --git a/yardstick/benchmark/contexts/model.py b/yardstick/benchmark/contexts/model.py index 8cf3b621c..039686554 100644 --- a/yardstick/benchmark/contexts/model.py +++ b/yardstick/benchmark/contexts/model.py @@ -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): -- cgit 1.2.3-korg