aboutsummaryrefslogtreecommitdiffstats
path: root/tests/ci/cover.sh
AgeCommit message (Collapse)AuthorFilesLines
2017-08-08NSB updateDeepak S1-26/+66
Refactored main NSB VNF classes accroding to class diagram https://wiki.opnfv.org/display/yardstick/NSB+class+diagram All the SampleVNFs have been separated and placed under the SampleVNF class. Added AutoConnectSSH to automatically create SSH conneciton on demand. Added VnfdHelper class to wrap the VNFD dictionary in prepartion for class-based modeling. Extracted DpdkVnfSetupEnvHelper for DPDK based VNF setup. Extracted Stats and other client config to ResourceHelper Had to replace dict_key_flatten with deepgetitem due to Python 2.7 Jinja2 infinite recursion. Change-Id: Ia8840e9c44cdbdf39aab6b02e6d2176b31937dc9 Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-07-31cover.sh: delete .testrepository before running coverageRoss Brattain1-4/+4
When running py27 and py3 test ran into problems with .testrepository already exists, but testr thinking it was corrupt running testr No repository found in /home/jenkins/opnfv/slave_root/workspace/yardstick-verify-master. Create one by running "testr init". error: testr failed (3) The fix seems to be to delete .testrepository before running testr coverage Change-Id: Ib8cd3ab9d3384935380ac29ce365439c6464adc3 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-07-31cover: another 'db type could not be determined' workaroundRoss Brattain1-0/+3
Change-Id: Ib94ff2dfc86725e5367908296b5160f9565442b8 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-07-31cover.sh: workaround 'db type could not be determined' bugRoss Brattain1-0/+3
https://bugs.launchpad.net/testrepository/+bug/1229445 rm -f .testrepository/times.dbm remove that file before running testr Change-Id: I178efefebe600a65d1a28beb9b01f7dfecaa4d00 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2016-05-23move /ci into /tests directoryMatthewLi1-0/+75
JIRA: YARDSTICK-269 Change-Id: I2b552aded888fa9d8f8ddd8d902b3d7f6d31a607 Signed-off-by: MatthewLi <matthew.lijun@huawei.com>
*/ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
.. 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 TC058
*************************************

+-----------------------------------------------------------------------------+
|OpenStack Controller Virtual Router Service High Availability                |
|                                                                             |
+--------------+--------------------------------------------------------------+
|test case id  | OPNFV_YARDSTICK_TC058: OpenStack Controller Virtual Router   |
|              | Service High Availability                                    |
+--------------+--------------------------------------------------------------+
|test purpose  | This test case will verify the high availability of virtual  |
|              | routers(L3 agent) on controller node. When a virtual router  |
|              | service on a specified controller node is shut down, this    |
|              | test case will check whether the network of virtual machines |
|              | will be affected, and whether the attacked virtual router    |
|              | service will be recovered.                                   |
+--------------+--------------------------------------------------------------+
|test method   | This test case kills the processes of virtual router service |
|              | (l3-agent) on a selected controller node(the node holds the  |
|              | active l3-agent), then checks whether the network routing    |
|              | of virtual machines is OK and whether the killed service     |
|              | will be recovered.                                           |
+--------------+--------------------------------------------------------------+
|attackers     | In this test case, an attacker called "kill-process" is      |
|              | needed. This attacker includes three parameters:             |
|              | 1) fault_type: which is used for finding the attacker's      |
|              | scripts. It should be always set to "kill-process" in this   |
|              | test case.                                                   |
|              | 2) process_name: which is the process name of the load       |
|              | balance service. If there are multiple processes use the     |
|              | same name on the host, all of them are killed by this        |
|              | attacker.                                                    |
|              | 3) host: which is the name of a control node being attacked. |
|              |                                                              |
|              | In this case, this process name should set to "l3agent" ,    |
|              | for example                                                  |
|              | -fault_type: "kill-process"                                  |
|              | -process_name: "l3agent"                                     |
|              | -host: node1                                                 |
+--------------+--------------------------------------------------------------+
|monitors      | In this test case, two kinds of monitor are needed:          |
|              | 1. the "ip_status" monitor that pings a specific ip to check |
|              | the connectivity of this ip, which needs two parameters:     |
|              | 1) monitor_type: which is used for finding the monitor class |
|              | and related scripts. It should be always set to "ip_status"  |
|              | for this monitor.                                            |
|              | 2) ip_address: The ip to be pinged. In this case, ip_address |
|              | will be either an ip address of external network or an ip    |
|              | address of a virtual machine.                                |
|              | 3) host: The node on which ping will be executed, in this    |
|              | case the host will be a virtual machine.                     |
|              |                                                              |
|              | 2. the "process" monitor check whether a process is running  |
|              | on a specific node, which needs three parameters:            |
|              | 1) monitor_type: which used for finding the monitor class    |
|              | and related scripts. It should be always set to "process"    |
|              | for this monitor.                                            |
|              | 2) process_name: which is the process name for monitor. In   |
|              | this case, the process-name of monitor2 should be "l3agent"  |
|              | 3) host: which is the name of the node running the process   |
|              |                                                              |
|              | e.g.                                                         |
|              | monitor1-1:                                                  |
|              | -monitor_type: "ip_status"                                   |
|              | -host: 172.16.0.11                                           |
|              | -ip_address: 172.16.1.11                                     |
|              | monitor1-2:                                                  |
|              | -monitor_type: "ip_status"                                   |
|              | -host: 172.16.0.11                                           |
|              | -ip_address: 8.8.8.8                                         |
|              | monitor2:                                                    |
|              | -monitor_type: "process"                                     |
|              | -process_name: "l3agent"                                     |
|              | -host: node1                                                 |
+--------------+--------------------------------------------------------------+
|metrics       | In this test case, there are two metrics:                    |
|              | 1)service_outage_time: which indicates the maximum outage    |
|              | time (seconds) of the specified Openstack command request.   |
|              | 2)process_recover_time: which indicates the maximum time     |
|              | (seconds) from the process being killed to recovered         |
+--------------+--------------------------------------------------------------+
|test tool     | None. Self-developed.                                        |
+--------------+--------------------------------------------------------------+
|references    | ETSI NFV REL001                                              |
+--------------+--------------------------------------------------------------+
|configuration | This test case needs two configuration files:                |
|              | 1) test case file: opnfv_yardstick_tc058.yaml                |
|              | -Attackers: see above "attackers" description                |
|              | -Monitors: see above "monitors" description                  |
|              | -Steps: the test case execution step, see "test sequence"    |
|              | description below                                            |
|              |                                                              |
|              | 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                              |
|              |                                                              |
+--------------+--------------------------------------------------------------+
|pre-test      | The test case image needs to be installed into Glance        |
|conditions    | with cachestat included in the image.                        |
|              |                                                              |
+--------------+--------------------------------------------------------------+
|step 1        | Two host VMs are booted, these two hosts are in two          |
|              | different networks, the networks are connected by a virtual  |
|              | router.                                                      |
|              |                                                              |
+--------------+--------------------------------------------------------------+
|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 kill process script with param value specified by        |
|              | "process_name"                                               |
|              |                                                              |
|              | Result: Process will be killed.                              |
|              |                                                              |
+--------------+--------------------------------------------------------------+
|step 4        | stop monitors after a period of time specified by            |
|              | "waiting_time"                                               |
|              |                                                              |
|              | Result: The monitor info will be aggregated.                 |
|              |                                                              |
+--------------+--------------------------------------------------------------+
|step 5        | verify the SLA                                               |
|              |                                                              |
|              | Result: The test case is passed or not.                      |
|              |                                                              |
+--------------+------+----------------------------------+--------------------+
|post-action   | It is the action when the test cases exist. It will check    |
|              | the status of the specified process on the host, and restart |
|              | the process if it is not running for next test cases.        |
|              | Virtual machines and network created in the test case will   |
|              | be destoryed.                                                |
|              |                                                              |
|              | Notice: This post-action uses 'lsb_release' command to check |
|              | the host linux distribution and determine the OpenStack      |
|              | service name to restart the process. Lack of 'lsb_release'   |
|              | on the host may cause failure to restart the process.        |
|              |                                                              |
+--------------+------+----------------------------------+--------------------+
|test verdict  | Fails only if SLA is not passed, or if there is a test case  |
|              | execution problem.                                           |
|              |                                                              |
+--------------+--------------------------------------------------------------+