summaryrefslogtreecommitdiffstats
path: root/tests/unit/benchmark/contexts/test_model.py
diff options
context:
space:
mode:
authorDanielMartinBuckley <daniel.m.buckley@intel.com>2017-04-05 11:20:46 +0100
committerRoss Brattain <ross.b.brattain@intel.com>2017-05-12 21:01:54 +0000
commitd002db9a10fed7cdba2cc43a8c064864250994ce (patch)
tree5cda13ea59ad732c2cd047ebfb0468e6ee425aef /tests/unit/benchmark/contexts/test_model.py
parent344921452e405189b8b5ec0697bf5d1ca88eb8ed (diff)
Create flavor from heat context
JIRA: YARDSTICK-582 Create a customizable flavor via heat context. All heat parameters are configurable including Core Affinity. The default flavor name is XXXX-flavor where XXXX is stackname. Flavor attributes are taken from the heat context file. If a flavor attribute is not used it takes default attribute value. If flavor name is not specified it uses the server name + "-flavor" or stack-name + "-flavor". Compute node specific attributes are configurable via "extra_specs" attribute. See https://docs.openstack.org/admin-guide/compute-flavors.html for details. Change-Id: If4015970b889b0b95bfa8eba9491ebf31e92f2c7 Signed-off-by: DanielMartinBuckley <daniel.m.buckley@intel.com>
Diffstat (limited to 'tests/unit/benchmark/contexts/test_model.py')
-rw-r--r--tests/unit/benchmark/contexts/test_model.py95
1 files changed, 93 insertions, 2 deletions
diff --git a/tests/unit/benchmark/contexts/test_model.py b/tests/unit/benchmark/contexts/test_model.py
index 122f100de..3fb186b9b 100644
--- a/tests/unit/benchmark/contexts/test_model.py
+++ b/tests/unit/benchmark/contexts/test_model.py
@@ -214,6 +214,8 @@ class ServerTestCase(unittest.TestCase):
attrs = {'image': 'some-image', 'flavor': 'some-flavor', 'floating_ip': '192.168.1.10', 'floating_ip_assoc': 'some-vm'}
test_server = model.Server('foo', self.mock_context, attrs)
+ self.mock_context.flavors = ['flavor1', 'flavor2', 'some-flavor']
+
mock_network = mock.Mock()
mock_network.name = 'some-network'
mock_network.stack_name = 'some-network-stack'
@@ -247,7 +249,9 @@ class ServerTestCase(unittest.TestCase):
)
mock_template.add_server.assert_called_with(
- 'some-server', 'some-image', 'some-flavor',
+ 'some-server', 'some-image',
+ flavor='some-flavor',
+ flavors=['flavor1', 'flavor2', 'some-flavor'],
ports=['some-server-some-network-port'],
user=self.mock_context.user,
key_name=self.mock_context.keypair_name,
@@ -267,9 +271,96 @@ class ServerTestCase(unittest.TestCase):
[], 'hints')
mock_template.add_server.assert_called_with(
- 'some-server', 'some-image', 'some-flavor',
+ 'some-server', 'some-image',
+ flavor='some-flavor',
+ flavors=self.mock_context.flavors,
ports=[],
user=self.mock_context.user,
key_name=self.mock_context.keypair_name,
user_data=user_data,
scheduler_hints='hints')
+
+ @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
+ def test__add_instance_plus_flavor(self, mock_template):
+
+ user_data = ''
+ attrs = {
+ 'image': 'some-image', 'flavor': 'flavor1',
+ 'flavors': ['flavor2'], 'user_data': user_data
+ }
+ test_server = model.Server('ServerFlavor-2', self.mock_context, attrs)
+
+ self.mock_context.flavors = ['flavor2']
+ mock_network = mock.Mock()
+ mock_network.configure_mock(name='some-network', stack_name= 'some-network-stack',
+ subnet_stack_name = 'some-network-stack-subnet',
+ provider = 'some-provider')
+
+ test_server._add_instance(mock_template, 'ServerFlavor-2',
+ [mock_network], 'hints')
+
+ mock_template.add_port.assert_called_with(
+ 'ServerFlavor-2-some-network-port',
+ mock_network.stack_name,
+ mock_network.subnet_stack_name,
+ provider=mock_network.provider,
+ sec_group_id=self.mock_context.secgroup_name)
+
+ mock_template.add_server.assert_called_with(
+ 'ServerFlavor-2', 'some-image',
+ flavor='flavor1',
+ flavors=['flavor2'],
+ ports=['ServerFlavor-2-some-network-port'],
+ user=self.mock_context.user,
+ key_name=self.mock_context.keypair_name,
+ user_data=user_data,
+ scheduler_hints='hints')
+
+ @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate')
+ def test__add_instance_misc(self, mock_template):
+
+ user_data = ''
+ attrs = {
+ 'image': 'some-image', 'flavor': 'flavor1',
+ 'flavors': ['flavor2'], 'user_data': user_data
+ }
+ test_server = model.Server('ServerFlavor-3', self.mock_context, attrs)
+
+ self.mock_context.flavors = ['flavor2']
+ self.mock_context.flavor = {'vcpus': 4}
+ mock_network = mock.Mock()
+ mock_network.name = 'some-network'
+ mock_network.stack_name = 'some-network-stack'
+ mock_network.subnet_stack_name = 'some-network-stack-subnet'
+
+ test_server._add_instance(mock_template, 'ServerFlavor-3',
+ [mock_network], 'hints')
+
+
+ mock_template.add_port(
+ 'ServerFlavor-3-some-network-port',
+ mock_network.stack_name,
+ mock_network.subnet_stack_name,
+ sec_group_id=self.mock_context.secgroup_name)
+
+ mock_template.add_flavor(
+ vcpus=4,
+ ram=2048,
+ disk=1)
+
+ mock_template.add_flavor(
+ vcpus=4,
+ ram=2048,
+ disk=1,
+ extra_specs={'cat': 1, 'dog': 2, 'dragon': 1000})
+
+ mock_template.add_server.assert_called_with(
+ 'ServerFlavor-3', 'some-image',
+ flavor='flavor1',
+ flavors=['flavor2'],
+ ports=['ServerFlavor-3-some-network-port'],
+ user=self.mock_context.user,
+ key_name=self.mock_context.keypair_name,
+ user_data=user_data,
+ scheduler_hints='hints')
+