예제 #1
0
    def test_setup(self, mock_get, mock_post):
        mock_post.side_effect = [
            mocked_requests_config_post(),
            mocked_requests_job_post()
        ]
        mock_get.side_effect = [
            mocked_requests_config_get(),
            mocked_requests_job_get()
        ]

        options = {
            "agent_count": 8,
            "public_network": 'ext-net',
            "volume_size": 10,
            "block_sizes": 4096,
            "queue_depths": 4,
            "workload": "rs",
            "StorPerf_ip": "192.168.23.2",
            "query_interval": 0,
            "timeout": 60
        }

        args = {"options": options}

        s = storperf.StorPerf(args, self.ctx)

        s.setup()

        self.assertTrue(s.setup_done)
예제 #2
0
    def test_successful_run(self, mock_post, mock_get, mock_delete):
        options = {
            "agent_count": 8,
            "public_network": 'ext-net',
            "volume_size": 10,
            "block_sizes": 4096,
            "queue_depths": 4,
            "workload": "rs",
            "StorPerf_ip": "192.168.23.2",
            "query_interval": 0,
            "timeout": 60
        }

        args = {"options": options}

        s = storperf.StorPerf(args, self.ctx)
        s.setup_done = True

        sample_output = '{"Status": "Completed",\
         "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}'

        expected_result = jsonutils.loads(sample_output)

        s.run(self.result)

        self.assertEqual(self.result, expected_result)
예제 #3
0
    def test_setup_config_post_failed(self, mock_get, mock_post):
        mock_post.side_effect = mocked_requests_config_post_fail

        args = {"options": {"public_network": "foo"}}

        s = storperf.StorPerf(args, self.ctx)

        self.assertRaises(RuntimeError, s.setup)
예제 #4
0
    def test_initialize_disks_post_failed(self, mock_post, mock_get, _):
        mock_post.side_effect = mocked_requests_initialize_post_fail
        mock_get.side_effect = mocked_requests_job_get

        args = {"options": {"StorPerf_ip": "192.168.23.2"}}

        s = storperf.StorPerf(args, self.ctx)

        self.assertRaises(RuntimeError, s.initialize_disks)
        mock_post.assert_called_once_with(
            'http://192.168.23.2:5000/api/v1.0/initializations', json={})
예제 #5
0
    def test_run_v2_successful(self, mock_post, mock_get):
        mock_post.side_effect = mocked_requests_job_post
        mock_get.side_effect = mocked_requests_job_get

        options = {
            "agent_count": 8,
            "public_network": 'ext-net',
            "volume_size": 10,
            "block_sizes": 4096,
            "queue_depths": 4,
            "workloads": {
                "read_sequential": {
                    "rw": "rs"
                }
            },
            "StorPerf_ip": "192.168.23.2",
            "query_interval": 0,
            "timeout": 60
        }
        expected_post = {
            'metadata': {
                'build_tag': 'latest',
                'test_case': 'opnfv_yardstick_tc074'
            },
            'deadline': 60,
            'block_sizes': 4096,
            'queue_depths': 4,
            'workloads': {
                'read_sequential': {
                    'rw': 'rs'
                }
            },
            'agent_count': 8
        }

        args = {"options": options}

        s = storperf.StorPerf(args, self.ctx)
        s.setup_done = True

        sample_output = '{"Status": "Completed",\
         "_ssd_preconditioning.queue-depth.8.block-size.16384.duration": 6}'

        expected_result = jsonutils.loads(sample_output)

        s.run(self.result)
        mock_post.assert_called_once_with(
            'http://192.168.23.2:5000/api/v2.0/jobs', json=expected_post)

        self.assertEqual(self.result, expected_result)
예제 #6
0
    def test_run_calls_setup(self, mock_setup, mock_post, mock_get, _):
        mock_post.side_effect = mocked_requests_job_post
        mock_get.side_effect = mocked_requests_job_get

        args = {
            "options": {
                'timeout': 60,
            }
        }

        s = storperf.StorPerf(args, self.ctx)

        s.run(self.result)

        mock_setup.assert_called_once()
예제 #7
0
    def test_failed_teardown(self, mock_delete):
        options = {
            "agent_count": 8,
            "public_network": 'ext-net',
            "volume_size": 10,
            "block_sizes": 4096,
            "queue_depths": 4,
            "workload": "rs",
            "StorPerf_ip": "192.168.23.2",
            "query_interval": 10,
            "timeout": 60
        }

        args = {"options": options}

        s = storperf.StorPerf(args, self.ctx)

        self.assertRaises(AssertionError, s.teardown(), self.result)
예제 #8
0
    def test_run_failed(self, mock_post, mock_get, _):
        mock_post.side_effect = mocked_requests_job_post_fail
        mock_get.side_effect = mocked_requests_job_get

        options = {
            "agent_count": 8,
            "public_network": 'ext-net',
            "volume_size": 10,
            "block_sizes": 4096,
            "queue_depths": 4,
            "workloads": {
                "read_sequential": {
                    "rw": "rs"
                }
            },
            "StorPerf_ip": "192.168.23.2",
            "query_interval": 0,
            "timeout": 60
        }
        expected_post = {
            'metadata': {
                'build_tag': 'latest',
                'test_case': 'opnfv_yardstick_tc074'
            },
            'deadline': 60,
            'block_sizes': 4096,
            'queue_depths': 4,
            'workloads': {
                'read_sequential': {
                    'rw': 'rs'
                }
            },
            'agent_count': 8
        }

        args = {"options": options}

        s = storperf.StorPerf(args, self.ctx)
        s.setup_done = True

        self.assertRaises(RuntimeError, s.run, self.ctx)
        mock_post.assert_called_once_with(
            'http://192.168.23.2:5000/api/v2.0/jobs', json=expected_post)
예제 #9
0
    def test_successful_teardown(self, mock_delete):
        options = {
            "agent_count": 8,
            "public_network": 'ext-net',
            "volume_size": 10,
            "block_sizes": 4096,
            "queue_depths": 4,
            "workload": "rs",
            "StorPerf_ip": "192.168.23.2",
            "query_interval": 10,
            "timeout": 60
        }

        args = {"options": options}

        s = storperf.StorPerf(args, self.ctx)

        s.teardown()

        self.assertFalse(s.setup_done)
예제 #10
0
    def test_teardown_request_delete_failed(self, mock_delete):
        mock_delete.side_effect = mocked_requests_delete_failed
        options = {
            "agent_count": 8,
            "public_network": 'ext-net',
            "volume_size": 10,
            "block_sizes": 4096,
            "queue_depths": 4,
            "workload": "rs",
            "StorPerf_ip": "192.168.23.2",
            "query_interval": 10,
            "timeout": 60
        }

        args = {"options": options}

        s = storperf.StorPerf(args, self.ctx)

        self.assertRaises(RuntimeError, s.teardown)
        mock_delete.assert_called_once_with(
            'http://192.168.23.2:5000/api/v1.0/configurations')
예제 #11
0
 def test_query_setup_state_no_payload(self, mock_get):
     mock_get.side_effect = mocked_requests_config_get_no_payload
     args = {"options": {}}
     s = storperf.StorPerf(args, self.ctx)
     result = s._query_setup_state()
     self.assertFalse(result)