root / snf-tools / synnefo_tools / burnin / stale_tests.py @ c2f037ff
History | View | Annotate | Download (5.5 kB)
1 | 8c67f82e | Ilias Tsitsimpis | # Copyright 2013 GRNET S.A. All rights reserved.
|
---|---|---|---|
2 | 8c67f82e | Ilias Tsitsimpis | #
|
3 | 8c67f82e | Ilias Tsitsimpis | # Redistribution and use in source and binary forms, with or
|
4 | 8c67f82e | Ilias Tsitsimpis | # without modification, are permitted provided that the following
|
5 | 8c67f82e | Ilias Tsitsimpis | # conditions are met:
|
6 | 8c67f82e | Ilias Tsitsimpis | #
|
7 | 8c67f82e | Ilias Tsitsimpis | # 1. Redistributions of source code must retain the above
|
8 | 8c67f82e | Ilias Tsitsimpis | # copyright notice, this list of conditions and the following
|
9 | 8c67f82e | Ilias Tsitsimpis | # disclaimer.
|
10 | 8c67f82e | Ilias Tsitsimpis | #
|
11 | 8c67f82e | Ilias Tsitsimpis | # 2. Redistributions in binary form must reproduce the above
|
12 | 8c67f82e | Ilias Tsitsimpis | # copyright notice, this list of conditions and the following
|
13 | 8c67f82e | Ilias Tsitsimpis | # disclaimer in the documentation and/or other materials
|
14 | 8c67f82e | Ilias Tsitsimpis | # provided with the distribution.
|
15 | 8c67f82e | Ilias Tsitsimpis | #
|
16 | 8c67f82e | Ilias Tsitsimpis | # THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
|
17 | 8c67f82e | Ilias Tsitsimpis | # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18 | 8c67f82e | Ilias Tsitsimpis | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
19 | 8c67f82e | Ilias Tsitsimpis | # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
|
20 | 8c67f82e | Ilias Tsitsimpis | # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21 | 8c67f82e | Ilias Tsitsimpis | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22 | 8c67f82e | Ilias Tsitsimpis | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
23 | 8c67f82e | Ilias Tsitsimpis | # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
24 | 8c67f82e | Ilias Tsitsimpis | # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
25 | 8c67f82e | Ilias Tsitsimpis | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
26 | 8c67f82e | Ilias Tsitsimpis | # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
27 | 8c67f82e | Ilias Tsitsimpis | # POSSIBILITY OF SUCH DAMAGE.
|
28 | 8c67f82e | Ilias Tsitsimpis | #
|
29 | 8c67f82e | Ilias Tsitsimpis | # The views and conclusions contained in the software and
|
30 | 8c67f82e | Ilias Tsitsimpis | # documentation are those of the authors and should not be
|
31 | 8c67f82e | Ilias Tsitsimpis | # interpreted as representing official policies, either expressed
|
32 | 8c67f82e | Ilias Tsitsimpis | # or implied, of GRNET S.A.
|
33 | 8c67f82e | Ilias Tsitsimpis | |
34 | 8c67f82e | Ilias Tsitsimpis | """
|
35 | 8c67f82e | Ilias Tsitsimpis | This is the burnin class that handles stale resources (Servers/Networks)
|
36 | 8c67f82e | Ilias Tsitsimpis |
|
37 | 8c67f82e | Ilias Tsitsimpis | """
|
38 | 8c67f82e | Ilias Tsitsimpis | |
39 | 8c67f82e | Ilias Tsitsimpis | from synnefo_tools.burnin.common import Proper, SNF_TEST_PREFIX |
40 | 8c67f82e | Ilias Tsitsimpis | from synnefo_tools.burnin.cyclades_common import CycladesTests |
41 | 8c67f82e | Ilias Tsitsimpis | |
42 | 8c67f82e | Ilias Tsitsimpis | |
43 | 9355a604 | Ilias Tsitsimpis | # pylint: disable=too-many-public-methods
|
44 | 8c67f82e | Ilias Tsitsimpis | class StaleServersTestSuite(CycladesTests): |
45 | 8c67f82e | Ilias Tsitsimpis | """Handle stale Servers"""
|
46 | 8c67f82e | Ilias Tsitsimpis | stale_servers = Proper(value=None)
|
47 | 8c67f82e | Ilias Tsitsimpis | |
48 | 8c67f82e | Ilias Tsitsimpis | def test_001_show_stale_servers(self): |
49 | 8c67f82e | Ilias Tsitsimpis | """Show staled servers (servers left from previous runs)"""
|
50 | 60a80953 | Ilias Tsitsimpis | servers = self._get_list_of_servers(detail=True) |
51 | 8c67f82e | Ilias Tsitsimpis | self.stale_servers = [s for s in servers |
52 | 8c67f82e | Ilias Tsitsimpis | if s['name'].startswith(SNF_TEST_PREFIX)] |
53 | 8c67f82e | Ilias Tsitsimpis | |
54 | 8c67f82e | Ilias Tsitsimpis | len_stale = len(self.stale_servers) |
55 | 8c67f82e | Ilias Tsitsimpis | if len_stale == 0: |
56 | 8c67f82e | Ilias Tsitsimpis | self.info("No stale servers found") |
57 | 8c67f82e | Ilias Tsitsimpis | return
|
58 | 8c67f82e | Ilias Tsitsimpis | |
59 | 8c67f82e | Ilias Tsitsimpis | self.info("Found %s stale servers:", len_stale) |
60 | 8c67f82e | Ilias Tsitsimpis | for stl in self.stale_servers: |
61 | 8c67f82e | Ilias Tsitsimpis | self.info(" Server \"%s\" with id %s", stl['name'], stl['id']) |
62 | 8c67f82e | Ilias Tsitsimpis | |
63 | 8c67f82e | Ilias Tsitsimpis | def test_002_delete_stale_servers(self): |
64 | 8c67f82e | Ilias Tsitsimpis | """Delete staled servers (servers left from previous runs)"""
|
65 | 8c67f82e | Ilias Tsitsimpis | len_stale = len(self.stale_servers) |
66 | 8c67f82e | Ilias Tsitsimpis | if not self.delete_stale and len_stale != 0: |
67 | 60a80953 | Ilias Tsitsimpis | self.fail("Use --delete-stale flag to delete stale servers") |
68 | 8c67f82e | Ilias Tsitsimpis | elif len_stale == 0: |
69 | 8c67f82e | Ilias Tsitsimpis | self.info("No stale servers found") |
70 | 8c67f82e | Ilias Tsitsimpis | else:
|
71 | 60a80953 | Ilias Tsitsimpis | self.info("Deleting %s stale servers", len_stale) |
72 | 60a80953 | Ilias Tsitsimpis | self._delete_servers(self.stale_servers, error=True) |
73 | 8c67f82e | Ilias Tsitsimpis | |
74 | 60a80953 | Ilias Tsitsimpis | |
75 | 9355a604 | Ilias Tsitsimpis | # pylint: disable=too-many-public-methods
|
76 | 60a80953 | Ilias Tsitsimpis | class StaleFloatingIPsTestSuite(CycladesTests): |
77 | 60a80953 | Ilias Tsitsimpis | """Handle stale Floating IPs"""
|
78 | 60a80953 | Ilias Tsitsimpis | stale_ips = Proper(value=None)
|
79 | 60a80953 | Ilias Tsitsimpis | |
80 | 60a80953 | Ilias Tsitsimpis | def test_001_show_stale_ips(self): |
81 | 60a80953 | Ilias Tsitsimpis | """Show staled floating IPs"""
|
82 | 60a80953 | Ilias Tsitsimpis | floating_ips = self.clients.network.list_floatingips()
|
83 | 60a80953 | Ilias Tsitsimpis | # We consider all the floating ips that are not attached
|
84 | 60a80953 | Ilias Tsitsimpis | # anywhere as stale ips.
|
85 | 60a80953 | Ilias Tsitsimpis | self.stale_ips = [ip for ip in floating_ips |
86 | 60a80953 | Ilias Tsitsimpis | if ip['instance_id'] is None] |
87 | 60a80953 | Ilias Tsitsimpis | |
88 | 60a80953 | Ilias Tsitsimpis | len_stale = len(self.stale_ips) |
89 | 60a80953 | Ilias Tsitsimpis | if len_stale == 0: |
90 | 60a80953 | Ilias Tsitsimpis | self.info("No stale floating IPs found") |
91 | 60a80953 | Ilias Tsitsimpis | return
|
92 | 60a80953 | Ilias Tsitsimpis | |
93 | 60a80953 | Ilias Tsitsimpis | self.info("Found %s stale floating IPs:", len_stale) |
94 | 60a80953 | Ilias Tsitsimpis | for stl in self.stale_ips: |
95 | 60a80953 | Ilias Tsitsimpis | self.info(" Floating IP %s with id %s", |
96 | 60a80953 | Ilias Tsitsimpis | stl['floating_ip_address'], stl['id']) |
97 | 60a80953 | Ilias Tsitsimpis | |
98 | 60a80953 | Ilias Tsitsimpis | def test_002_delete_stale_ips(self): |
99 | 60a80953 | Ilias Tsitsimpis | """Delete staled floating IPs"""
|
100 | 60a80953 | Ilias Tsitsimpis | len_stale = len(self.stale_ips) |
101 | 60a80953 | Ilias Tsitsimpis | if not self.delete_stale and len_stale != 0: |
102 | 60a80953 | Ilias Tsitsimpis | self.fail("Use --delete-stale flag to delete stale floating IPs") |
103 | 60a80953 | Ilias Tsitsimpis | elif len_stale == 0: |
104 | 60a80953 | Ilias Tsitsimpis | self.info("No stale floating IPs found") |
105 | 60a80953 | Ilias Tsitsimpis | else:
|
106 | 3966cea9 | Ilias Tsitsimpis | self.info("Deleting %s stale floating IPs", len_stale) |
107 | 3966cea9 | Ilias Tsitsimpis | self._delete_floating_ips(self.stale_ips) |
108 | 8c67f82e | Ilias Tsitsimpis | |
109 | 8c67f82e | Ilias Tsitsimpis | |
110 | 9355a604 | Ilias Tsitsimpis | # pylint: disable=too-many-public-methods
|
111 | 8c67f82e | Ilias Tsitsimpis | class StaleNetworksTestSuite(CycladesTests): |
112 | 8c67f82e | Ilias Tsitsimpis | """Handle stale Networks"""
|
113 | 3eaf0ec5 | Ilias Tsitsimpis | stale_networks = Proper(value=None)
|
114 | 3eaf0ec5 | Ilias Tsitsimpis | |
115 | 8c67f82e | Ilias Tsitsimpis | def test_001_show_stale_networks(self): |
116 | 8c67f82e | Ilias Tsitsimpis | """Show staled networks (networks left from previous runs)"""
|
117 | 3eaf0ec5 | Ilias Tsitsimpis | networks = self._get_list_of_networks()
|
118 | 3eaf0ec5 | Ilias Tsitsimpis | self.stale_networks = [n for n in networks |
119 | 3eaf0ec5 | Ilias Tsitsimpis | if n['name'].startswith(SNF_TEST_PREFIX)] |
120 | 3eaf0ec5 | Ilias Tsitsimpis | |
121 | 3eaf0ec5 | Ilias Tsitsimpis | len_stale = len(self.stale_networks) |
122 | 3eaf0ec5 | Ilias Tsitsimpis | if len_stale == 0: |
123 | 3eaf0ec5 | Ilias Tsitsimpis | self.info("No stale networks found") |
124 | 3eaf0ec5 | Ilias Tsitsimpis | return
|
125 | 3eaf0ec5 | Ilias Tsitsimpis | |
126 | 3eaf0ec5 | Ilias Tsitsimpis | self.info("Found %s stale networks:", len_stale) |
127 | 3eaf0ec5 | Ilias Tsitsimpis | for stl in self.stale_networks: |
128 | 3eaf0ec5 | Ilias Tsitsimpis | self.info(" Network \"%s\" with id %s", stl['name'], stl['id']) |
129 | 3eaf0ec5 | Ilias Tsitsimpis | |
130 | 3eaf0ec5 | Ilias Tsitsimpis | def test_002_delete_stale_networks(self): |
131 | 3eaf0ec5 | Ilias Tsitsimpis | """Delete staled networks (networks left from previous runs)"""
|
132 | 3eaf0ec5 | Ilias Tsitsimpis | len_stale = len(self.stale_networks) |
133 | 3eaf0ec5 | Ilias Tsitsimpis | if not self.delete_stale and len_stale != 0: |
134 | 60a80953 | Ilias Tsitsimpis | self.fail("Use --delete-stale flag to delete stale networks") |
135 | 3eaf0ec5 | Ilias Tsitsimpis | elif len_stale == 0: |
136 | 3eaf0ec5 | Ilias Tsitsimpis | self.info("No stale networks found") |
137 | 3eaf0ec5 | Ilias Tsitsimpis | else:
|
138 | 60a80953 | Ilias Tsitsimpis | self.info("Deleting %s stale networks", len_stale) |
139 | 60a80953 | Ilias Tsitsimpis | self._delete_networks(self.stale_networks) |