Statistics
| Branch: | Tag: | Revision:

root / docs / snf-burnin.rst @ d29f0371

History | View | Annotate | Download (7.8 kB)

1 4f7d5233 Ilias Tsitsimpis
.. _snf-burnin:
2 4f7d5233 Ilias Tsitsimpis
3 4f7d5233 Ilias Tsitsimpis
snf-burnin
4 4f7d5233 Ilias Tsitsimpis
^^^^^^^^^^
5 4f7d5233 Ilias Tsitsimpis
6 4f7d5233 Ilias Tsitsimpis
:ref:`snf-burnin <snf-burnin>` is an integration testing tool for a running
7 980190ae Constantinos Venetsanopoulos
Synnefo deployment. It uses the Synnefo REST APIs to run test scenarios for the
8 980190ae Constantinos Venetsanopoulos
following categories:
9 4f7d5233 Ilias Tsitsimpis
10 4f7d5233 Ilias Tsitsimpis
* :ref:`Authentication <unauthorizedtestcase>`
11 4f7d5233 Ilias Tsitsimpis
* :ref:`Images <imagestestcase>`
12 4f7d5233 Ilias Tsitsimpis
* :ref:`Flavors <flavorstestcase>`
13 4f7d5233 Ilias Tsitsimpis
* :ref:`Servers <serverstestcase>`
14 980190ae Constantinos Venetsanopoulos
* :ref:`Network <networktestcase>`
15 4f7d5233 Ilias Tsitsimpis
* :ref:`Storage <pithostestcase>`
16 4f7d5233 Ilias Tsitsimpis
17 4f7d5233 Ilias Tsitsimpis
18 4f7d5233 Ilias Tsitsimpis
Usage
19 4f7d5233 Ilias Tsitsimpis
=====
20 4f7d5233 Ilias Tsitsimpis
21 4f7d5233 Ilias Tsitsimpis
**Example:**
22 4f7d5233 Ilias Tsitsimpis
23 4f7d5233 Ilias Tsitsimpis
::
24 4f7d5233 Ilias Tsitsimpis
25 980190ae Constantinos Venetsanopoulos
  snf-burnin --token=TOKEN \
26 e3ff6830 Georgios D. Tsoukalas
             --api=CYCLADES_BASE_URL
27 e3ff6830 Georgios D. Tsoukalas
             --pithos=PITHOS_BASE_URL \
28 e3ff6830 Georgios D. Tsoukalas
             --astakos=ASTAKOS_BASE_URL \
29 980190ae Constantinos Venetsanopoulos
             --plankton=PLANKTON_URL \
30 980190ae Constantinos Venetsanopoulos
             --plankton-user=PLANKTON_SYSTEM_USER \
31 980190ae Constantinos Venetsanopoulos
             --image-id=IMAGE_ID \
32 4f7d5233 Ilias Tsitsimpis
             --log-folder=LOG_FOLDER
33 4f7d5233 Ilias Tsitsimpis
34 4f7d5233 Ilias Tsitsimpis
For more info
35 4f7d5233 Ilias Tsitsimpis
36 4f7d5233 Ilias Tsitsimpis
::
37 4f7d5233 Ilias Tsitsimpis
38 4f7d5233 Ilias Tsitsimpis
  snf-burnin --help
39 4f7d5233 Ilias Tsitsimpis
40 4f7d5233 Ilias Tsitsimpis
::
41 4f7d5233 Ilias Tsitsimpis
42 4f7d5233 Ilias Tsitsimpis
  Options:
43 4f7d5233 Ilias Tsitsimpis
  -h, --help            show this help message and exit
44 4f7d5233 Ilias Tsitsimpis
  --api=API             The API URI to use to reach the Synnefo API
45 4f7d5233 Ilias Tsitsimpis
  --plankton=PLANKTON   The API URI to use to reach the Plankton API
46 4f7d5233 Ilias Tsitsimpis
  --plankton-user=PLANKTON_USER
47 4f7d5233 Ilias Tsitsimpis
                        Owner of system images
48 4f7d5233 Ilias Tsitsimpis
  --pithos=PITHOS       The API URI to use to reach the Pithos API
49 4f7d5233 Ilias Tsitsimpis
  --astakos=ASTAKOS     The API URI to use to reach the Astakos API
50 4f7d5233 Ilias Tsitsimpis
  --token=TOKEN         The token to use for authentication to the API
51 4f7d5233 Ilias Tsitsimpis
  --nofailfast          Do not fail immediately if one of the tests fails
52 4f7d5233 Ilias Tsitsimpis
                        (EXPERIMENTAL)
53 4f7d5233 Ilias Tsitsimpis
  --no-ipv6             Disables ipv6 related tests
54 4f7d5233 Ilias Tsitsimpis
  --action-timeout=TIMEOUT
55 4f7d5233 Ilias Tsitsimpis
                        Wait SECONDS seconds for a server action to complete,
56 4f7d5233 Ilias Tsitsimpis
                        then the test is considered failed
57 4f7d5233 Ilias Tsitsimpis
  --build-warning=TIMEOUT
58 4f7d5233 Ilias Tsitsimpis
                        Warn if TIMEOUT seconds have passed and a build
59 4f7d5233 Ilias Tsitsimpis
                        operation is still pending
60 4f7d5233 Ilias Tsitsimpis
  --build-fail=BUILD_TIMEOUT
61 4f7d5233 Ilias Tsitsimpis
                        Fail the test if TIMEOUT seconds have passed and a
62 4f7d5233 Ilias Tsitsimpis
                        build operation is still incomplete
63 4f7d5233 Ilias Tsitsimpis
  --query-interval=INTERVAL
64 4f7d5233 Ilias Tsitsimpis
                        Query server status when requests are pending every
65 4f7d5233 Ilias Tsitsimpis
                        INTERVAL seconds
66 4f7d5233 Ilias Tsitsimpis
  --fanout=COUNT        Spawn up to COUNT child processes to execute in
67 4f7d5233 Ilias Tsitsimpis
                        parallel, essentially have up to COUNT server build
68 4f7d5233 Ilias Tsitsimpis
                        requests outstanding (EXPERIMENTAL)
69 4f7d5233 Ilias Tsitsimpis
  --force-flavor=FLAVOR ID
70 4f7d5233 Ilias Tsitsimpis
                        Force all server creations to use the specified FLAVOR
71 4f7d5233 Ilias Tsitsimpis
                        ID instead of a randomly chosen one, useful if disk
72 4f7d5233 Ilias Tsitsimpis
                        space is scarce
73 4f7d5233 Ilias Tsitsimpis
  --image-id=IMAGE ID   Test the specified image id, use 'all' to test all
74 4f7d5233 Ilias Tsitsimpis
                        available images (mandatory argument)
75 4f7d5233 Ilias Tsitsimpis
  --show-stale          Show stale servers from previous runs, whose name
76 4f7d5233 Ilias Tsitsimpis
                        starts with `snf-test-'
77 4f7d5233 Ilias Tsitsimpis
  --delete-stale        Delete stale servers from previous runs, whose name
78 4f7d5233 Ilias Tsitsimpis
                        starts with `snf-test-'
79 4f7d5233 Ilias Tsitsimpis
  --force-personality=PERSONALITY_PATH
80 4f7d5233 Ilias Tsitsimpis
                        Force a personality file injection.
81 4f7d5233 Ilias Tsitsimpis
                        File path required.
82 4f7d5233 Ilias Tsitsimpis
  --log-folder=LOG_FOLDER
83 4f7d5233 Ilias Tsitsimpis
                        Define the absolute path where the output
84 4f7d5233 Ilias Tsitsimpis
                        log is stored.
85 4f7d5233 Ilias Tsitsimpis
  -V, --verbose         Print detailed output about multiple processes
86 4f7d5233 Ilias Tsitsimpis
                        spawning
87 4f7d5233 Ilias Tsitsimpis
  --set-tests=TESTS     Set comma seperated tests for this run.
88 4f7d5233 Ilias Tsitsimpis
                        Available tests: auth, images, flavors,
89 4f7d5233 Ilias Tsitsimpis
                        servers, server_spawn,
90 4f7d5233 Ilias Tsitsimpis
                        network_spawn, pithos.
91 4f7d5233 Ilias Tsitsimpis
                        Default = all
92 4f7d5233 Ilias Tsitsimpis
93 4f7d5233 Ilias Tsitsimpis
94 3c595590 Ilias Tsitsimpis
Log files
95 3c595590 Ilias Tsitsimpis
=========
96 3c595590 Ilias Tsitsimpis
97 3c595590 Ilias Tsitsimpis
In each run, snf-burnin stores log files in the folder defined in the
98 3c595590 Ilias Tsitsimpis
--log-foler parameter, under the folder with the timestamp of the
99 3c595590 Ilias Tsitsimpis
snf-burnin-run and the image used for it. The name prefixes of the log
100 3c595590 Ilias Tsitsimpis
files are:
101 3c595590 Ilias Tsitsimpis
102 3c595590 Ilias Tsitsimpis
* details: Showing the complete log of snf-burnin run.
103 3c595590 Ilias Tsitsimpis
* error: Showing the testcases that encountered a runtime error.
104 3c595590 Ilias Tsitsimpis
* failed: Showing the testcases that encountered a failure.
105 3c595590 Ilias Tsitsimpis
106 3c595590 Ilias Tsitsimpis
107 4f7d5233 Ilias Tsitsimpis
Detailed description of testcases
108 4f7d5233 Ilias Tsitsimpis
=================================
109 4f7d5233 Ilias Tsitsimpis
110 4f7d5233 Ilias Tsitsimpis
.. _unauthorizedtestcase:
111 4f7d5233 Ilias Tsitsimpis
112 4f7d5233 Ilias Tsitsimpis
UnauthorizedTestCase
113 4f7d5233 Ilias Tsitsimpis
--------------------
114 980190ae Constantinos Venetsanopoulos
* Test that trying to access without a valid token, fails
115 4f7d5233 Ilias Tsitsimpis
116 4f7d5233 Ilias Tsitsimpis
.. _imagestestcase:
117 4f7d5233 Ilias Tsitsimpis
118 4f7d5233 Ilias Tsitsimpis
ImagesTestCase
119 4f7d5233 Ilias Tsitsimpis
--------------
120 4f7d5233 Ilias Tsitsimpis
* Test image list actually returns images
121 980190ae Constantinos Venetsanopoulos
* Test detailed image list has the same length as list
122 980190ae Constantinos Venetsanopoulos
* Test detailed and simple image list contain the same names
123 4f7d5233 Ilias Tsitsimpis
* Test system images have unique names
124 4f7d5233 Ilias Tsitsimpis
* Test every image has specific metadata defined
125 980190ae Constantinos Venetsanopoulos
* Download image from Pithos
126 4f7d5233 Ilias Tsitsimpis
* Upload and register image
127 4f7d5233 Ilias Tsitsimpis
128 4f7d5233 Ilias Tsitsimpis
.. _flavorstestcase:
129 4f7d5233 Ilias Tsitsimpis
130 4f7d5233 Ilias Tsitsimpis
FlavorsTestCase
131 4f7d5233 Ilias Tsitsimpis
---------------
132 4f7d5233 Ilias Tsitsimpis
* Test flavor list actually returns flavors
133 980190ae Constantinos Venetsanopoulos
* Test detailed flavor list has the same length as list
134 980190ae Constantinos Venetsanopoulos
* Test detailed and simple flavor list contain the same names
135 4f7d5233 Ilias Tsitsimpis
* Test flavors have unique names
136 4f7d5233 Ilias Tsitsimpis
* Test flavor names have correct format
137 4f7d5233 Ilias Tsitsimpis
138 4f7d5233 Ilias Tsitsimpis
.. _serverstestcase:
139 4f7d5233 Ilias Tsitsimpis
140 4f7d5233 Ilias Tsitsimpis
ServersTestCase
141 4f7d5233 Ilias Tsitsimpis
---------------
142 4f7d5233 Ilias Tsitsimpis
* Test simple and detailed server list have the same length
143 4f7d5233 Ilias Tsitsimpis
* Test simple and detailed servers have the same names
144 4f7d5233 Ilias Tsitsimpis
145 4f7d5233 Ilias Tsitsimpis
SpawnServerTestCase
146 4f7d5233 Ilias Tsitsimpis
-------------------
147 4f7d5233 Ilias Tsitsimpis
* Submit create server
148 4f7d5233 Ilias Tsitsimpis
* Test server is in BUILD state in server list
149 980190ae Constantinos Venetsanopoulos
* Test server is in BUILD state in server details
150 4f7d5233 Ilias Tsitsimpis
* Change server metadata
151 4f7d5233 Ilias Tsitsimpis
* Verify the changed metadata are correct
152 4f7d5233 Ilias Tsitsimpis
* Verify server metadata are set based on image metadata
153 980190ae Constantinos Venetsanopoulos
* Wait until server changes state to ACTIVE, and verify state
154 4f7d5233 Ilias Tsitsimpis
* Test if OOB server console works
155 4f7d5233 Ilias Tsitsimpis
* Test if server has IPv4
156 4f7d5233 Ilias Tsitsimpis
* Test if server has IPv6
157 4f7d5233 Ilias Tsitsimpis
* Test if server responds to ping on IPv4 address
158 4f7d5233 Ilias Tsitsimpis
* Test if server responds to ping on IPv6 address
159 4f7d5233 Ilias Tsitsimpis
* Submit shutdown request
160 4f7d5233 Ilias Tsitsimpis
* Verify server status is STOPPED
161 4f7d5233 Ilias Tsitsimpis
* Submit start request
162 4f7d5233 Ilias Tsitsimpis
* Test server status is ACTIVE
163 4f7d5233 Ilias Tsitsimpis
* Test if server responds to ping on IPv4 address (verify up and running)
164 4f7d5233 Ilias Tsitsimpis
* Test if server responds to ping on IPv6 address (verify up and running)
165 4f7d5233 Ilias Tsitsimpis
* Test SSH to server and verify hostname (IPv4)
166 4f7d5233 Ilias Tsitsimpis
* Test SSH to server and verify hostname (IPv6)
167 4f7d5233 Ilias Tsitsimpis
* Test RDP connection to server (only for Window Images) (IPv4)
168 4f7d5233 Ilias Tsitsimpis
* Test RDP connection to server (only for Window Images) (IPv6)
169 4f7d5233 Ilias Tsitsimpis
* Test file injection for personality enforcement
170 4f7d5233 Ilias Tsitsimpis
* Submit server delete request
171 4f7d5233 Ilias Tsitsimpis
* Test server becomes DELETED
172 4f7d5233 Ilias Tsitsimpis
* Test server is no longer in server list
173 4f7d5233 Ilias Tsitsimpis
174 4f7d5233 Ilias Tsitsimpis
.. _networktestcase:
175 4f7d5233 Ilias Tsitsimpis
176 4f7d5233 Ilias Tsitsimpis
NetworkTestCase
177 4f7d5233 Ilias Tsitsimpis
---------------
178 4f7d5233 Ilias Tsitsimpis
* Submit create server A request
179 4f7d5233 Ilias Tsitsimpis
* Test server A becomes ACTIVE
180 4f7d5233 Ilias Tsitsimpis
* Submit create server B request
181 4f7d5233 Ilias Tsitsimpis
* Test server B becomes ACTIVE
182 4f7d5233 Ilias Tsitsimpis
* Submit create private network request
183 980190ae Constantinos Venetsanopoulos
* Submit connect VMs to private network
184 4f7d5233 Ilias Tsitsimpis
* Test if VMs are connected to network
185 4f7d5233 Ilias Tsitsimpis
* Submit reboot request to server A
186 4f7d5233 Ilias Tsitsimpis
* Test server A responds to ping on IPv4 address (verify up and running)
187 4f7d5233 Ilias Tsitsimpis
* Submit reboot request to server B
188 4f7d5233 Ilias Tsitsimpis
* Test server B responds to ping on IPv4 address (verify up and running)
189 4f7d5233 Ilias Tsitsimpis
* Connect via SSH and setup the new network interface in server A
190 4f7d5233 Ilias Tsitsimpis
* Connect via SSH and setup the new network interface in server B
191 4f7d5233 Ilias Tsitsimpis
* Connect via SSH to server A and test if server B responds to ping on IPv4 address
192 980190ae Constantinos Venetsanopoulos
* Disconnect servers from network and verify the network details
193 4f7d5233 Ilias Tsitsimpis
* Send delete network request and verify that the network is deleted from the list
194 980190ae Constantinos Venetsanopoulos
* Send request to delete servers and wait until they are actually deleted
195 4f7d5233 Ilias Tsitsimpis
196 4f7d5233 Ilias Tsitsimpis
.. _pithostestcase:
197 4f7d5233 Ilias Tsitsimpis
198 4f7d5233 Ilias Tsitsimpis
PithosTestCase
199 4f7d5233 Ilias Tsitsimpis
--------------
200 4f7d5233 Ilias Tsitsimpis
* Test container list is not empty
201 4f7d5233 Ilias Tsitsimpis
* Test containers have unique names
202 4f7d5233 Ilias Tsitsimpis
* Create a new container
203 4f7d5233 Ilias Tsitsimpis
* Upload simple file to newly created container
204 980190ae Constantinos Venetsanopoulos
* Download file from Pithos and test it is the same with the one uploaded
205 980190ae Constantinos Venetsanopoulos
* Remove created file and container from Pithos
206 3c595590 Ilias Tsitsimpis
207 3c595590 Ilias Tsitsimpis
208 3c595590 Ilias Tsitsimpis
Example scripts
209 3c595590 Ilias Tsitsimpis
===============
210 3c595590 Ilias Tsitsimpis
211 3c595590 Ilias Tsitsimpis
Under /snf-tools/conf you can find example scripts for automating snf-burnin
212 3c595590 Ilias Tsitsimpis
testing using cron.
213 3c595590 Ilias Tsitsimpis
214 3c595590 Ilias Tsitsimpis
* **snf-burnin-run.sh** runs snf-burnin with the given parameters, deletes
215 3c595590 Ilias Tsitsimpis
  stale instances (servers, networks) from old runs and delete logs older
216 3c595590 Ilias Tsitsimpis
  than a week. It aborts if snf-burnin runs for longer than expected.
217 3c595590 Ilias Tsitsimpis
218 3c595590 Ilias Tsitsimpis
* **snf-burnin-output.sh** checks for failed snf-burnin tests the last 30
219 3c595590 Ilias Tsitsimpis
  minutes in a given log folder. Exit status is 0 if no failures were
220 3c595590 Ilias Tsitsimpis
  encountered, else exit status is 1.