aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/userguide/opnfv_yardstick_tc051.rst117
-rw-r--r--tests/opnfv/test_cases/opnfv_yardstick_tc051.yaml90
2 files changed, 207 insertions, 0 deletions
diff --git a/docs/userguide/opnfv_yardstick_tc051.rst b/docs/userguide/opnfv_yardstick_tc051.rst
new file mode 100644
index 000000000..3402ccd92
--- /dev/null
+++ b/docs/userguide/opnfv_yardstick_tc051.rst
@@ -0,0 +1,117 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International
+.. License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) OPNFV, Yin Kanglin and others.
+.. 14_ykl@tongji.edu.cn
+
+*************************************
+Yardstick Test Case Description TC051
+*************************************
+
++-----------------------------------------------------------------------------+
+|OpenStack Controller Node CPU Overload High Availability |
+| |
++--------------+--------------------------------------------------------------+
+|test case id | OPNFV_YARDSTICK_TC051: OpenStack Controller Node CPU |
+| | Overload High Availability |
++--------------+--------------------------------------------------------------+
+|test purpose | This test case will verify the high availability of control |
+| | node. When the CPU usage of a specified controller node is |
+| | stressed to 100%, which breaks down the Openstack services |
+| | on this node. These Openstack service should able to be |
+| | accessed by other controller nodes, and the services on |
+| | failed controller node should be isolated. |
++--------------+--------------------------------------------------------------+
+|test method | This test case stresses the CPU uasge of a specified control |
+| | node to 100%, then checks whether all services provided by |
+| | the environment are OK with some monitor tools. |
++--------------+--------------------------------------------------------------+
+|attackers | In this test case, an attacker called "stress-cpu" is |
+| | needed. This attacker includes two parameters: |
+| | 1) fault_type: which is used for finding the attacker's |
+| | scripts. It should be always set to "stress-cpu" in |
+| | this test case. |
+| | 2) host: which is the name of a control node being attacked. |
+| | e.g. |
+| | -fault_type: "stress-cpu" |
+| | -host: node1 |
++--------------+--------------------------------------------------------------+
+|monitors | In this test case, the monitor named "openstack-cmd" is |
+| | needed. The monitor needs needs two parameters: |
+| | 1) monitor_type: which is used for finding the monitor class |
+| | and related scritps. It should be always set to |
+| | "openstack-cmd" for this monitor. |
+| | 2) command_name: which is the command name used for request |
+| | |
+| | There are four instance of the "openstack-cmd" monitor: |
+| | monitor1: |
+| | -monitor_type: "openstack-cmd" |
+| | -command_name: "nova image-list" |
+| | monitor2: |
+| | -monitor_type: "openstack-cmd" |
+| | -command_name: "neutron router-list" |
+| | monitor3: |
+| | -monitor_type: "openstack-cmd" |
+| | -command_name: "heat stack-list" |
+| | monitor4: |
+| | -monitor_type: "openstack-cmd" |
+| | -command_name: "cinder list" |
++--------------+--------------------------------------------------------------+
+|metrics | In this test case, there is one metric: |
+| | 1)service_outage_time: which indicates the maximum outage |
+| | time (seconds) of the specified Openstack command request. |
++--------------+--------------------------------------------------------------+
+|test tool | Developed by the project. Please see folder: |
+| | "yardstick/benchmark/scenarios/availability/ha_tools" |
+| | |
++--------------+--------------------------------------------------------------+
+|references | ETSI NFV REL001 |
+| | |
++--------------+--------------------------------------------------------------+
+|configuration | This test case needs two configuration files: |
+| | 1) test case file: opnfv_yardstick_tc051.yaml |
+| | -Attackers: see above "attackers" discription |
+| | -waiting_time: which is the time (seconds) from the process |
+| | being killed to stoping monitors the monitors |
+| | -Monitors: see above "monitors" discription |
+| | -SLA: see above "metrics" discription |
+| | |
+| | 2)POD file: pod.yaml |
+| | The POD configuration should record on pod.yaml first. |
+| | the "host" item in this test case will use the node name in |
+| | the pod.yaml. |
+| | |
++--------------+--------------------------------------------------------------+
+|test sequence | description and expected result |
+| | |
++--------------+--------------------------------------------------------------+
+|step 1 | start monitors: |
+| | each monitor will run with independently process |
+| | |
+| | Result: The monitor info will be collected. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 2 | do attacker: connect the host through SSH, and then execute |
+| | the stress cpu script on the host. |
+| | |
+| | Result: The CPU usage of the host will be stressed to 100%. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 3 | stop monitors after a period of time specified by |
+| | "waiting_time" |
+| | |
+| | Result: The monitor info will be aggregated. |
+| | |
++--------------+--------------------------------------------------------------+
+|step 4 | verify the SLA |
+| | |
+| | Result: The test case is passed or not. |
+| | |
++--------------+--------------------------------------------------------------+
+|post-action | It is the action when the test cases exist. It kills the |
+| | process that stresses the CPU usage. |
++--------------+--------------------------------------------------------------+
+|test verdict | Fails only if SLA is not passed, or if there is a test case |
+| | execution problem. |
+| | |
++--------------+--------------------------------------------------------------+
diff --git a/tests/opnfv/test_cases/opnfv_yardstick_tc051.yaml b/tests/opnfv/test_cases/opnfv_yardstick_tc051.yaml
new file mode 100644
index 000000000..8e2e0c789
--- /dev/null
+++ b/tests/opnfv/test_cases/opnfv_yardstick_tc051.yaml
@@ -0,0 +1,90 @@
+---
+# Test case for TC051 :OpenStack Controller Node CPU Overload High Availability
+# This test case is written by new scenario-based HA testing framework
+
+schema: "yardstick:task:0.1"
+scenarios:
+ -
+ type: "GeneralHA"
+ options:
+ attackers:
+ -
+ fault_type: "general-attacker"
+ host: node1
+ key: "stress-cpu"
+ attack_key: "stress-cpu"
+
+ monitors:
+ -
+ monitor_type: "openstack-cmd"
+ key: "nova-image-list"
+ command_name: "nova image-list"
+ monitor_time: 10
+ sla:
+ max_outage_time: 5
+
+ -
+ monitor_type: "openstack-cmd"
+ key: "neutron-router-list"
+ command_name: "neutron router-list"
+ monitor_time: 10
+ sla:
+ max_outage_time: 5
+
+ -
+ monitor_type: "openstack-cmd"
+ key: "heat-stack-list"
+ command_name: "heat stack-list"
+ monitor_time: 10
+ sla:
+ max_outage_time: 5
+
+ -
+ monitor_type: "openstack-cmd"
+ key: "cinder-list"
+ command_name: "cinder list"
+ monitor_time: 10
+ sla:
+ max_outage_time: 5
+
+
+ steps:
+ -
+ actionKey: "stress-cpu"
+ actionType: "attacker"
+ index: 1
+
+ -
+ actionKey: "nova-image-list"
+ actionType: "monitor"
+ index: 2
+
+ -
+ actionKey: "neutron-router-list"
+ actionType: "monitor"
+ index: 3
+
+ -
+ actionKey: "heat-stack-list"
+ actionType: "monitor"
+ index: 4
+
+ -
+ actionKey: "cinder-list"
+ actionType: "monitor"
+ index: 5
+
+
+ nodes:
+ node1: node1.LF
+ runner:
+ type: Duration
+ duration: 1
+ sla:
+ outage_time: 5
+ action: monitor
+
+context:
+ type: Node
+ name: LF
+ file: etc/yardstick/nodes/fuel_virtual/pod.yaml