blob: bfcf34ff9ff032730522b4852f5d9990150becb2 [file] [log] [blame]
David Kranzb9d97502013-05-01 15:55:04 -04001#!/usr/bin/env python
2
3# vim: tabstop=4 shiftwidth=4 softtabstop=4
4
5# Copyright 2013 Quanta Research Cambridge, Inc.
6#
7# Licensed under the Apache License, Version 2.0 (the "License");
8# you may not use this file except in compliance with the License.
9# You may obtain a copy of the License at
10#
11# http://www.apache.org/licenses/LICENSE-2.0
12#
13# Unless required by applicable law or agreed to in writing, software
14# distributed under the License is distributed on an "AS IS" BASIS,
15# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16# See the License for the specific language governing permissions and
17# limitations under the License.
18
19from tempest import clients
20
21
Walter A. Boring IVb725e622013-07-11 17:21:33 -070022def cleanup(logger):
David Kranzb9d97502013-05-01 15:55:04 -040023 admin_manager = clients.AdminManager()
24
25 _, body = admin_manager.servers_client.list_servers({"all_tenants": True})
Walter A. Boring IVb725e622013-07-11 17:21:33 -070026 logger.debug("Cleanup::remove %s servers" % len(body['servers']))
David Kranzb9d97502013-05-01 15:55:04 -040027 for s in body['servers']:
28 try:
29 admin_manager.servers_client.delete_server(s['id'])
30 except Exception:
31 pass
32
33 for s in body['servers']:
34 try:
35 admin_manager.servers_client.wait_for_server_termination(s['id'])
36 except Exception:
37 pass
38
39 _, keypairs = admin_manager.keypairs_client.list_keypairs()
Walter A. Boring IVb725e622013-07-11 17:21:33 -070040 logger.debug("Cleanup::remove %s keypairs" % len(keypairs))
David Kranzb9d97502013-05-01 15:55:04 -040041 for k in keypairs:
42 try:
43 admin_manager.keypairs_client.delete_keypair(k['name'])
44 except Exception:
45 pass
46
47 _, floating_ips = admin_manager.floating_ips_client.list_floating_ips()
Walter A. Boring IVb725e622013-07-11 17:21:33 -070048 logger.debug("Cleanup::remove %s floating ips" % len(floating_ips))
David Kranzb9d97502013-05-01 15:55:04 -040049 for f in floating_ips:
50 try:
51 admin_manager.floating_ips_client.delete_floating_ip(f['id'])
52 except Exception:
53 pass
54
55 _, users = admin_manager.identity_client.get_users()
Walter A. Boring IVb725e622013-07-11 17:21:33 -070056 logger.debug("Cleanup::remove %s users" % len(users))
David Kranzb9d97502013-05-01 15:55:04 -040057 for user in users:
58 if user['name'].startswith("stress_user"):
59 admin_manager.identity_client.delete_user(user['id'])
60
61 _, tenants = admin_manager.identity_client.list_tenants()
Walter A. Boring IVb725e622013-07-11 17:21:33 -070062 logger.debug("Cleanup::remove %s tenants" % len(tenants))
David Kranzb9d97502013-05-01 15:55:04 -040063 for tenant in tenants:
64 if tenant['name'].startswith("stress_tenant"):
65 admin_manager.identity_client.delete_tenant(tenant['id'])
Giulio Fidentebbb69e72013-06-18 16:06:24 +020066
Walter A. Boring IVb725e622013-07-11 17:21:33 -070067 # We have to delete snapshots first or
68 # volume deletion may block
69
70 _, snaps = admin_manager.snapshots_client.\
71 list_snapshots({"all_tenants": True})
72 logger.debug("Cleanup::remove %s snapshots" % len(snaps))
73 for v in snaps:
74 try:
75 admin_manager.snapshots_client.\
76 wait_for_snapshot_status(v['id'], 'available')
77 admin_manager.snapshots_client.delete_snapshot(v['id'])
78 except Exception:
79 pass
80
81 for v in snaps:
82 try:
83 admin_manager.snapshots_client.wait_for_resource_deletion(v['id'])
84 except Exception:
85 pass
86
Giulio Fidentebbb69e72013-06-18 16:06:24 +020087 _, vols = admin_manager.volumes_client.list_volumes({"all_tenants": True})
Walter A. Boring IVb725e622013-07-11 17:21:33 -070088 logger.debug("Cleanup::remove %s volumes" % len(vols))
Giulio Fidentebbb69e72013-06-18 16:06:24 +020089 for v in vols:
90 try:
Walter A. Boring IVb725e622013-07-11 17:21:33 -070091 admin_manager.volumes_client.\
92 wait_for_volume_status(v['id'], 'available')
Giulio Fidentebbb69e72013-06-18 16:06:24 +020093 admin_manager.volumes_client.delete_volume(v['id'])
94 except Exception:
95 pass
96
97 for v in vols:
98 try:
99 admin_manager.volumes_client.wait_for_resource_deletion(v['id'])
100 except Exception:
101 pass