diff options
author | chenjiankun <chenjiankun1@huawei.com> | 2017-04-17 15:49:17 +0000 |
---|---|---|
committer | chenjiankun <chenjiankun1@huawei.com> | 2017-07-26 10:33:59 +0000 |
commit | fd0a88140f7114ef90fabdfb5436cff42ec0cd2c (patch) | |
tree | 23ed244b2cc9840b8d5b5c41dedd6551df563dab /yardstick/benchmark/scenarios/lib/check_numa_info.py | |
parent | 15d807c22f33fab8e1f9b61e1d0c041a8144ee89 (diff) |
Test Case: OPNFV_YARDSTICK_TC023: VM availability during live migration
JIRA: YARDSTICK-174
This live migration test case is based on share storage, default share
storage is enabled.
This test case will do some config work. And do live migration and
calculate the migration time and downtime.
Change-Id: I6601601edebdd0ac6434ba632b1eba9e9bd4fda0
Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
Diffstat (limited to 'yardstick/benchmark/scenarios/lib/check_numa_info.py')
-rw-r--r-- | yardstick/benchmark/scenarios/lib/check_numa_info.py | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/yardstick/benchmark/scenarios/lib/check_numa_info.py b/yardstick/benchmark/scenarios/lib/check_numa_info.py new file mode 100644 index 000000000..59a47547e --- /dev/null +++ b/yardstick/benchmark/scenarios/lib/check_numa_info.py @@ -0,0 +1,61 @@ +# ############################################################################ +# 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 +# ############################################################################ + +from __future__ import print_function +from __future__ import absolute_import + +import logging + +from yardstick.benchmark.scenarios import base + +LOG = logging.getLogger(__name__) + + +class CheckNumaInfo(base.Scenario): + """ + Execute a live migration for two hosts + + """ + + __scenario_type__ = "CheckNumaInfo" + + def __init__(self, scenario_cfg, context_cfg): + self.scenario_cfg = scenario_cfg + self.context_cfg = context_cfg + + self.options = self.scenario_cfg.get('options', {}) + + self.cpu_set = self.options.get('cpu_set', '1,2,3,4,5,6') + + def run(self, result): + info1 = self.options.get('info1') + info2 = self.options.get('info2') + LOG.debug('Origin numa info: %s', info1) + LOG.debug('Current numa info: %s', info2) + status = self._check_vm2_status(info1, info2) + + keys = self.scenario_cfg.get('output', '').split() + values = [status] + return self._push_to_outputs(keys, values) + + def _check_vm2_status(self, info1, info2): + if len(info1['pinning']) != 1 or len(info2['pinning']) != 1: + return False + + for i in info1['vcpupin']: + for j in i['cpuset'].split(','): + if j not in self.cpu_set.split(','): + return False + + for i in info2['vcpupin']: + for j in i['cpuset'].split(','): + if j not in self.cpu_set.split(','): + return False + + return True |