summaryrefslogtreecommitdiffstats
path: root/samples/yang.yaml
blob: 3b1ce27ddca0b25b2acb2891bf40e1289e147f97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
1
.. 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 TC046
*************************************

+-----------------------------------------------------------------------------+
|Control Node Openstack Service High Availability - Keystone                  |
|                                                                             |
+--------------+--------------------------------------------------------------+
|test case id  | OPNFV_YARDSTICK_TC046: Control node Openstack service down - |
|              | keystone                                                     |
+--------------+--------------------------------------------------------------+
|test purpose  | This test case will verify the high availability of the      |
|              | user service provided by OpenStack (keystone) on control     |
|              | node.                                                        |
|              |                                                              |
+--------------+--------------------------------------------------------------+
|test method   | This test case kills the processes of keystone service on a  |
|              | selected control node, then checks whether the request of    |
|              | the related Openstack command is OK and the killed processes |
|              | are 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 specified  |
|              | OpenStack service. If there are multiple processes use the   |
|              | same name on the host, all of them are killed by this        |
|              | attacker.                                                    |
|              | In this case. This parameter should always set to "keystone" |
|              | 3) host: which is the name of a control node being attacked. |
|              |                                                              |
|              | e.g.                                                         |
|              | -fault_type: "kill-process"                                  |
|              | -process_name: "keystone"                                    |
|              | -host: node1                                                 |
|              |                                                              |
+--------------+--------------------------------------------------------------+
|monitors      | In this test case, two kinds of monitor are needed:          |
|              | 1. the "openstack-cmd" monitor constantly request a specific |
|              | Openstack command, which 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. |
|              | In this case, the command name should be keystone related    |
|              | commands.                                                    |
|              |                                                              |
|              | 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 scritps. It should be always set to "process"        |
|              | for this monitor.                                            |
|              | 2) process_name: which is the process name for monitor       |
|              | 3) host: which is the name of the node runing the process    |
|              |                                                              |
|              | e.g.                                                         |
|              | monitor1:                                                    |
|              | -monitor_type: "openstack-cmd"                               |
|              | -command_name: "keystone user-list"                          |
|              | monitor2:                                                    |
|              | -monitor_type: "process"                                     |
|              | -process_name: "keystone"                                    |
|              | -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 maximun time     |
|              | (seconds) from the process being killed to recovered         |
|              |                                                              |
+--------------+--------------------------------------------------------------+
|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_tc046.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 i
##############################################################################
# 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
##############################################################################
 module clearwater {

       namespace "http://localhost/ietf-inet-types.yang";

       prefix "yang";

       organization "HP";

       contact "TBD";

       description "This module defines a VNF Deployment Unit.";
     revision "2014-05-18" {

         description

           "Initial version";

         reference

           "RFC XXXX";

       }
      container clearwater {

         description

           "Vdus used in a vnfd";

       list ellis {
      key id;
      leaf id{
      type string;
      description "key ID for vdu1";
      }
         description

         "Vdu key";



         leaf instance-num {

         type uint16{
         range 1..6;}
                                 default 1;


         description

           "Number of instances of the said VDU which shall be
     instantiated";

         }

         leaf vm-image {

         type string;
         reference  "uri";


         description

           "Reference to a VM image";

         }
         container resource {
         description

               "The required resource";

             container cpu {

               description

                 "The required computation resource";



               leaf vCPU_num {

                 type uint32{
         range 4;
         }

                 description

                   "The number of virtual CPU units";

               }



               list vCPU-spec {

                 key "name";



                 description

                   "Processor characteristics for the VDU";



                 leaf name {

                   type string;

                   description

                     "Name of vCPU-spec";

                 }
         leaf description {

                   type string;

                   description

                     "Description of vCPU-spec";

                 }

                 leaf value {

                   type uint32;

                   description

                     "Value of vCPU-spec";

                 }

               }

             }

             container memory {

               description

                 "The required memory resource";

               leaf memory_size {

                 type uint32{
         range 4096;
         }

                 description

                   "Memory size, unit:MBytes";

               }

               list memory-spec {

                 key name;



                 description

                   "Memory characteristics for the VDU";



                 leaf name {

                   type string;

                   description

                     "Name of memory-spec";

                 }



                 leaf description {

                   type string;

                   description

                     "Description of memory-spec";

                 }



                 leaf value {

                   type uint32;

                   description

                     "Value of memory-spec";

                 }

          }

             }



             container disk {

               description

                 "The required storage resource";



               leaf disk-size {

                 type uint32{
     range 2048;
    }
                 description

                   "Virtual storage size, unit:MBytes";
               }



               list disk-KQI {

                 key name;



                 description

                   "Storage characteristics in the VDU";



                 leaf name {

                   type string;

                   description

                     "Name of disk-KQI";

                 }
         leaf description {

                   type string;

                   description

                     "Description of disk-KQI";

                 }



                 leaf value {

                   type uint32;

                   description

                     "Value of disk-KQI";

                 }

               }

             }



             container vnic {

               description

                 "Virtual network interface card (vnic) resource";



               leaf vnic-num {

                 type uint32{
         range 2;
         }

                 description

                   "The total number of virtual vnic";

               }
          }

           }



           container workflow-script {

             description

               "VDU workflow script";



             leaf init {

               type string;
         default "start.sh";


               description

                 "VDU initialization script";
             }



             leaf terminate {

               type string;
         default "stop.sh";


               description

                 "VDU termination script";
        }

             leaf graceful-shutdown {

               type string;
         default "shutdown.sh";


               description

                 "VDU graceful shutdown script";

             }

           }

         }
     list bono {
      key id;
      leaf id{
      type string;
      description "key ID for vdu2";
      }
         description

         "Vdu key";



         leaf instance-num {

         type uint16;
         default 3;


         description

           "Number of instances of the said VDU which shall be
     instantiated";

         }



         leaf vm-image {

         type string;
         reference "URI";


         description

           "Reference to a VM image";

         }



         container resource {
         description

               "The required resource";



             container cpu {

               description

                 "The required computation resource";



               leaf vCPU_num {

                 type uint32{
         range 3;
         }

                 description

                   "The number of virtual CPU units";

               }



               list vCPU-spec {

                 key "name";



                 description

                   "Processor characteristics for the VDU";



                 leaf name {

                   type string;

                   description

                     "Name of vCPU-spec";

                 }
         leaf description {

                   type string;

                   description

                     "Description of vCPU-spec";

                 }



                 leaf value {

                   type uint32;

                   description

                     "Value of vCPU-spec";

                 }

               }

             }



             container memory {

               description

                 "The required memory resource";



               leaf memory_size {

                 type uint32{
         range 2048;
         }

                 description

                   "Memory size, unit:MBytes";

               }

               list memory-spec {

                 key name;

                 description

                   "Memory characteristics for the VDU";



                 leaf name {

                   type string;

                   description

                     "Name of memory-spec";

                 }



                 leaf description {

                   type string;

                   description

                     "Description of memory-spec";

                 }



                 leaf value {

                   type uint32;

                   description

                     "Value of memory-spec";

                 }

          }

             }



             container disk {

               description

                 "The required storage resource";



               leaf disk-size {

                 type uint32{
         range 3000;
         }

                 description

                   "Virtual storage size, unit:MBytes";

               }



               list disk-KQI {

                 key name;



                 description

                   "Storage characteristics in the VDU";



                 leaf name {

                   type string;

                   description

                     "Name of disk-KQI";

                 }
         leaf description {

                   type string;

                   description

                     "Description of disk-KQI";

                 }



                 leaf value {

                   type uint32;

                   description

                     "Value of disk-KQI";

                 }

               }

             }



             container vnic {

               description

                 "Virtual network interface card (vnic) resource";



               leaf vnic-num {

                 type uint32{
         range 2;
         }

                 description

                   "The total number of virtual vnic";

               }
          }

           }



           container workflow-script {

             description

               "VDU workflow script";



             leaf init {

               type string;
         default "start.sh";


               description

                 "VDU initialization script";

             }



             leaf terminate {

               type string;
         default "stop.sh";


               description

                 "VDU termination script";

             }

             leaf graceful-shutdown {

               type string;
         default "shutdown.sh";


               description

                 "VDU graceful shutdown script";

             }

           }

         }

       }

   }