root / kamaki / clients / livetest / cyclades.py @ 864767eb
History | View | Annotate | Download (28 kB)
1 | b482315a | Stavros Sachtouris | # Copyright 2012-2013 GRNET S.A. All rights reserved.
|
---|---|---|---|
2 | b482315a | Stavros Sachtouris | #
|
3 | b482315a | Stavros Sachtouris | # Redistribution and use in source and binary forms, with or
|
4 | b482315a | Stavros Sachtouris | # without modification, are permitted provided that the following
|
5 | b482315a | Stavros Sachtouris | # conditions are met:
|
6 | b482315a | Stavros Sachtouris | #
|
7 | b482315a | Stavros Sachtouris | # 1. Redistributions of source code must retain the above
|
8 | b482315a | Stavros Sachtouris | # copyright notice, this list of conditions and the following
|
9 | b482315a | Stavros Sachtouris | # disclaimer.
|
10 | b482315a | Stavros Sachtouris | #
|
11 | b482315a | Stavros Sachtouris | # 2. Redistributions in binary form must reproduce the above
|
12 | b482315a | Stavros Sachtouris | # copyright notice, this list of conditions and the following
|
13 | b482315a | Stavros Sachtouris | # disclaimer in the documentation and/or other materials
|
14 | b482315a | Stavros Sachtouris | # provided with the distribution.
|
15 | b482315a | Stavros Sachtouris | #
|
16 | b482315a | Stavros Sachtouris | # THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
|
17 | b482315a | Stavros Sachtouris | # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
18 | b482315a | Stavros Sachtouris | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
19 | b482315a | Stavros Sachtouris | # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
|
20 | b482315a | Stavros Sachtouris | # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
21 | b482315a | Stavros Sachtouris | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
22 | b482315a | Stavros Sachtouris | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
23 | b482315a | Stavros Sachtouris | # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
24 | b482315a | Stavros Sachtouris | # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
25 | b482315a | Stavros Sachtouris | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
26 | b482315a | Stavros Sachtouris | # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
27 | b482315a | Stavros Sachtouris | # POSSIBILITY OF SUCH DAMAGE.
|
28 | b482315a | Stavros Sachtouris | #
|
29 | b482315a | Stavros Sachtouris | # The views and conclusions contained in the software and
|
30 | b482315a | Stavros Sachtouris | # documentation are those of the authors and should not be
|
31 | b482315a | Stavros Sachtouris | # interpreted as representing official policies, either expressed
|
32 | b482315a | Stavros Sachtouris | # or implied, of GRNET S.A.
|
33 | b482315a | Stavros Sachtouris | |
34 | 03493855 | Stavros Sachtouris | import time |
35 | b482315a | Stavros Sachtouris | |
36 | 03493855 | Stavros Sachtouris | from kamaki.clients import livetest, ClientError |
37 | 03493855 | Stavros Sachtouris | from kamaki.clients.cyclades import CycladesClient |
38 | 9b745324 | Stavros Sachtouris | from kamaki.clients.astakos import AstakosClient |
39 | b482315a | Stavros Sachtouris | |
40 | 03493855 | Stavros Sachtouris | |
41 | 03493855 | Stavros Sachtouris | class Cyclades(livetest.Generic): |
42 | 03493855 | Stavros Sachtouris | """Set up a Cyclades test"""
|
43 | b482315a | Stavros Sachtouris | def setUp(self): |
44 | 03493855 | Stavros Sachtouris | print
|
45 | df0045d8 | Stavros Sachtouris | with open(self['cmpimage', 'details']) as f: |
46 | 03493855 | Stavros Sachtouris | self.img_details = eval(f.read()) |
47 | 03493855 | Stavros Sachtouris | self.img = self.img_details['id'] |
48 | 03493855 | Stavros Sachtouris | with open(self['flavor', 'details']) as f: |
49 | 03493855 | Stavros Sachtouris | self._flavor_details = eval(f.read()) |
50 | 03493855 | Stavros Sachtouris | self.PROFILES = ('ENABLED', 'DISABLED', 'PROTECTED') |
51 | 03493855 | Stavros Sachtouris | |
52 | 03493855 | Stavros Sachtouris | self.servers = {}
|
53 | 03493855 | Stavros Sachtouris | self.now = time.mktime(time.gmtime())
|
54 | 03493855 | Stavros Sachtouris | self.servname1 = 'serv' + unicode(self.now) |
55 | 03493855 | Stavros Sachtouris | self.servname2 = self.servname1 + '_v2' |
56 | 03493855 | Stavros Sachtouris | self.servname1 += '_v1' |
57 | 2feb9477 | Stavros Sachtouris | self.flavorid = self._flavor_details['id'] |
58 | 03493855 | Stavros Sachtouris | #servers have to be created at the begining...
|
59 | 03493855 | Stavros Sachtouris | self.networks = {}
|
60 | 03493855 | Stavros Sachtouris | self.netname1 = 'net' + unicode(self.now) |
61 | 03493855 | Stavros Sachtouris | self.netname2 = 'net' + unicode(self.now) + '_v2' |
62 | 03493855 | Stavros Sachtouris | |
63 | 2feb9477 | Stavros Sachtouris | self.cloud = 'cloud.%s' % self['testcloud'] |
64 | 2feb9477 | Stavros Sachtouris | aurl, self.token = self[self.cloud, 'url'], self[self.cloud, 'token'] |
65 | 9b745324 | Stavros Sachtouris | self.auth_base = AstakosClient(aurl, self.token) |
66 | 9b745324 | Stavros Sachtouris | curl = self.auth_base.get_service_endpoints('compute')['publicURL'] |
67 | 9b745324 | Stavros Sachtouris | self.client = CycladesClient(curl, self.token) |
68 | b482315a | Stavros Sachtouris | |
69 | b482315a | Stavros Sachtouris | def tearDown(self): |
70 | 03493855 | Stavros Sachtouris | """Destoy servers used in testing"""
|
71 | 03493855 | Stavros Sachtouris | for net in self.networks.keys(): |
72 | 03493855 | Stavros Sachtouris | self._delete_network(net)
|
73 | 03493855 | Stavros Sachtouris | for server in self.servers.values(): |
74 | 03493855 | Stavros Sachtouris | self._delete_server(server['id']) |
75 | 03493855 | Stavros Sachtouris | print('DEL VM %s (%s)' % (server['id'], server['name'])) |
76 | 03493855 | Stavros Sachtouris | |
77 | 03493855 | Stavros Sachtouris | def test_000(self): |
78 | 03493855 | Stavros Sachtouris | "Prepare a full Cyclades test scenario"
|
79 | 03493855 | Stavros Sachtouris | self.server1 = self._create_server( |
80 | 8a8faf8c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
81 | 03493855 | Stavros Sachtouris | self.server2 = self._create_server( |
82 | 8a8faf8c | Stavros Sachtouris | self.servname2, self.flavorid, self.img) |
83 | 03493855 | Stavros Sachtouris | super(self.__class__, self).test_000() |
84 | 03493855 | Stavros Sachtouris | |
85 | 03493855 | Stavros Sachtouris | def _create_server(self, servername, flavorid, imageid, personality=None): |
86 | 03493855 | Stavros Sachtouris | server = self.client.create_server(
|
87 | 07fdc00c | Stavros Sachtouris | servername, flavorid, imageid, personality=personality) |
88 | 03493855 | Stavros Sachtouris | print('CREATE VM %s (%s)' % (server['id'], server['name'])) |
89 | 03493855 | Stavros Sachtouris | self.servers[servername] = server
|
90 | 03493855 | Stavros Sachtouris | return server
|
91 | 03493855 | Stavros Sachtouris | |
92 | 03493855 | Stavros Sachtouris | def _delete_server(self, servid): |
93 | 03493855 | Stavros Sachtouris | try:
|
94 | 03493855 | Stavros Sachtouris | current_state = self.client.get_server_details(servid)
|
95 | 03493855 | Stavros Sachtouris | current_state = current_state['status']
|
96 | 03493855 | Stavros Sachtouris | if current_state == 'DELETED': |
97 | 03493855 | Stavros Sachtouris | return
|
98 | 03493855 | Stavros Sachtouris | self.client.delete_server(servid)
|
99 | 03493855 | Stavros Sachtouris | self._wait_for_status(servid, current_state)
|
100 | 03493855 | Stavros Sachtouris | self.client.delete_server(servid)
|
101 | 03493855 | Stavros Sachtouris | except:
|
102 | 03493855 | Stavros Sachtouris | return
|
103 | 03493855 | Stavros Sachtouris | |
104 | 03493855 | Stavros Sachtouris | def _create_network(self, netname, **kwargs): |
105 | 03493855 | Stavros Sachtouris | net = self.client.create_network(netname, **kwargs)
|
106 | 03493855 | Stavros Sachtouris | self.networks[net['id']] = net |
107 | 03493855 | Stavros Sachtouris | return net
|
108 | 03493855 | Stavros Sachtouris | |
109 | 03493855 | Stavros Sachtouris | def _delete_network(self, netid): |
110 | 03493855 | Stavros Sachtouris | if not netid in self.networks: |
111 | 03493855 | Stavros Sachtouris | return None |
112 | 03493855 | Stavros Sachtouris | print('Disconnect nics of network %s' % netid)
|
113 | 03493855 | Stavros Sachtouris | self.client.disconnect_network_nics(netid)
|
114 | 03493855 | Stavros Sachtouris | |
115 | 03493855 | Stavros Sachtouris | def netwait(wait): |
116 | 03493855 | Stavros Sachtouris | try:
|
117 | 03493855 | Stavros Sachtouris | self.client.delete_network(netid)
|
118 | 03493855 | Stavros Sachtouris | except ClientError:
|
119 | 03493855 | Stavros Sachtouris | time.sleep(wait) |
120 | 03493855 | Stavros Sachtouris | self.do_with_progress_bar(
|
121 | 03493855 | Stavros Sachtouris | netwait, |
122 | 03493855 | Stavros Sachtouris | 'Delete network %s' % netid,
|
123 | 03493855 | Stavros Sachtouris | self._waits[:7]) |
124 | 03493855 | Stavros Sachtouris | return self.networks.pop(netid) |
125 | 03493855 | Stavros Sachtouris | |
126 | 03493855 | Stavros Sachtouris | def _wait_for_network(self, netid, status): |
127 | 03493855 | Stavros Sachtouris | |
128 | 03493855 | Stavros Sachtouris | def netwait(wait): |
129 | 03493855 | Stavros Sachtouris | r = self.client.get_network_details(netid)
|
130 | 03493855 | Stavros Sachtouris | if r['status'] == status: |
131 | 03493855 | Stavros Sachtouris | return
|
132 | 03493855 | Stavros Sachtouris | time.sleep(wait) |
133 | 03493855 | Stavros Sachtouris | self.do_with_progress_bar(
|
134 | 03493855 | Stavros Sachtouris | netwait, |
135 | 03493855 | Stavros Sachtouris | 'Wait network %s to reach status %s' % (netid, status),
|
136 | 03493855 | Stavros Sachtouris | self._waits[:5]) |
137 | 03493855 | Stavros Sachtouris | |
138 | 03493855 | Stavros Sachtouris | def _wait_for_nic(self, netid, servid, in_creation=True): |
139 | 03493855 | Stavros Sachtouris | self._wait_for_network(netid, 'ACTIVE') |
140 | 03493855 | Stavros Sachtouris | |
141 | 03493855 | Stavros Sachtouris | def nicwait(wait): |
142 | 03493855 | Stavros Sachtouris | nics = self.client.list_server_nics(servid)
|
143 | 03493855 | Stavros Sachtouris | for net in nics: |
144 | 03493855 | Stavros Sachtouris | found_nic = net['network_id'] == netid
|
145 | 03493855 | Stavros Sachtouris | if (in_creation and found_nic) or not ( |
146 | 03493855 | Stavros Sachtouris | in_creation or found_nic):
|
147 | 03493855 | Stavros Sachtouris | return
|
148 | 03493855 | Stavros Sachtouris | time.sleep(wait) |
149 | 03493855 | Stavros Sachtouris | self.do_with_progress_bar(
|
150 | 03493855 | Stavros Sachtouris | nicwait, |
151 | 03493855 | Stavros Sachtouris | 'Wait nic-%s-%s to %sconnect' % (
|
152 | 03493855 | Stavros Sachtouris | netid, |
153 | 03493855 | Stavros Sachtouris | servid, |
154 | 03493855 | Stavros Sachtouris | '' if in_creation else 'dis'), |
155 | 03493855 | Stavros Sachtouris | self._waits[:5]) |
156 | 03493855 | Stavros Sachtouris | for net in self.client.list_server_nics(servid): |
157 | 03493855 | Stavros Sachtouris | if netid == net['network_id']: |
158 | 03493855 | Stavros Sachtouris | return True |
159 | 03493855 | Stavros Sachtouris | return False |
160 | 03493855 | Stavros Sachtouris | |
161 | 03493855 | Stavros Sachtouris | def _has_status(self, servid, status): |
162 | 03493855 | Stavros Sachtouris | r = self.client.get_server_details(servid)
|
163 | b773795c | Stavros Sachtouris | #print 'MY ', servid, ' STATUS IS ', r['status']
|
164 | 03493855 | Stavros Sachtouris | return r['status'] == status |
165 | 03493855 | Stavros Sachtouris | |
166 | 03493855 | Stavros Sachtouris | def _wait_for_status(self, servid, status): |
167 | 03493855 | Stavros Sachtouris | (wait_bar, wait_cb) = self._safe_progress_bar(
|
168 | 03493855 | Stavros Sachtouris | 'Server %s in %s' % (servid, status))
|
169 | 3d6a513a | Stavros Sachtouris | self.client.wait_server(
|
170 | 3d6a513a | Stavros Sachtouris | servid, status, wait_cb=wait_cb, delay=2, max_wait=198) |
171 | 03493855 | Stavros Sachtouris | self._safe_progress_bar_finish(wait_bar)
|
172 | 02846a75 | Stavros Sachtouris | |
173 | db77d79e | Stavros Sachtouris | def test_parallel_creation(self): |
174 | 03493855 | Stavros Sachtouris | """test create with multiple threads
|
175 | f5f2dc53 | Stavros Sachtouris | Do not use this in regular livetest
|
176 | 03493855 | Stavros Sachtouris | """
|
177 | db77d79e | Stavros Sachtouris | from kamaki.clients import SilentEvent |
178 | b773795c | Stavros Sachtouris | c = [] |
179 | b773795c | Stavros Sachtouris | for i in range(8): |
180 | b773795c | Stavros Sachtouris | sname = '%s_%s' % (self.servname1, i) |
181 | b773795c | Stavros Sachtouris | c.append(SilentEvent( |
182 | b773795c | Stavros Sachtouris | self._create_server, sname, self.flavorid, self.img)) |
183 | b773795c | Stavros Sachtouris | for i in range(8): |
184 | b773795c | Stavros Sachtouris | c[i].start() |
185 | db77d79e | Stavros Sachtouris | |
186 | db77d79e | Stavros Sachtouris | def test_create_server(self): |
187 | 03493855 | Stavros Sachtouris | """Test create_server"""
|
188 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
189 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
190 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
191 | db77d79e | Stavros Sachtouris | self._test_0010_create_server()
|
192 | db77d79e | Stavros Sachtouris | |
193 | db77d79e | Stavros Sachtouris | def _test_0010_create_server(self): |
194 | db77d79e | Stavros Sachtouris | self.assertEqual(self.server1["name"], self.servname1) |
195 | c088076b | Stavros Sachtouris | self.assertEqual(self.server1["flavor"]["id"], self.flavorid) |
196 | c088076b | Stavros Sachtouris | self.assertEqual(self.server1["image"]["id"], self.img) |
197 | db77d79e | Stavros Sachtouris | self.assertEqual(self.server1["status"], "BUILD") |
198 | db77d79e | Stavros Sachtouris | |
199 | 02846a75 | Stavros Sachtouris | def test_list_servers(self): |
200 | 03493855 | Stavros Sachtouris | """Test list servers"""
|
201 | 02846a75 | Stavros Sachtouris | self.server1 = self._create_server( |
202 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
203 | 02846a75 | Stavros Sachtouris | self.server2 = self._create_server( |
204 | b773795c | Stavros Sachtouris | self.servname2, self.flavorid, self.img) |
205 | db77d79e | Stavros Sachtouris | self._test_0020_list_servers()
|
206 | 02846a75 | Stavros Sachtouris | |
207 | db77d79e | Stavros Sachtouris | def _test_0020_list_servers(self): |
208 | 02846a75 | Stavros Sachtouris | servers = self.client.list_servers()
|
209 | 02846a75 | Stavros Sachtouris | dservers = self.client.list_servers(detail=True) |
210 | 02846a75 | Stavros Sachtouris | |
211 | 03493855 | Stavros Sachtouris | """detailed and simple are same size"""
|
212 | 02846a75 | Stavros Sachtouris | self.assertEqual(len(dservers), len(servers)) |
213 | b773795c | Stavros Sachtouris | fields = set([
|
214 | b773795c | Stavros Sachtouris | 'created', 'flavor', 'hostId', 'image', 'progress', 'status', |
215 | b773795c | Stavros Sachtouris | 'updated'])
|
216 | b773795c | Stavros Sachtouris | for i, srv in enumerate(servers): |
217 | b773795c | Stavros Sachtouris | self.assertTrue(fields.isdisjoint(srv))
|
218 | b773795c | Stavros Sachtouris | self.assertTrue(fields.issubset(dservers[i]))
|
219 | 02846a75 | Stavros Sachtouris | |
220 | 03493855 | Stavros Sachtouris | """detailed and simple contain same names"""
|
221 | 02846a75 | Stavros Sachtouris | names = sorted(map(lambda x: x["name"], servers)) |
222 | 02846a75 | Stavros Sachtouris | dnames = sorted(map(lambda x: x["name"], dservers)) |
223 | 02846a75 | Stavros Sachtouris | self.assertEqual(names, dnames)
|
224 | db77d79e | Stavros Sachtouris | |
225 | db77d79e | Stavros Sachtouris | def _test_0030_wait_test_servers_to_build(self): |
226 | 03493855 | Stavros Sachtouris | """Pseudo-test to wait for VMs to load"""
|
227 | d1f78278 | Stavros Sachtouris | print('')
|
228 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
229 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server2['id'], 'BUILD') |
230 | db77d79e | Stavros Sachtouris | |
231 | db77d79e | Stavros Sachtouris | def test_get_server_details(self): |
232 | 03493855 | Stavros Sachtouris | """Test get_server_details"""
|
233 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
234 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
235 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
236 | db77d79e | Stavros Sachtouris | self._test_0040_get_server_details()
|
237 | db77d79e | Stavros Sachtouris | |
238 | db77d79e | Stavros Sachtouris | def _test_0040_get_server_details(self): |
239 | db77d79e | Stavros Sachtouris | r = self.client.get_server_details(self.server1['id']) |
240 | db77d79e | Stavros Sachtouris | self.assertEqual(r["name"], self.servname1) |
241 | c088076b | Stavros Sachtouris | self.assertEqual(r["flavor"]["id"], self.flavorid) |
242 | c088076b | Stavros Sachtouris | self.assertEqual(r["image"]["id"], self.img) |
243 | db77d79e | Stavros Sachtouris | self.assertEqual(r["status"], "ACTIVE") |
244 | db77d79e | Stavros Sachtouris | |
245 | db77d79e | Stavros Sachtouris | def test_update_server_name(self): |
246 | 03493855 | Stavros Sachtouris | """Test update_server_name"""
|
247 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
248 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
249 | db77d79e | Stavros Sachtouris | self._test_0050_update_server_name()
|
250 | db77d79e | Stavros Sachtouris | |
251 | db77d79e | Stavros Sachtouris | def _test_0050_update_server_name(self): |
252 | db77d79e | Stavros Sachtouris | new_name = self.servname1 + '_new_name' |
253 | db77d79e | Stavros Sachtouris | self.client.update_server_name(self.server1['id'], new_name) |
254 | 2005b18e | Stavros Sachtouris | r = self.client.get_server_details(
|
255 | b773795c | Stavros Sachtouris | self.server1['id'], success=(200, 400)) |
256 | db77d79e | Stavros Sachtouris | self.assertEqual(r['name'], new_name) |
257 | db77d79e | Stavros Sachtouris | changed = self.servers.pop(self.servname1) |
258 | db77d79e | Stavros Sachtouris | changed['name'] = new_name
|
259 | db77d79e | Stavros Sachtouris | self.servers[new_name] = changed
|
260 | db77d79e | Stavros Sachtouris | |
261 | db77d79e | Stavros Sachtouris | def test_reboot_server(self): |
262 | 03493855 | Stavros Sachtouris | """Test reboot server"""
|
263 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
264 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
265 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
266 | 24ff0a35 | Stavros Sachtouris | self.server2 = self._create_server( |
267 | b773795c | Stavros Sachtouris | self.servname2, self.flavorid + 2, self.img) |
268 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server2['id'], 'BUILD') |
269 | db77d79e | Stavros Sachtouris | self._test_0060_reboot_server()
|
270 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'REBOOT') |
271 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server2['id'], 'REBOOT') |
272 | db77d79e | Stavros Sachtouris | |
273 | db77d79e | Stavros Sachtouris | def _test_0060_reboot_server(self): |
274 | db77d79e | Stavros Sachtouris | self.client.reboot_server(self.server1['id']) |
275 | db77d79e | Stavros Sachtouris | self.assertTrue(self._has_status(self.server1['id'], 'REBOOT')) |
276 | db77d79e | Stavros Sachtouris | self.client.reboot_server(self.server2['id'], hard=True) |
277 | db77d79e | Stavros Sachtouris | self.assertTrue(self._has_status(self.server2['id'], 'REBOOT')) |
278 | db77d79e | Stavros Sachtouris | |
279 | 8a8faf8c | Stavros Sachtouris | def test_resize_server(self): |
280 | 8a8faf8c | Stavros Sachtouris | """Modify the flavor of a server"""
|
281 | 8a8faf8c | Stavros Sachtouris | self.server1 = self._create_server( |
282 | 8a8faf8c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
283 | 8a8faf8c | Stavros Sachtouris | self._test_0065_resize_server()
|
284 | 8a8faf8c | Stavros Sachtouris | self.delete_server(self.server1['id']) |
285 | 8a8faf8c | Stavros Sachtouris | self.server1 = self._create_server( |
286 | 8a8faf8c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
287 | 8a8faf8c | Stavros Sachtouris | |
288 | b773795c | Stavros Sachtouris | def _test_0065_resize_server(self): |
289 | b773795c | Stavros Sachtouris | self.client.resize_server(self.servname1, self.flavorid + 2) |
290 | 8a8faf8c | Stavros Sachtouris | srv = self.client.get_flavor_details(self.server1['id']) |
291 | b773795c | Stavros Sachtouris | self.assertEqual(srv['flavor']['id'], self.flavorid + 2) |
292 | 8a8faf8c | Stavros Sachtouris | |
293 | db77d79e | Stavros Sachtouris | def _test_0070_wait_test_servers_to_reboot(self): |
294 | 03493855 | Stavros Sachtouris | """Pseudo-test to wait for VMs to load"""
|
295 | d1f78278 | Stavros Sachtouris | print('')
|
296 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'REBOOT') |
297 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server2['id'], 'REBOOT') |
298 | db77d79e | Stavros Sachtouris | |
299 | db77d79e | Stavros Sachtouris | def test_create_server_metadata(self): |
300 | 03493855 | Stavros Sachtouris | """Test create_server_metadata"""
|
301 | 2005b18e | Stavros Sachtouris | self.server1 = self._create_server( |
302 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
303 | db77d79e | Stavros Sachtouris | self._test_0080_create_server_metadata()
|
304 | db77d79e | Stavros Sachtouris | |
305 | db77d79e | Stavros Sachtouris | def _test_0080_create_server_metadata(self): |
306 | 24ff0a35 | Stavros Sachtouris | r1 = self.client.create_server_metadata(
|
307 | b773795c | Stavros Sachtouris | self.server1['id'], 'mymeta', 'mymeta val') |
308 | db77d79e | Stavros Sachtouris | self.assertTrue('mymeta' in r1) |
309 | db77d79e | Stavros Sachtouris | r2 = self.client.get_server_metadata(self.server1['id'], 'mymeta') |
310 | c088076b | Stavros Sachtouris | self.assert_dicts_are_equal(r1, r2)
|
311 | db77d79e | Stavros Sachtouris | |
312 | db77d79e | Stavros Sachtouris | def test_get_server_metadata(self): |
313 | 03493855 | Stavros Sachtouris | """Test get server_metadata"""
|
314 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
315 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
316 | db77d79e | Stavros Sachtouris | self._test_0090_get_server_metadata()
|
317 | db77d79e | Stavros Sachtouris | |
318 | db77d79e | Stavros Sachtouris | def _test_0090_get_server_metadata(self): |
319 | df0045d8 | Stavros Sachtouris | self.client.update_server_metadata(
|
320 | df0045d8 | Stavros Sachtouris | self.server1['id'], mymeta_0='val_0') |
321 | db77d79e | Stavros Sachtouris | r = self.client.get_server_metadata(self.server1['id'], 'mymeta_0') |
322 | db77d79e | Stavros Sachtouris | self.assertEqual(r['mymeta_0'], 'val_0') |
323 | db77d79e | Stavros Sachtouris | |
324 | db77d79e | Stavros Sachtouris | def test_update_server_metadata(self): |
325 | 03493855 | Stavros Sachtouris | """Test update_server_metadata"""
|
326 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
327 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
328 | db77d79e | Stavros Sachtouris | self._test_0100_update_server_metadata()
|
329 | db77d79e | Stavros Sachtouris | |
330 | db77d79e | Stavros Sachtouris | def _test_0100_update_server_metadata(self): |
331 | df0045d8 | Stavros Sachtouris | r1 = self.client.update_server_metadata(
|
332 | df0045d8 | Stavros Sachtouris | self.server1['id'], mymeta3='val2') |
333 | db77d79e | Stavros Sachtouris | self.assertTrue('mymeta3'in r1) |
334 | 24ff0a35 | Stavros Sachtouris | r2 = self.client.update_server_metadata(
|
335 | df0045d8 | Stavros Sachtouris | self.server1['id'], mymeta3='val3') |
336 | db77d79e | Stavros Sachtouris | self.assertTrue(r2['mymeta3'], 'val3') |
337 | db77d79e | Stavros Sachtouris | |
338 | db77d79e | Stavros Sachtouris | def test_delete_server_metadata(self): |
339 | 03493855 | Stavros Sachtouris | """Test delete_server_metadata"""
|
340 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
341 | df0045d8 | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
342 | db77d79e | Stavros Sachtouris | self._test_0110_delete_server_metadata()
|
343 | db77d79e | Stavros Sachtouris | |
344 | db77d79e | Stavros Sachtouris | def _test_0110_delete_server_metadata(self): |
345 | df0045d8 | Stavros Sachtouris | r1 = self.client.update_server_metadata(
|
346 | df0045d8 | Stavros Sachtouris | self.server1['id'], mymeta='val') |
347 | db77d79e | Stavros Sachtouris | self.assertTrue('mymeta' in r1) |
348 | db77d79e | Stavros Sachtouris | self.client.delete_server_metadata(self.server1['id'], 'mymeta') |
349 | db77d79e | Stavros Sachtouris | try:
|
350 | db77d79e | Stavros Sachtouris | self.client.get_server_metadata(self.server1['id'], 'mymeta') |
351 | db77d79e | Stavros Sachtouris | raise ClientError('Wrong Error', status=100) |
352 | db77d79e | Stavros Sachtouris | except ClientError as err: |
353 | db77d79e | Stavros Sachtouris | self.assertEqual(err.status, 404) |
354 | db77d79e | Stavros Sachtouris | |
355 | db77d79e | Stavros Sachtouris | def test_list_flavors(self): |
356 | 03493855 | Stavros Sachtouris | """Test flavors_get"""
|
357 | db77d79e | Stavros Sachtouris | self._test_0120_list_flavors()
|
358 | db77d79e | Stavros Sachtouris | |
359 | db77d79e | Stavros Sachtouris | def _test_0120_list_flavors(self): |
360 | db77d79e | Stavros Sachtouris | r = self.client.list_flavors()
|
361 | db77d79e | Stavros Sachtouris | self.assertTrue(len(r) > 1) |
362 | db77d79e | Stavros Sachtouris | r = self.client.list_flavors(detail=True) |
363 | db77d79e | Stavros Sachtouris | self.assertTrue('SNF:disk_template' in r[0]) |
364 | db77d79e | Stavros Sachtouris | |
365 | db77d79e | Stavros Sachtouris | def test_get_flavor_details(self): |
366 | 03493855 | Stavros Sachtouris | """Test test_get_flavor_details"""
|
367 | db77d79e | Stavros Sachtouris | self._test_0130_get_flavor_details()
|
368 | db77d79e | Stavros Sachtouris | |
369 | db77d79e | Stavros Sachtouris | def _test_0130_get_flavor_details(self): |
370 | db77d79e | Stavros Sachtouris | r = self.client.get_flavor_details(self.flavorid) |
371 | c088076b | Stavros Sachtouris | self.assert_dicts_are_equal(self._flavor_details, r) |
372 | db77d79e | Stavros Sachtouris | |
373 | a0608786 | Stavros Sachtouris | def test_list_images(self): |
374 | a0608786 | Stavros Sachtouris | """Test list_images"""
|
375 | a0608786 | Stavros Sachtouris | self._test_0140_list_images()
|
376 | a0608786 | Stavros Sachtouris | |
377 | a0608786 | Stavros Sachtouris | def _test_0140_list_images(self): |
378 | a0608786 | Stavros Sachtouris | r = self.client.list_images()
|
379 | a0608786 | Stavros Sachtouris | self.assertTrue(len(r) > 1) |
380 | a0608786 | Stavros Sachtouris | r = self.client.list_images(detail=True) |
381 | a0608786 | Stavros Sachtouris | for detailed_img in r: |
382 | a0608786 | Stavros Sachtouris | if detailed_img['id'] == self.img: |
383 | a0608786 | Stavros Sachtouris | break
|
384 | a0608786 | Stavros Sachtouris | self.assert_dicts_are_equal(detailed_img, self.img_details) |
385 | db77d79e | Stavros Sachtouris | |
386 | db77d79e | Stavros Sachtouris | def test_get_image_details(self): |
387 | 03493855 | Stavros Sachtouris | """Test image_details"""
|
388 | db77d79e | Stavros Sachtouris | self._test_0150_get_image_details()
|
389 | db77d79e | Stavros Sachtouris | |
390 | db77d79e | Stavros Sachtouris | def _test_0150_get_image_details(self): |
391 | db77d79e | Stavros Sachtouris | r = self.client.get_image_details(self.img) |
392 | c088076b | Stavros Sachtouris | self.assert_dicts_are_equal(r, self.img_details) |
393 | db77d79e | Stavros Sachtouris | |
394 | db77d79e | Stavros Sachtouris | def test_get_image_metadata(self): |
395 | 03493855 | Stavros Sachtouris | """Test get_image_metadata"""
|
396 | db77d79e | Stavros Sachtouris | self._test_0160_get_image_metadata()
|
397 | db77d79e | Stavros Sachtouris | |
398 | db77d79e | Stavros Sachtouris | def _test_0160_get_image_metadata(self): |
399 | db77d79e | Stavros Sachtouris | r = self.client.get_image_metadata(self.img) |
400 | c088076b | Stavros Sachtouris | self.assert_dicts_are_equal(
|
401 | 864767eb | Stavros Sachtouris | self.img_details['properties'], r) |
402 | 864767eb | Stavros Sachtouris | for key, val in self.img_details['properties'].items(): |
403 | db77d79e | Stavros Sachtouris | r = self.client.get_image_metadata(self.img, key) |
404 | db77d79e | Stavros Sachtouris | self.assertEqual(r[key], val)
|
405 | db77d79e | Stavros Sachtouris | |
406 | db77d79e | Stavros Sachtouris | def test_shutdown_server(self): |
407 | 03493855 | Stavros Sachtouris | """Test shutdown_server"""
|
408 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
409 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
410 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
411 | db77d79e | Stavros Sachtouris | self._test_0170_shutdown_server()
|
412 | db77d79e | Stavros Sachtouris | |
413 | db77d79e | Stavros Sachtouris | def _test_0170_shutdown_server(self): |
414 | db77d79e | Stavros Sachtouris | self.client.shutdown_server(self.server1['id']) |
415 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'ACTIVE') |
416 | db77d79e | Stavros Sachtouris | r = self.client.get_server_details(self.server1['id']) |
417 | db77d79e | Stavros Sachtouris | self.assertEqual(r['status'], 'STOPPED') |
418 | db77d79e | Stavros Sachtouris | |
419 | db77d79e | Stavros Sachtouris | def test_start_server(self): |
420 | 03493855 | Stavros Sachtouris | """Test start_server"""
|
421 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
422 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
423 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
424 | db77d79e | Stavros Sachtouris | self.client.shutdown_server(self.server1['id']) |
425 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'ACTIVE') |
426 | db77d79e | Stavros Sachtouris | self._test_0180_start_server()
|
427 | db77d79e | Stavros Sachtouris | |
428 | db77d79e | Stavros Sachtouris | def _test_0180_start_server(self): |
429 | db77d79e | Stavros Sachtouris | self.client.start_server(self.server1['id']) |
430 | db77d79e | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'STOPPED') |
431 | db77d79e | Stavros Sachtouris | r = self.client.get_server_details(self.server1['id']) |
432 | db77d79e | Stavros Sachtouris | self.assertEqual(r['status'], 'ACTIVE') |
433 | d1f78278 | Stavros Sachtouris | |
434 | d1f78278 | Stavros Sachtouris | def test_get_server_console(self): |
435 | 03493855 | Stavros Sachtouris | """Test get_server_console"""
|
436 | 24ff0a35 | Stavros Sachtouris | self.server2 = self._create_server( |
437 | b773795c | Stavros Sachtouris | self.servname2, self.flavorid, self.img) |
438 | d1f78278 | Stavros Sachtouris | self._wait_for_status(self.server2['id'], 'BUILD') |
439 | d1f78278 | Stavros Sachtouris | self._test_0190_get_server_console()
|
440 | d1f78278 | Stavros Sachtouris | |
441 | d1f78278 | Stavros Sachtouris | def _test_0190_get_server_console(self): |
442 | d1f78278 | Stavros Sachtouris | r = self.client.get_server_console(self.server2['id']) |
443 | d1f78278 | Stavros Sachtouris | self.assertTrue('host' in r) |
444 | d1f78278 | Stavros Sachtouris | self.assertTrue('password' in r) |
445 | d1f78278 | Stavros Sachtouris | self.assertTrue('port' in r) |
446 | d1f78278 | Stavros Sachtouris | self.assertTrue('type' in r) |
447 | d1f78278 | Stavros Sachtouris | |
448 | d1f78278 | Stavros Sachtouris | def test_get_firewall_profile(self): |
449 | 03493855 | Stavros Sachtouris | """Test get_firewall_profile"""
|
450 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
451 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
452 | d1f78278 | Stavros Sachtouris | self._test_0200_get_firewall_profile()
|
453 | d1f78278 | Stavros Sachtouris | |
454 | d1f78278 | Stavros Sachtouris | def _test_0200_get_firewall_profile(self): |
455 | d1f78278 | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
456 | d1f78278 | Stavros Sachtouris | fprofile = self.client.get_firewall_profile(self.server1['id']) |
457 | d1f78278 | Stavros Sachtouris | self.assertTrue(fprofile in self.PROFILES) |
458 | d1f78278 | Stavros Sachtouris | |
459 | d1f78278 | Stavros Sachtouris | def test_set_firewall_profile(self): |
460 | 03493855 | Stavros Sachtouris | """Test set_firewall_profile"""
|
461 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
462 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
463 | d1f78278 | Stavros Sachtouris | self._test_0210_set_firewall_profile()
|
464 | d1f78278 | Stavros Sachtouris | |
465 | d1f78278 | Stavros Sachtouris | def _test_0210_set_firewall_profile(self): |
466 | d1f78278 | Stavros Sachtouris | |
467 | d1f78278 | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
468 | d1f78278 | Stavros Sachtouris | PROFILES = ['DISABLED', 'ENABLED', 'DISABLED', 'PROTECTED'] |
469 | d1f78278 | Stavros Sachtouris | fprofile = self.client.get_firewall_profile(self.server1['id']) |
470 | d1f78278 | Stavros Sachtouris | print('')
|
471 | d1f78278 | Stavros Sachtouris | count_success = 0
|
472 | d1f78278 | Stavros Sachtouris | for counter, fprofile in enumerate(PROFILES): |
473 | d1f78278 | Stavros Sachtouris | npos = counter + 1
|
474 | d1f78278 | Stavros Sachtouris | try:
|
475 | d1f78278 | Stavros Sachtouris | nprofile = PROFILES[npos] |
476 | d1f78278 | Stavros Sachtouris | except IndexError: |
477 | d1f78278 | Stavros Sachtouris | nprofile = PROFILES[0]
|
478 | d1f78278 | Stavros Sachtouris | print('\tprofile swap %s: %s -> %s' % (npos, fprofile, nprofile))
|
479 | d1f78278 | Stavros Sachtouris | self.client.set_firewall_profile(self.server1['id'], nprofile) |
480 | d1f78278 | Stavros Sachtouris | time.sleep(0.5)
|
481 | d1f78278 | Stavros Sachtouris | self.client.reboot_server(self.server1['id'], hard=True) |
482 | d1f78278 | Stavros Sachtouris | time.sleep(1)
|
483 | d1f78278 | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'REBOOT') |
484 | d1f78278 | Stavros Sachtouris | time.sleep(0.5)
|
485 | d1f78278 | Stavros Sachtouris | changed = self.client.get_firewall_profile(self.server1['id']) |
486 | d1f78278 | Stavros Sachtouris | try:
|
487 | d1f78278 | Stavros Sachtouris | self.assertEqual(changed, nprofile)
|
488 | d1f78278 | Stavros Sachtouris | except AssertionError as err: |
489 | d1f78278 | Stavros Sachtouris | if count_success:
|
490 | d1f78278 | Stavros Sachtouris | print('\tFAIL in swap #%s' % npos)
|
491 | d1f78278 | Stavros Sachtouris | break
|
492 | d1f78278 | Stavros Sachtouris | else:
|
493 | d1f78278 | Stavros Sachtouris | raise err
|
494 | d1f78278 | Stavros Sachtouris | count_success += 1
|
495 | d1f78278 | Stavros Sachtouris | |
496 | d1f78278 | Stavros Sachtouris | def test_get_server_stats(self): |
497 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
498 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
499 | d1f78278 | Stavros Sachtouris | self._test_0220_get_server_stats()
|
500 | d1f78278 | Stavros Sachtouris | |
501 | d1f78278 | Stavros Sachtouris | def _test_0220_get_server_stats(self): |
502 | d1f78278 | Stavros Sachtouris | r = self.client.get_server_stats(self.server1['id']) |
503 | 24ff0a35 | Stavros Sachtouris | it = ('cpuBar', 'cpuTimeSeries', 'netBar', 'netTimeSeries', 'refresh') |
504 | 24ff0a35 | Stavros Sachtouris | for term in it: |
505 | d1f78278 | Stavros Sachtouris | self.assertTrue(term in r) |
506 | d1f78278 | Stavros Sachtouris | |
507 | d1f78278 | Stavros Sachtouris | def test_create_network(self): |
508 | 03493855 | Stavros Sachtouris | """Test create_network"""
|
509 | d1f78278 | Stavros Sachtouris | self._test_0230_create_network()
|
510 | d1f78278 | Stavros Sachtouris | |
511 | d1f78278 | Stavros Sachtouris | def _test_0230_create_network(self): |
512 | c501d3df | Stavros Sachtouris | print('\twith no params')
|
513 | d1f78278 | Stavros Sachtouris | self.network1 = self._create_network(self.netname1) |
514 | d1f78278 | Stavros Sachtouris | self._wait_for_network(self.network1['id'], 'ACTIVE') |
515 | c501d3df | Stavros Sachtouris | n1id = self.network1['id'] |
516 | c501d3df | Stavros Sachtouris | self.network1 = self.client.get_network_details(n1id) |
517 | d1f78278 | Stavros Sachtouris | nets = self.client.list_networks(self.network1['id']) |
518 | c501d3df | Stavros Sachtouris | chosen = [net for net in nets if net['id'] == n1id][0] |
519 | d1f78278 | Stavros Sachtouris | chosen.pop('updated')
|
520 | d1f78278 | Stavros Sachtouris | net1 = dict(self.network1) |
521 | d1f78278 | Stavros Sachtouris | net1.pop('updated')
|
522 | c088076b | Stavros Sachtouris | self.assert_dicts_are_equal(chosen, net1)
|
523 | 0775d2bd | Stavros Sachtouris | full_args = dict(
|
524 | 0775d2bd | Stavros Sachtouris | cidr='192.168.1.0/24',
|
525 | 0775d2bd | Stavros Sachtouris | gateway='192.168.1.1',
|
526 | c501d3df | Stavros Sachtouris | type='MAC_FILTERED',
|
527 | 0775d2bd | Stavros Sachtouris | dhcp=True)
|
528 | 0775d2bd | Stavros Sachtouris | try_args = dict(all=True) |
529 | 0775d2bd | Stavros Sachtouris | try_args.update(full_args) |
530 | 0775d2bd | Stavros Sachtouris | for param, val in try_args.items(): |
531 | c501d3df | Stavros Sachtouris | print('\tdelete %s to avoid max net limit' % n1id)
|
532 | c501d3df | Stavros Sachtouris | self._delete_network(n1id)
|
533 | 0775d2bd | Stavros Sachtouris | kwargs = full_args if param == 'all' else {param: val} |
534 | c501d3df | Stavros Sachtouris | print('\twith %s=%s' % (param, val))
|
535 | c501d3df | Stavros Sachtouris | self.network1 = self._create_network(self.netname1, **kwargs) |
536 | c501d3df | Stavros Sachtouris | n1id = self.network1['id'] |
537 | c501d3df | Stavros Sachtouris | self._wait_for_network(n1id, 'ACTIVE') |
538 | c501d3df | Stavros Sachtouris | self.network1 = self.client.get_network_details(n1id) |
539 | 0775d2bd | Stavros Sachtouris | if param == 'all': |
540 | 0775d2bd | Stavros Sachtouris | for p, v in full_args.items(): |
541 | 0775d2bd | Stavros Sachtouris | self.assertEqual(self.network1[p], v) |
542 | 0775d2bd | Stavros Sachtouris | else:
|
543 | 0775d2bd | Stavros Sachtouris | self.assertEqual(self.network1[param], val) |
544 | d1f78278 | Stavros Sachtouris | |
545 | d1f78278 | Stavros Sachtouris | def test_connect_server(self): |
546 | 03493855 | Stavros Sachtouris | """Test connect_server"""
|
547 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
548 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
549 | d1f78278 | Stavros Sachtouris | self.network1 = self._create_network(self.netname1) |
550 | d1f78278 | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
551 | d1f78278 | Stavros Sachtouris | self._wait_for_network(self.network1['id'], 'ACTIVE') |
552 | d1f78278 | Stavros Sachtouris | self._test_0240_connect_server()
|
553 | d1f78278 | Stavros Sachtouris | |
554 | d1f78278 | Stavros Sachtouris | def _test_0250_connect_server(self): |
555 | d1f78278 | Stavros Sachtouris | self.client.connect_server(self.server1['id'], self.network1['id']) |
556 | b773795c | Stavros Sachtouris | self.assertTrue(
|
557 | b773795c | Stavros Sachtouris | self._wait_for_nic(self.network1['id'], self.server1['id'])) |
558 | d1f78278 | Stavros Sachtouris | |
559 | d1f78278 | Stavros Sachtouris | def test_disconnect_server(self): |
560 | 03493855 | Stavros Sachtouris | """Test disconnect_server"""
|
561 | d1f78278 | Stavros Sachtouris | self.test_connect_server()
|
562 | d1f78278 | Stavros Sachtouris | self._test_0250_disconnect_server()
|
563 | d1f78278 | Stavros Sachtouris | |
564 | d1f78278 | Stavros Sachtouris | def _test_0250_disconnect_server(self): |
565 | d1f78278 | Stavros Sachtouris | self.client.disconnect_server(self.server1['id'], self.network1['id']) |
566 | 24ff0a35 | Stavros Sachtouris | self.assertTrue(self._wait_for_nic( |
567 | b773795c | Stavros Sachtouris | self.network1['id'], self.server1['id'], in_creation=False)) |
568 | d1f78278 | Stavros Sachtouris | |
569 | d1f78278 | Stavros Sachtouris | def _test_0260_wait_for_second_network(self): |
570 | d1f78278 | Stavros Sachtouris | self.network2 = self._create_network(self.netname2) |
571 | d1f78278 | Stavros Sachtouris | self._wait_for_network(self.network2['id'], 'ACTIVE') |
572 | d1f78278 | Stavros Sachtouris | |
573 | d1f78278 | Stavros Sachtouris | def test_list_server_nics(self): |
574 | 03493855 | Stavros Sachtouris | """Test list_server_nics"""
|
575 | 24ff0a35 | Stavros Sachtouris | self.server1 = self._create_server( |
576 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
577 | d1f78278 | Stavros Sachtouris | self.network2 = self._create_network(self.netname2) |
578 | d1f78278 | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
579 | d1f78278 | Stavros Sachtouris | self._wait_for_network(self.network2['id'], 'ACTIVE') |
580 | d1f78278 | Stavros Sachtouris | self._test_0280_list_server_nics()
|
581 | d1f78278 | Stavros Sachtouris | |
582 | d1f78278 | Stavros Sachtouris | def _test_0280_list_server_nics(self): |
583 | d1f78278 | Stavros Sachtouris | r = self.client.list_server_nics(self.server1['id']) |
584 | d1f78278 | Stavros Sachtouris | len0 = len(r)
|
585 | d1f78278 | Stavros Sachtouris | self.client.connect_server(self.server1['id'], self.network2['id']) |
586 | b773795c | Stavros Sachtouris | self.assertTrue(
|
587 | b773795c | Stavros Sachtouris | self._wait_for_nic(self.network2['id'], self.server1['id'])) |
588 | d1f78278 | Stavros Sachtouris | r = self.client.list_server_nics(self.server1['id']) |
589 | d1f78278 | Stavros Sachtouris | self.assertTrue(len(r) > len0) |
590 | d1f78278 | Stavros Sachtouris | |
591 | d1f78278 | Stavros Sachtouris | def test_list_networks(self): |
592 | 03493855 | Stavros Sachtouris | """Test list_network"""
|
593 | d1f78278 | Stavros Sachtouris | self.network1 = self._create_network(self.netname1) |
594 | d1f78278 | Stavros Sachtouris | self._wait_for_network(self.network1['id'], 'ACTIVE') |
595 | d1f78278 | Stavros Sachtouris | self._test_0290_list_networks()
|
596 | d1f78278 | Stavros Sachtouris | |
597 | d1f78278 | Stavros Sachtouris | def _test_0290_list_networks(self): |
598 | d1f78278 | Stavros Sachtouris | r = self.client.list_networks()
|
599 | d1f78278 | Stavros Sachtouris | self.assertTrue(len(r) > 1) |
600 | d1f78278 | Stavros Sachtouris | ids = [net['id'] for net in r] |
601 | d1f78278 | Stavros Sachtouris | names = [net['name'] for net in r] |
602 | d1f78278 | Stavros Sachtouris | self.assertTrue('1' in ids) |
603 | d1f78278 | Stavros Sachtouris | #self.assertTrue('public' in names)
|
604 | d1f78278 | Stavros Sachtouris | self.assertTrue(self.network1['id'] in ids) |
605 | d1f78278 | Stavros Sachtouris | self.assertTrue(self.network1['name'] in names) |
606 | d1f78278 | Stavros Sachtouris | |
607 | d1f78278 | Stavros Sachtouris | r = self.client.list_networks(detail=True) |
608 | d1f78278 | Stavros Sachtouris | ids = [net['id'] for net in r] |
609 | d1f78278 | Stavros Sachtouris | names = [net['name'] for net in r] |
610 | d1f78278 | Stavros Sachtouris | for net in r: |
611 | d1f78278 | Stavros Sachtouris | self.assertTrue(net['id'] in ids) |
612 | d1f78278 | Stavros Sachtouris | self.assertTrue(net['name'] in names) |
613 | d1f78278 | Stavros Sachtouris | for term in ('status', 'updated', 'created'): |
614 | d1f78278 | Stavros Sachtouris | self.assertTrue(term in net.keys()) |
615 | d1f78278 | Stavros Sachtouris | |
616 | 21d7e374 | Stavros Sachtouris | def test_list_network_nics(self): |
617 | 21d7e374 | Stavros Sachtouris | """Test list_server_nics"""
|
618 | 21d7e374 | Stavros Sachtouris | self.server1 = self._create_server( |
619 | b773795c | Stavros Sachtouris | self.servname1, self.flavorid, self.img) |
620 | 21d7e374 | Stavros Sachtouris | self.network1 = self._create_network(self.netname1) |
621 | 21d7e374 | Stavros Sachtouris | self.network2 = self._create_network(self.netname2) |
622 | 21d7e374 | Stavros Sachtouris | self._wait_for_status(self.server1['id'], 'BUILD') |
623 | 21d7e374 | Stavros Sachtouris | self._wait_for_network(self.network1['id'], 'ACTIVE') |
624 | 21d7e374 | Stavros Sachtouris | self._wait_for_network(self.network2['id'], 'ACTIVE') |
625 | 0775d2bd | Stavros Sachtouris | self.client.connect_server(self.server1['id'], self.network1['id']) |
626 | 21d7e374 | Stavros Sachtouris | self.client.connect_server(self.server1['id'], self.network2['id']) |
627 | 0775d2bd | Stavros Sachtouris | self._wait_for_nic(self.network1['id'], self.server1['id']) |
628 | 21d7e374 | Stavros Sachtouris | self._wait_for_nic(self.network2['id'], self.server1['id']) |
629 | 21d7e374 | Stavros Sachtouris | self._test_0293_list_network_nics()
|
630 | 21d7e374 | Stavros Sachtouris | |
631 | 21d7e374 | Stavros Sachtouris | def _test_0293_list_network_nics(self): |
632 | b773795c | Stavros Sachtouris | netid1, netid2 = self.network1['id'], self.network2['id'] |
633 | 21d7e374 | Stavros Sachtouris | r = self.client.list_network_nics(netid1)
|
634 | 0775d2bd | Stavros Sachtouris | expected = ['nic-%s-1' % self.server1['id']] |
635 | 21d7e374 | Stavros Sachtouris | self.assertEqual(r, expected)
|
636 | 21d7e374 | Stavros Sachtouris | r = self.client.list_network_nics(netid2)
|
637 | 0775d2bd | Stavros Sachtouris | expected = ['nic-%s-2' % self.server1['id']] |
638 | 21d7e374 | Stavros Sachtouris | self.assertEqual(r, expected)
|
639 | 21d7e374 | Stavros Sachtouris | |
640 | d1f78278 | Stavros Sachtouris | def test_get_network_details(self): |
641 | 03493855 | Stavros Sachtouris | """Test get_network_details"""
|
642 | d1f78278 | Stavros Sachtouris | self.network1 = self._create_network(self.netname1) |
643 | d1f78278 | Stavros Sachtouris | self._test_0300_get_network_details()
|
644 | d1f78278 | Stavros Sachtouris | |
645 | d1f78278 | Stavros Sachtouris | def _test_0300_get_network_details(self): |
646 | d1f78278 | Stavros Sachtouris | r = self.client.get_network_details(self.network1['id']) |
647 | d1f78278 | Stavros Sachtouris | net1 = dict(self.network1) |
648 | d1f78278 | Stavros Sachtouris | net1.pop('status')
|
649 | d1f78278 | Stavros Sachtouris | net1.pop('updated', None) |
650 | d1f78278 | Stavros Sachtouris | net1.pop('attachments')
|
651 | d1f78278 | Stavros Sachtouris | r.pop('status')
|
652 | d1f78278 | Stavros Sachtouris | r.pop('updated', None) |
653 | d1f78278 | Stavros Sachtouris | r.pop('attachments')
|
654 | c088076b | Stavros Sachtouris | self.assert_dicts_are_equal(net1, r)
|
655 | d1f78278 | Stavros Sachtouris | |
656 | d1f78278 | Stavros Sachtouris | def test_update_network_name(self): |
657 | d1f78278 | Stavros Sachtouris | self.network2 = self._create_network(self.netname2) |
658 | d1f78278 | Stavros Sachtouris | self._test_0310_update_network_name()
|
659 | d1f78278 | Stavros Sachtouris | |
660 | d1f78278 | Stavros Sachtouris | def _test_0310_update_network_name(self): |
661 | d1f78278 | Stavros Sachtouris | updated_name = self.netname2 + '_upd' |
662 | d1f78278 | Stavros Sachtouris | self.client.update_network_name(self.network2['id'], updated_name) |
663 | d1f78278 | Stavros Sachtouris | |
664 | d1f78278 | Stavros Sachtouris | def netwait(wait): |
665 | d1f78278 | Stavros Sachtouris | r = self.client.get_network_details(self.network2['id']) |
666 | d1f78278 | Stavros Sachtouris | if r['name'] == updated_name: |
667 | d1f78278 | Stavros Sachtouris | return
|
668 | d1f78278 | Stavros Sachtouris | time.sleep(wait) |
669 | d1f78278 | Stavros Sachtouris | self.do_with_progress_bar(
|
670 | d1f78278 | Stavros Sachtouris | netwait, |
671 | d1f78278 | Stavros Sachtouris | 'Network %s name is changing:' % self.network2['id'], |
672 | d1f78278 | Stavros Sachtouris | self._waits[:5]) |
673 | d1f78278 | Stavros Sachtouris | |
674 | d1f78278 | Stavros Sachtouris | r = self.client.get_network_details(self.network2['id']) |
675 | d1f78278 | Stavros Sachtouris | self.assertEqual(r['name'], updated_name) |
676 | d1f78278 | Stavros Sachtouris | |
677 | 03493855 | Stavros Sachtouris | """ Don't have auth to test this
|
678 | d1f78278 | Stavros Sachtouris | def test_delete_image(self):
|
679 | d1f78278 | Stavros Sachtouris | ""Test delete_image""
|
680 | d1f78278 | Stavros Sachtouris | self._test_0330_delete_image()
|
681 | d1f78278 | Stavros Sachtouris | def _test_0330_delete_image(self):
|
682 | d1f78278 | Stavros Sachtouris | images = self.client.list_images()
|
683 | d1f78278 | Stavros Sachtouris | self.client.delete_image(images[2]['id'])
|
684 | d1f78278 | Stavros Sachtouris | try:
|
685 | d1f78278 | Stavros Sachtouris | r = self.client.get_image_details(images[2]['id'], success=(400))
|
686 | d1f78278 | Stavros Sachtouris | except ClientError as err:
|
687 | d1f78278 | Stavros Sachtouris | self.assertEqual(err.status, 404)
|
688 | d1f78278 | Stavros Sachtouris |
|
689 | d1f78278 | Stavros Sachtouris | def test_create_image_metadata(self):
|
690 | d1f78278 | Stavros Sachtouris | ""Test create_image_metadata""
|
691 | d1f78278 | Stavros Sachtouris | self._test_0340_create_image_metadata()
|
692 | d1f78278 | Stavros Sachtouris | def _test_0340_create_image_metadata(self):
|
693 | d1f78278 | Stavros Sachtouris | r = self.client.create_image_metadata(self.img, 'mykey', 'myval')
|
694 | d1f78278 | Stavros Sachtouris | self.assertEqual(r['mykey'], 'myval')
|
695 | d1f78278 | Stavros Sachtouris |
|
696 | d1f78278 | Stavros Sachtouris | def test_update_image_metadata(self):
|
697 | d1f78278 | Stavros Sachtouris | ""Test update_image_metadata""
|
698 | d1f78278 | Stavros Sachtouris | self._test_0350_update_image_metadata()
|
699 | d1f78278 | Stavros Sachtouris | def _test_0350_update_image_metadata(self):
|
700 | d1f78278 | Stavros Sachtouris | r = self.client.create_image_metadata(self.img, 'mykey0', 'myval')
|
701 | d1f78278 | Stavros Sachtouris | r = self.client.update_image_metadata(self.img, 'mykey0', 'myval0')
|
702 | d1f78278 | Stavros Sachtouris | self.assertEqual(r['mykey0'], 'myval0')
|
703 | d1f78278 | Stavros Sachtouris |
|
704 | d1f78278 | Stavros Sachtouris | def test_delete_image_metadata(self):
|
705 | d1f78278 | Stavros Sachtouris | ""Test delete_image_metadata""
|
706 | d1f78278 | Stavros Sachtouris | self._test_0360_delete_image_metadata()
|
707 | d1f78278 | Stavros Sachtouris | def _test_0360_delete_image_metadata(self):
|
708 | d1f78278 | Stavros Sachtouris | self.client.create_image_metadata(self.img, 'mykey1', 'myval1')
|
709 | d1f78278 | Stavros Sachtouris | self.client.delete_image_metadata(self.img, 'mykey1')
|
710 | d1f78278 | Stavros Sachtouris | r = self.client.get_image_metadata(self.img)
|
711 | d1f78278 | Stavros Sachtouris | self.assertNotEqual('mykey1' in r)
|
712 | d1f78278 | Stavros Sachtouris | """ |