From 18e1f4432adea4e115a82fac96238970389ab07e Mon Sep 17 00:00:00 2001 From: JingLu5 Date: Fri, 11 Aug 2017 02:58:20 +0000 Subject: Add common openstack opertation scenarios: image & volume JIRA: YARDSTICK-781 This patch adds some common openstack opertation scenarios Change-Id: I3de7dbb30eaebac4feebcf07dd6a0d2bdcf428d9 Signed-off-by: JingLu5 --- .../benchmark/scenarios/lib/test_create_image.py | 41 ++++++++++++++++++++++ .../benchmark/scenarios/lib/test_create_volume.py | 40 +++++++++++++++++++++ .../benchmark/scenarios/lib/test_delete_image.py | 36 +++++++++++++++++++ .../benchmark/scenarios/lib/test_delete_server.py | 35 ++++++++++++++++++ 4 files changed, 152 insertions(+) create mode 100644 tests/unit/benchmark/scenarios/lib/test_create_image.py create mode 100644 tests/unit/benchmark/scenarios/lib/test_create_volume.py create mode 100644 tests/unit/benchmark/scenarios/lib/test_delete_image.py create mode 100644 tests/unit/benchmark/scenarios/lib/test_delete_server.py (limited to 'tests/unit/benchmark/scenarios') diff --git a/tests/unit/benchmark/scenarios/lib/test_create_image.py b/tests/unit/benchmark/scenarios/lib/test_create_image.py new file mode 100644 index 000000000..c213ceba0 --- /dev/null +++ b/tests/unit/benchmark/scenarios/lib/test_create_image.py @@ -0,0 +1,41 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +import unittest +import mock + +from yardstick.benchmark.scenarios.lib.create_image import CreateImage + + +class CreateImageTestCase(unittest.TestCase): + + @mock.patch('yardstick.common.openstack_utils.create_image') + @mock.patch('yardstick.common.openstack_utils.get_glance_client') + def test_create_image(self, mock_get_glance_client, mock_create_image): + options = { + 'image_name': 'yardstick_test_image_01', + 'disk_format': 'qcow2', + 'container_format': 'bare', + 'min_disk': '1', + 'min_ram': '512', + 'protected': 'False', + 'tags': '["yardstick automatic test image"]', + 'file_path': '/home/opnfv/images/cirros-0.3.5-x86_64-disk.img' + } + args = {"options": options} + obj = CreateImage(args, {}) + obj.run({}) + self.assertTrue(mock_create_image.called) + + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/unit/benchmark/scenarios/lib/test_create_volume.py b/tests/unit/benchmark/scenarios/lib/test_create_volume.py new file mode 100644 index 000000000..fc633139e --- /dev/null +++ b/tests/unit/benchmark/scenarios/lib/test_create_volume.py @@ -0,0 +1,40 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +import unittest +import mock + +from yardstick.benchmark.scenarios.lib.create_volume import CreateVolume + + +class CreateVolumeTestCase(unittest.TestCase): + + @mock.patch('yardstick.common.openstack_utils.create_volume') + @mock.patch('yardstick.common.openstack_utils.get_image_id') + @mock.patch('yardstick.common.openstack_utils.get_cinder_client') + @mock.patch('yardstick.common.openstack_utils.get_glance_client') + def test_create_volume(self, mock_get_glance_client, mock_get_cinder_client, mock_image_id, mock_create_volume): + options = { + 'volume_name': 'yardstick_test_volume_01', + 'size': '256', + 'image': 'cirros-0.3.5' + } + args = {"options": options} + obj = CreateVolume(args, {}) + obj.run({}) + self.assertTrue(mock_create_volume.called) + self.assertTrue(mock_image_id.called) + self.assertTrue(mock_get_glance_client.called) + self.assertTrue(mock_get_cinder_client.called) + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_image.py b/tests/unit/benchmark/scenarios/lib/test_delete_image.py new file mode 100644 index 000000000..2bbf14d16 --- /dev/null +++ b/tests/unit/benchmark/scenarios/lib/test_delete_image.py @@ -0,0 +1,36 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +import unittest +import mock + +from yardstick.benchmark.scenarios.lib.delete_image import DeleteImage + + +class DeleteImageTestCase(unittest.TestCase): + + @mock.patch('yardstick.common.openstack_utils.delete_image') + @mock.patch('yardstick.common.openstack_utils.get_image_id') + @mock.patch('yardstick.common.openstack_utils.get_glance_client') + def test_delete_image(self, mock_get_glance_client, mock_image_id, mock_delete_image): + options = { + 'image_name': 'yardstick_test_image_01' + } + args = {"options": options} + obj = DeleteImage(args, {}) + obj.run({}) + self.assertTrue(mock_delete_image.called) + self.assertTrue(mock_image_id.called) + self.assertTrue(mock_get_glance_client.called) + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/unit/benchmark/scenarios/lib/test_delete_server.py b/tests/unit/benchmark/scenarios/lib/test_delete_server.py new file mode 100644 index 000000000..622ead5ac --- /dev/null +++ b/tests/unit/benchmark/scenarios/lib/test_delete_server.py @@ -0,0 +1,35 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +import unittest +import mock + +from yardstick.benchmark.scenarios.lib.delete_server import DeleteServer + + +class DeleteServerTestCase(unittest.TestCase): + + @mock.patch('yardstick.common.openstack_utils.delete_instance') + @mock.patch('yardstick.common.openstack_utils.get_nova_client') + def test_delete_server(self, mock_get_nova_client, mock_delete_instance): + options = { + 'server_id': '1234-4567-0000' + } + args = {"options": options} + obj = DeleteServer(args, {}) + obj.run({}) + self.assertTrue(mock_get_nova_client.called) + self.assertTrue(mock_delete_instance.called) + + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() -- cgit 1.2.3-korg