diff options
-rw-r--r-- | api/resources/write_hosts.py | 14 | ||||
-rw-r--r-- | requirements.txt | 1 | ||||
-rw-r--r-- | tests/opnfv/test_cases/opnfv_yardstick_tc025.yaml | 28 | ||||
-rw-r--r-- | tests/opnfv/test_cases/opnfv_yardstick_tc054.yaml | 30 | ||||
-rw-r--r-- | yardstick/benchmark/core/task.py | 5 | ||||
-rw-r--r-- | yardstick/benchmark/scenarios/availability/monitor/monitor_command.py | 1 |
6 files changed, 52 insertions, 27 deletions
diff --git a/api/resources/write_hosts.py b/api/resources/write_hosts.py index e4b69846b..a3025d3b0 100644 --- a/api/resources/write_hosts.py +++ b/api/resources/write_hosts.py @@ -13,11 +13,19 @@ import json def write_hosts(hosts_ip): - hosts_list = ('\n{} {}'.format(ip, host_name) + + yardstick_flag = "# SUT hosts info for Yardstick" + hosts_list = ('\n{} {} {}'.format(ip, host_name, yardstick_flag) for host_name, ip in hosts_ip.items()) - with open("/etc/hosts", 'a') as f: + + with open("/etc/hosts", 'r') as f: + origin_lines = [line for line in f if yardstick_flag not in line] + + with open("/etc/hosts", 'w') as f: + f.writelines(origin_lines) + f.write(yardstick_flag) f.writelines(hosts_list) - f.write("\n") + if __name__ == "__main__": write_hosts(json.load(sys.stdin)) diff --git a/requirements.txt b/requirements.txt index d03c4377f..d90a9e5e4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -60,7 +60,6 @@ oslo.utils==3.22.0 paramiko==2.1.1 pbr==1.10.0 pep8==1.7.0 -ping==0.2; python_version <= '2.7' pika==0.10.0 positional==1.1.1 prettytable==0.7.2 diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc025.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc025.yaml index a8312876f..a37f83b83 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc025.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc025.yaml @@ -17,7 +17,9 @@ description: > "etc/yardstick/nodes/pod.yaml.ipmi.sample"). {% set file = file or '/etc/yardstick/pod.yaml' %} -{% set jumphost = jumphost or 'node0' %} +{% set jump_host = jump_host or 'node0' %} +{% set attack_host = attack_host or 'node1' %} +{% set monitor_time = monitor_time or 180 %} scenarios: - @@ -25,30 +27,38 @@ scenarios: options: attackers: - fault_type: "bare-metal-down" - host: node1 - jump_host: {{jumphost}} + host: {{attack_host}} + jump_host: {{jump_host}} monitors: - monitor_type: "openstack-cmd" command_name: "openstack image list" - monitor_time: 10 + monitor_time: {{monitor_time}} monitor_number: 3 + sla: + max_outage_time: 5 - monitor_type: "openstack-cmd" command_name: "openstack router list" - monitor_time: 10 + monitor_time: {{monitor_time}} monitor_number: 3 + sla: + max_outage_time: 5 - monitor_type: "openstack-cmd" command_name: "openstack stack list" - monitor_time: 10 + monitor_time: {{monitor_time}} monitor_number: 3 + sla: + max_outage_time: 5 - monitor_type: "openstack-cmd" command_name: "openstack volume list" - monitor_time: 10 + monitor_time: {{monitor_time}} monitor_number: 3 + sla: + max_outage_time: 5 nodes: - node1: node1.LF - node0: node0.LF + {{attack_host}}: {{attack_host}}.LF + {{jump_host}}: {{jump_host}}.LF runner: type: Iteration diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc054.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc054.yaml index c229277f4..417327cb6 100644 --- a/tests/opnfv/test_cases/opnfv_yardstick_tc054.yaml +++ b/tests/opnfv/test_cases/opnfv_yardstick_tc054.yaml @@ -13,11 +13,15 @@ description: > Test case for TC054 :OpenStack VIP Master Node abnormally shutdown High Availability; This test case is written by new scenario-based HA testing framework. +{% set attack_host = attack_host or 'node1' %} +{% set check_host = check_host or 'node2' %} +{% set jump_host = jump_host or 'node0' %} {% set file = file or '/etc/yardstick/pod.yaml' %} {% set vip_management = vip_management or '192.168.0.2' %} {% set vip_public = vip_public or '172.16.0.3' %} {% set vip_router_management = vip_router_management or '192.168.0.1' %} {% set vip_router_public = vip_router_public or '172.16.0.2' %} +{% set monitor_time = monitor_time or 180 %} scenarios: - @@ -26,15 +30,16 @@ scenarios: attackers: - fault_type: "bare-metal-down" - host: node1 + host: {{attack_host}} key: "bare-metal-down" + jump_host: {{jump_host}} monitors: - monitor_type: "openstack-cmd" key: "list-images" command_name: "openstack image list" - monitor_time: 10 + monitor_time: {{monitor_time}} monitor_number: 3 sla: max_outage_time: 5 @@ -43,8 +48,8 @@ scenarios: monitor_type: "general-monitor" monitor_key: "ip-status" key: "vip-mgmt-status" - host: node2 - monitor_time: 10 + host: {{check_host}} + monitor_time: {{monitor_time}} monitor_number: 3 sla: max_outage_time: 5 @@ -55,8 +60,8 @@ scenarios: monitor_type: "general-monitor" monitor_key: "ip-status" key: "vip-routerp-status" - host: node2 - monitor_time: 10 + host: {{check_host}} + monitor_time: {{monitor_time}} monitor_number: 3 sla: max_outage_time: 5 @@ -67,8 +72,8 @@ scenarios: monitor_type: "general-monitor" monitor_key: "ip-status" key: "vip-router-status" - host: node2 - monitor_time: 10 + host: {{check_host}} + monitor_time: {{monitor_time}} monitor_number: 3 sla: max_outage_time: 5 @@ -79,8 +84,8 @@ scenarios: monitor_type: "general-monitor" monitor_key: "ip-status" key: "vip-pub" - host: node2 - monitor_time: 10 + host: {{check_host}} + monitor_time: {{monitor_time}} monitor_number: 3 sla: max_outage_time: 5 @@ -119,8 +124,9 @@ scenarios: index: 6 nodes: - node1: node1.LF - node2: node2.LF + {{jump_host}}: {{jump_host}}.LF + {{attack_host}}: {{attack_host}}.LF + {{check_host}}: {{check_host}}.LF runner: type: Duration duration: 1 diff --git a/yardstick/benchmark/core/task.py b/yardstick/benchmark/core/task.py index 2b10c61b3..703bb6d95 100644 --- a/yardstick/benchmark/core/task.py +++ b/yardstick/benchmark/core/task.py @@ -123,7 +123,7 @@ class Task(object): # pragma: no cover except KeyboardInterrupt: raise except Exception: - LOG.exception('') + LOG.exception("Running test case %s failed!", case_name) testcases[case_name] = {'criteria': 'FAIL', 'tc_data': []} else: testcases[case_name] = {'criteria': 'PASS', 'tc_data': data} @@ -605,7 +605,8 @@ def get_networks_from_nodes(nodes): for node in nodes.values(): if not node: continue - for interface in node['interfaces'].values(): + interfaces = node.get('interfaces', {}) + for interface in interfaces.values(): vld_id = interface.get('vld_id') # mgmt network doesn't have vld_id if not vld_id: diff --git a/yardstick/benchmark/scenarios/availability/monitor/monitor_command.py b/yardstick/benchmark/scenarios/availability/monitor/monitor_command.py index a9488cc30..d0551bf03 100644 --- a/yardstick/benchmark/scenarios/availability/monitor/monitor_command.py +++ b/yardstick/benchmark/scenarios/availability/monitor/monitor_command.py @@ -63,6 +63,7 @@ class MonitorOpenstackCmd(basemonitor.BaseMonitor): def monitor_func(self): exit_status = 0 exit_status, stdout = _execute_shell_command(self.cmd) + LOG.debug("Execute command '%s' and the stdout is:\n%s", self.cmd, stdout) if exit_status: return False return True |