blob: 1350d95843120af0820dac54275b99145df3883b [file] [log] [blame]
David Kranzb9d97502013-05-01 15:55:04 -04001#!/usr/bin/env python
2
David Kranzb9d97502013-05-01 15:55:04 -04003# Copyright 2013 Quanta Research Cambridge, Inc.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
Doug Hellmann583ce2c2015-03-11 14:55:46 +000017from oslo_log import log as logging
18
David Kranzb9d97502013-05-01 15:55:04 -040019from tempest import clients
Ken'ichi Ohmichie91a0c62015-08-13 02:09:16 +000020from tempest.common import waiters
Marc Kodererb714de52013-08-08 09:21:46 +020021
22LOG = logging.getLogger(__name__)
David Kranzb9d97502013-05-01 15:55:04 -040023
24
Marc Kodererb714de52013-08-08 09:21:46 +020025def cleanup():
David Kranzb9d97502013-05-01 15:55:04 -040026 admin_manager = clients.AdminManager()
27
Ken'ichi Ohmichicbc26a82015-07-03 08:18:04 +000028 body = admin_manager.servers_client.list_servers(all_tenants=True)
Marc Kodererb714de52013-08-08 09:21:46 +020029 LOG.info("Cleanup::remove %s servers" % len(body['servers']))
David Kranzb9d97502013-05-01 15:55:04 -040030 for s in body['servers']:
31 try:
32 admin_manager.servers_client.delete_server(s['id'])
33 except Exception:
34 pass
35
36 for s in body['servers']:
37 try:
Ken'ichi Ohmichie91a0c62015-08-13 02:09:16 +000038 waiters.wait_for_server_termination(admin_manager.servers_client,
39 s['id'])
David Kranzb9d97502013-05-01 15:55:04 -040040 except Exception:
41 pass
42
ghanshyamdee01f22015-08-17 11:41:47 +090043 keypairs = admin_manager.keypairs_client.list_keypairs()['keypairs']
Marc Kodererb714de52013-08-08 09:21:46 +020044 LOG.info("Cleanup::remove %s keypairs" % len(keypairs))
David Kranzb9d97502013-05-01 15:55:04 -040045 for k in keypairs:
46 try:
47 admin_manager.keypairs_client.delete_keypair(k['name'])
48 except Exception:
49 pass
50
Attila Fazekas9f03f8b2014-02-24 17:41:08 +010051 secgrp_client = admin_manager.security_groups_client
ghanshyamb610b772015-08-24 17:29:38 +090052 secgrp = (secgrp_client.list_security_groups(all_tenants=True)
53 ['security_groups'])
Attila Fazekas9f03f8b2014-02-24 17:41:08 +010054 secgrp_del = [grp for grp in secgrp if grp['name'] != 'default']
55 LOG.info("Cleanup::remove %s Security Group" % len(secgrp_del))
56 for g in secgrp_del:
57 try:
58 secgrp_client.delete_security_group(g['id'])
59 except Exception:
60 pass
61
ghanshyam9a3a9a22015-08-18 17:03:55 +090062 floating_ips = (admin_manager.floating_ips_client.list_floating_ips()
63 ['floating_ips'])
Marc Kodererb714de52013-08-08 09:21:46 +020064 LOG.info("Cleanup::remove %s floating ips" % len(floating_ips))
David Kranzb9d97502013-05-01 15:55:04 -040065 for f in floating_ips:
66 try:
67 admin_manager.floating_ips_client.delete_floating_ip(f['id'])
68 except Exception:
69 pass
70
Anusha Ramineni0cfb4612015-08-24 08:49:10 +053071 users = admin_manager.identity_client.get_users()['users']
Marc Kodererb714de52013-08-08 09:21:46 +020072 LOG.info("Cleanup::remove %s users" % len(users))
David Kranzb9d97502013-05-01 15:55:04 -040073 for user in users:
74 if user['name'].startswith("stress_user"):
75 admin_manager.identity_client.delete_user(user['id'])
76
John Warrenacf00512015-08-06 16:13:58 -040077 tenants = admin_manager.identity_client.list_tenants()['tenants']
Marc Kodererb714de52013-08-08 09:21:46 +020078 LOG.info("Cleanup::remove %s tenants" % len(tenants))
David Kranzb9d97502013-05-01 15:55:04 -040079 for tenant in tenants:
80 if tenant['name'].startswith("stress_tenant"):
81 admin_manager.identity_client.delete_tenant(tenant['id'])
Giulio Fidentebbb69e72013-06-18 16:06:24 +020082
Walter A. Boring IVb725e622013-07-11 17:21:33 -070083 # We have to delete snapshots first or
84 # volume deletion may block
85
John Warrenff7faf62015-08-17 16:59:06 +000086 _, snaps = admin_manager.snapshots_client.list_snapshots(
87 params={"all_tenants": True})['snapshots']
Marc Kodererb714de52013-08-08 09:21:46 +020088 LOG.info("Cleanup::remove %s snapshots" % len(snaps))
Walter A. Boring IVb725e622013-07-11 17:21:33 -070089 for v in snaps:
90 try:
91 admin_manager.snapshots_client.\
92 wait_for_snapshot_status(v['id'], 'available')
93 admin_manager.snapshots_client.delete_snapshot(v['id'])
94 except Exception:
95 pass
96
97 for v in snaps:
98 try:
99 admin_manager.snapshots_client.wait_for_resource_deletion(v['id'])
100 except Exception:
101 pass
102
Ken'ichi Ohmichi35798fb2015-04-06 01:22:41 +0000103 vols = admin_manager.volumes_client.list_volumes(
104 params={"all_tenants": True})
Marc Kodererb714de52013-08-08 09:21:46 +0200105 LOG.info("Cleanup::remove %s volumes" % len(vols))
Giulio Fidentebbb69e72013-06-18 16:06:24 +0200106 for v in vols:
107 try:
Walter A. Boring IVb725e622013-07-11 17:21:33 -0700108 admin_manager.volumes_client.\
109 wait_for_volume_status(v['id'], 'available')
Giulio Fidentebbb69e72013-06-18 16:06:24 +0200110 admin_manager.volumes_client.delete_volume(v['id'])
111 except Exception:
112 pass
113
114 for v in vols:
115 try:
116 admin_manager.volumes_client.wait_for_resource_deletion(v['id'])
117 except Exception:
118 pass