blob: b785156d7cbbecd354e79af818056ca406425e07 [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
Marc Kodererb714de52013-08-08 09:21:46 +020020
21LOG = logging.getLogger(__name__)
David Kranzb9d97502013-05-01 15:55:04 -040022
23
Marc Kodererb714de52013-08-08 09:21:46 +020024def cleanup():
David Kranzb9d97502013-05-01 15:55:04 -040025 admin_manager = clients.AdminManager()
26
Ken'ichi Ohmichicbc26a82015-07-03 08:18:04 +000027 body = admin_manager.servers_client.list_servers(all_tenants=True)
Marc Kodererb714de52013-08-08 09:21:46 +020028 LOG.info("Cleanup::remove %s servers" % len(body['servers']))
David Kranzb9d97502013-05-01 15:55:04 -040029 for s in body['servers']:
30 try:
31 admin_manager.servers_client.delete_server(s['id'])
32 except Exception:
33 pass
34
35 for s in body['servers']:
36 try:
37 admin_manager.servers_client.wait_for_server_termination(s['id'])
38 except Exception:
39 pass
40
David Kranz173f0e02015-02-06 13:47:57 -050041 keypairs = admin_manager.keypairs_client.list_keypairs()
Marc Kodererb714de52013-08-08 09:21:46 +020042 LOG.info("Cleanup::remove %s keypairs" % len(keypairs))
David Kranzb9d97502013-05-01 15:55:04 -040043 for k in keypairs:
44 try:
45 admin_manager.keypairs_client.delete_keypair(k['name'])
46 except Exception:
47 pass
48
Attila Fazekas9f03f8b2014-02-24 17:41:08 +010049 secgrp_client = admin_manager.security_groups_client
Ken'ichi Ohmichi118776d2015-07-01 08:15:00 +000050 secgrp = secgrp_client.list_security_groups(all_tenants=True)
Attila Fazekas9f03f8b2014-02-24 17:41:08 +010051 secgrp_del = [grp for grp in secgrp if grp['name'] != 'default']
52 LOG.info("Cleanup::remove %s Security Group" % len(secgrp_del))
53 for g in secgrp_del:
54 try:
55 secgrp_client.delete_security_group(g['id'])
56 except Exception:
57 pass
58
David Kranze4e3b412015-02-10 10:50:42 -050059 floating_ips = admin_manager.floating_ips_client.list_floating_ips()
Marc Kodererb714de52013-08-08 09:21:46 +020060 LOG.info("Cleanup::remove %s floating ips" % len(floating_ips))
David Kranzb9d97502013-05-01 15:55:04 -040061 for f in floating_ips:
62 try:
63 admin_manager.floating_ips_client.delete_floating_ip(f['id'])
64 except Exception:
65 pass
66
David Kranzb7afa922014-12-30 10:56:26 -050067 users = admin_manager.identity_client.get_users()
Marc Kodererb714de52013-08-08 09:21:46 +020068 LOG.info("Cleanup::remove %s users" % len(users))
David Kranzb9d97502013-05-01 15:55:04 -040069 for user in users:
70 if user['name'].startswith("stress_user"):
71 admin_manager.identity_client.delete_user(user['id'])
72
David Kranzb7afa922014-12-30 10:56:26 -050073 tenants = admin_manager.identity_client.list_tenants()
Marc Kodererb714de52013-08-08 09:21:46 +020074 LOG.info("Cleanup::remove %s tenants" % len(tenants))
David Kranzb9d97502013-05-01 15:55:04 -040075 for tenant in tenants:
76 if tenant['name'].startswith("stress_tenant"):
77 admin_manager.identity_client.delete_tenant(tenant['id'])
Giulio Fidentebbb69e72013-06-18 16:06:24 +020078
Walter A. Boring IVb725e622013-07-11 17:21:33 -070079 # We have to delete snapshots first or
80 # volume deletion may block
81
82 _, snaps = admin_manager.snapshots_client.\
Ken'ichi Ohmichi35798fb2015-04-06 01:22:41 +000083 list_snapshots(params={"all_tenants": True})
Marc Kodererb714de52013-08-08 09:21:46 +020084 LOG.info("Cleanup::remove %s snapshots" % len(snaps))
Walter A. Boring IVb725e622013-07-11 17:21:33 -070085 for v in snaps:
86 try:
87 admin_manager.snapshots_client.\
88 wait_for_snapshot_status(v['id'], 'available')
89 admin_manager.snapshots_client.delete_snapshot(v['id'])
90 except Exception:
91 pass
92
93 for v in snaps:
94 try:
95 admin_manager.snapshots_client.wait_for_resource_deletion(v['id'])
96 except Exception:
97 pass
98
Ken'ichi Ohmichi35798fb2015-04-06 01:22:41 +000099 vols = admin_manager.volumes_client.list_volumes(
100 params={"all_tenants": True})
Marc Kodererb714de52013-08-08 09:21:46 +0200101 LOG.info("Cleanup::remove %s volumes" % len(vols))
Giulio Fidentebbb69e72013-06-18 16:06:24 +0200102 for v in vols:
103 try:
Walter A. Boring IVb725e622013-07-11 17:21:33 -0700104 admin_manager.volumes_client.\
105 wait_for_volume_status(v['id'], 'available')
Giulio Fidentebbb69e72013-06-18 16:06:24 +0200106 admin_manager.volumes_client.delete_volume(v['id'])
107 except Exception:
108 pass
109
110 for v in vols:
111 try:
112 admin_manager.volumes_client.wait_for_resource_deletion(v['id'])
113 except Exception:
114 pass