aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc056.yaml81
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc057.yaml179
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc058.yaml111
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_network.py39
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_port.py36
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_router.py39
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_sec_group.py39
-rw-r--r--tests/unit/benchmark/scenarios/lib/test_create_subnet.py41
8 files changed, 565 insertions, 0 deletions
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc056.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc056.yaml
new file mode 100644
index 000000000..7f1dc1010
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc056.yaml
@@ -0,0 +1,81 @@
+##############################################################################
+# Copyright (c) 2017 14_ykl@tongji.edu.cn 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
+##############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Test case for TC056 :OpenStack Controller Messaging Queue Service High
+ Availability.
+
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set attack_host = attack_host or 'node1' %}
+{% set monitor_time = monitor_time or 10 %}
+{% set monitor_number = monitor_number or 3 %}
+
+scenarios:
+-
+ type: ServiceHA
+ options:
+ attackers:
+ - fault_type: "kill-process"
+ process_name: "rabbitmq-server"
+ host: {{attack_host}}
+
+ monitors:
+ - monitor_type: "openstack-cmd"
+ command_name: "openstack image list"
+ monitor_time: {{monitor_time}}
+ monitor_number: {{monitor_number}}
+ sla:
+ max_outage_time: 5
+
+ - monitor_type: "openstack-cmd"
+ command_name: "openstack network list"
+ monitor_time: {{monitor_time}}
+ monitor_number: {{monitor_number}}
+ sla:
+ max_outage_time: 5
+
+ - monitor_type: "openstack-cmd"
+ command_name: "openstack volume list"
+ monitor_time: {{monitor_time}}
+ monitor_number: {{monitor_number}}
+ sla:
+ max_outage_time: 5
+
+ - monitor_type: "openstack-cmd"
+ command_name: "openstack stack list"
+ monitor_time: {{monitor_time}}
+ monitor_number: {{monitor_number}}
+ sla:
+ max_outage_time: 5
+
+ - monitor_type: "process"
+ process_name: "rabbitmq-server"
+ host: {{attack_host}}
+ monitor_time: 20
+ sla:
+ max_recover_time: 20
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ outage_time: 5
+ action: monitor
+
+
+context:
+ type: Node
+ name: LF
+ file: {{file}}
+
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc057.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc057.yaml
new file mode 100644
index 000000000..322e2bd76
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc057.yaml
@@ -0,0 +1,179 @@
+##############################################################################
+# Copyright (c) 2017 14_ykl@tongji.edu.cn 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
+##############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Test case for TC057 :OpenStack Controller Cluster Management Service High
+ Availability;
+ This test case is written by scenario-based HA testing framework.
+
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set vip_mgmt = vip_mgmt or 'vip__management' %}
+{% set vip_vrouter = vip_vrouter or 'vip__vrouter' %}
+{% set attack_host = attack_host or 'node1' %}
+{% set check_host = check_host or 'node2' %}
+{% set monitor_time = monitor_time or 10 %}
+{% set monitor_number = monitor_number or 3 %}
+
+scenarios:
+ -
+ type: "GeneralHA"
+ options:
+ attackers:
+ -
+ fault_type: "general-attacker"
+ host: {{attack_host}}
+ key: "kill-process"
+ attack_key: "kill-corosync"
+ action_parameter:
+ process_name: "corosync"
+
+ monitors:
+ -
+ monitor_type: "openstack-cmd"
+ key: "check-nova-service"
+ command_name: "openstack image list"
+ monitor_time: {{monitor_time}}
+ monitor_number: {{monitor_number}}
+ sla:
+ max_outage_time: 5
+
+ -
+ monitor_type: "openstack-cmd"
+ key: "check-neutron-service"
+ command_name: "openstack network list"
+ monitor_time: {{monitor_time}}
+ monitor_number: {{monitor_number}}
+ sla:
+ max_outage_time: 5
+
+ -
+ monitor_type: "openstack-cmd"
+ key: "check-keystone-service"
+ command_name: "openstack user list"
+ monitor_time: {{monitor_time}}
+ monitor_number: {{monitor_number}}
+ sla:
+ max_outage_time: 5
+
+ -
+ monitor_type: "openstack-cmd"
+ key: "check-heat-service"
+ command_name: "openstack stack list"
+ monitor_time: {{monitor_time}}
+ monitor_number: {{monitor_number}}
+ sla:
+ max_outage_time: 5
+
+ operations:
+ -
+ operation_type: "general-operation"
+ key: "get-mgmt-vip-host"
+ operation_key: "get-vip-host"
+ host: {{check_host}}
+ action_parameter:
+ vip_name: {{vip_mgmt}}
+ return_parameter:
+ all: "$vip_mgmt_host"
+
+ -
+ operation_type: "general-operation"
+ key: "get-router-vip-host"
+ operation_key: "get-vip-host"
+ host: {{check_host}}
+ action_parameter:
+ vip_name: {{vip_vrouter}}
+ return_parameter:
+ all: "$vip_router_host"
+
+ resultCheckers:
+ -
+ checker_type: "general-result-checker"
+ key: "check-rabbitmq-master"
+ checker_key: "pacemaker-resource-checker"
+ host: {{check_host}}
+ parameter:
+ resource_name: "p_rabbitmq-server"
+ resource_host: "$vip_mgmt_host"
+ expectedValue: "Masters"
+ condition: "in"
+
+ -
+ checker_type: "general-result-checker"
+ key: "check-conntrackd-master"
+ checker_key: "pacemaker-resource-checker"
+ host: {{check_host}}
+ parameter:
+ resource_name: "p_conntrackd"
+ resource_host: "$vip_router_host"
+ expectedValue: "Masters"
+ condition: "in"
+
+ steps:
+ -
+ actionKey: "kill-process"
+ actionType: "attacker"
+ index: 1
+
+ -
+ actionKey: "check-nova-service"
+ actionType: "monitor"
+ index: 2
+
+ -
+ actionKey: "check-neutron-service"
+ actionType: "monitor"
+ index: 3
+
+ -
+ actionKey: "check-keystone-service"
+ actionType: "monitor"
+ index: 4
+
+ -
+ actionKey: "check-heat-service"
+ actionType: "monitor"
+ index: 5
+
+ -
+ actionKey: "get-mgmt-vip-host"
+ actionType: "operation"
+ index: 6
+
+ -
+ actionKey: "check-rabbitmq-master"
+ actionType: "resultchecker"
+ index: 7
+
+ -
+ actionKey: "get-router-vip-host"
+ actionType: "operation"
+ index: 8
+
+ -
+ actionKey: "check-conntrackd-master"
+ actionType: "resultchecker"
+ index: 9
+
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+ {{check_host}}: {{check_host}}.LF
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ outage_time: 5
+ action: monitor
+
+context:
+ type: Node
+ name: LF
+ file: {{file}}
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc058.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc058.yaml
new file mode 100644
index 000000000..e9feb97f5
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc058.yaml
@@ -0,0 +1,111 @@
+##############################################################################
+# Copyright (c) 2017 14_ykl@tongji.edu.cn 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
+##############################################################################
+---
+
+schema: "yardstick:task:0.1"
+description: >
+ Test case for TC058 :OpenStack Controller Virtual Router Service High
+ Availability;
+ This test case is written by scenario-based HA testing framework.
+
+{% set file = file or '/etc/yardstick/pod.yaml' %}
+{% set image = image or 'yardstick-image' %}
+{% set flavor = flavor or 'yardstick-flavor' %}
+{% set attack_host = attack_host or 'node1' %}
+
+scenarios:
+ -
+ type: "GeneralHA"
+ options:
+ attackers:
+ -
+ fault_type: "kill-process"
+ host: {{attack_host}}
+ key: "kill-process"
+ process_name: "neutron-l3-agent"
+
+ monitors:
+ -
+ monitor_type: "process"
+ process_name: "neutron-l3-agent"
+ host: {{attack_host}}
+ key: "monitor-recovery"
+ monitor_time: 20
+ sla:
+ max_recover_time: 20
+
+ -
+ monitor_type: "general-monitor"
+ monitor_key: "ip-status"
+ key: "server-status"
+ monitor_time: 10
+ sla:
+ max_outage_time: 5
+ parameter:
+ ip_address: "$floating_ip"
+
+ operations:
+ -
+ operation_type: "general-operation"
+ key: "get-floatingip"
+ operation_key: "get-floatingip"
+ action_parameter:
+ server_name: "tc058"
+ return_parameter:
+ all: "$floating_ip"
+
+
+ steps:
+ -
+ actionKey: "get-floatingip"
+ actionType: "operation"
+ index: 1
+ -
+ actionKey: "kill-process"
+ actionType: "attacker"
+ index: 2
+
+ -
+ actionKey: "monitor-recovery"
+ actionType: "monitor"
+ index: 3
+
+ -
+ actionKey: "server-status"
+ actionType: "monitor"
+ index: 4
+
+ nodes:
+ {{attack_host}}: {{attack_host}}.LF
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ outage_time: 5
+ action: monitor
+
+contexts:
+-
+ type: Node
+ name: LF
+ file: {{file}}
+
+-
+ name: demo
+ image: {{image}}
+ flavor: {{flavor}}
+ user: cirros
+
+ servers:
+ tc058:
+ floating_ip: true
+
+ networks:
+ test:
+ cidr: '10.0.1.0/24'
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_network.py b/tests/unit/benchmark/scenarios/lib/test_create_network.py
new file mode 100644
index 000000000..8e7d8b5a1
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/lib/test_create_network.py
@@ -0,0 +1,39 @@
+##############################################################################
+# 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
+import paramiko
+
+from yardstick.benchmark.scenarios.lib.create_network import CreateNetwork
+
+
+class CreateNetworkTestCase(unittest.TestCase):
+
+ @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
+ @mock.patch('yardstick.common.openstack_utils.create_neutron_net')
+ def test_create_network(self, mock_get_neutron_client, mock_create_neutron_net):
+ options = {
+ 'openstack_paras': {
+ 'name': 'yardstick_net',
+ 'admin_state_up': 'True'
+ }
+ }
+ args = {"options": options}
+ obj = CreateNetwork(args, {})
+ obj.run({})
+ self.assertTrue(mock_get_neutron_client.called)
+ self.assertTrue(mock_create_neutron_net.called)
+
+
+def main():
+ unittest.main()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_port.py b/tests/unit/benchmark/scenarios/lib/test_create_port.py
new file mode 100644
index 000000000..3b2aa2247
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/lib/test_create_port.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
+import paramiko
+
+from yardstick.benchmark.scenarios.lib.create_port import CreatePort
+
+
+class CreatePortTestCase(unittest.TestCase):
+
+ @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
+ def test_create_port(self, mock_get_neutron_client):
+ options = {
+ 'openstack_paras': {
+ 'name': 'yardstick_port'
+ }
+ }
+ args = {"options": options}
+ obj = CreatePort(args, {})
+ obj.run({})
+ self.assertTrue(mock_get_neutron_client.called)
+
+
+def main():
+ unittest.main()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_router.py b/tests/unit/benchmark/scenarios/lib/test_create_router.py
new file mode 100644
index 000000000..b956a3634
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/lib/test_create_router.py
@@ -0,0 +1,39 @@
+##############################################################################
+# 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
+import paramiko
+
+from yardstick.benchmark.scenarios.lib.create_router import CreateRouter
+
+
+class CreateRouterTestCase(unittest.TestCase):
+
+ @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
+ @mock.patch('yardstick.common.openstack_utils.create_neutron_router')
+ def test_create_router(self, mock_get_neutron_client, mock_create_neutron_router):
+ options = {
+ 'openstack_paras': {
+ 'admin_state_up': 'True',
+ 'name': 'yardstick_router'
+ }
+ }
+ args = {"options": options}
+ obj = CreateRouter(args, {})
+ obj.run({})
+ self.assertTrue(mock_get_neutron_client.called)
+ self.assertTrue(mock_create_neutron_router.called)
+
+
+def main():
+ unittest.main()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py b/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py
new file mode 100644
index 000000000..b962f7f0e
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/lib/test_create_sec_group.py
@@ -0,0 +1,39 @@
+##############################################################################
+# 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
+import paramiko
+
+from yardstick.benchmark.scenarios.lib.create_sec_group import CreateSecgroup
+
+
+class CreateSecGroupTestCase(unittest.TestCase):
+
+ @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
+ @mock.patch('yardstick.common.openstack_utils.create_security_group_full')
+ def test_create_sec_group(self, mock_get_neutron_client, mock_create_security_group_full):
+ options = {
+ 'openstack_paras': {
+ 'sg_name': 'yardstick_sec_group',
+ 'description': 'security group for yardstick manual VM'
+ }
+ }
+ args = {"options": options}
+ obj = CreateSecgroup(args, {})
+ obj.run({})
+ self.assertTrue(mock_get_neutron_client.called)
+ self.assertTrue(mock_create_security_group_full.called)
+
+
+def main():
+ unittest.main()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/tests/unit/benchmark/scenarios/lib/test_create_subnet.py b/tests/unit/benchmark/scenarios/lib/test_create_subnet.py
new file mode 100644
index 000000000..0154755c4
--- /dev/null
+++ b/tests/unit/benchmark/scenarios/lib/test_create_subnet.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
+import paramiko
+
+from yardstick.benchmark.scenarios.lib.create_subnet import CreateSubnet
+
+
+class CreateSubnetTestCase(unittest.TestCase):
+
+ @mock.patch('yardstick.common.openstack_utils.get_neutron_client')
+ @mock.patch('yardstick.common.openstack_utils.create_neutron_subnet')
+ def test_create_subnet(self, mock_get_neutron_client, mock_create_neutron_subnet):
+ options = {
+ 'openstack_paras': {
+ 'network_id': '123-123-123',
+ 'name': 'yardstick_subnet',
+ 'cidr': '10.10.10.0/24',
+ 'ip_version': '4'
+ }
+ }
+ args = {"options": options}
+ obj = CreateSubnet(args, {})
+ obj.run({})
+ self.assertTrue(mock_get_neutron_client.called)
+ self.assertTrue(mock_create_neutron_subnet.called)
+
+
+def main():
+ unittest.main()
+
+
+if __name__ == '__main__':
+ main()