Implement javelin2 destroy images
implement destroy_images function in javelin2
Change-Id: I730f239190bf1099f173d7781be035a90a911a95
diff --git a/tempest/cmd/javelin.py b/tempest/cmd/javelin.py
index 67b92b0..3616a82 100755
--- a/tempest/cmd/javelin.py
+++ b/tempest/cmd/javelin.py
@@ -309,6 +309,14 @@
return name, fname
+def _get_image_by_name(client, name):
+ r, body = client.images.image_list()
+ for image in body:
+ if name == image['name']:
+ return image
+ return None
+
+
def create_images(images):
if not images:
return
@@ -317,9 +325,7 @@
client = client_for_user(image['owner'])
# only upload a new image if the name isn't there
- r, body = client.images.image_list()
- names = [x['name'] for x in body]
- if image['name'] in names:
+ if _get_image_by_name(client, image['name']):
LOG.info("Image '%s' already exists" % image['name'])
continue
@@ -345,6 +351,20 @@
client.images.store_image(image_id, open(fname, 'r'))
+def destroy_images(images):
+ if not images:
+ return
+ LOG.info("Destroying images")
+ for image in images:
+ client = client_for_user(image['owner'])
+
+ response = _get_image_by_name(client, image['name'])
+ if not response:
+ LOG.info("Image '%s' does not exists" % image['name'])
+ continue
+ client.images.delete_image(response['id'])
+
+
#######################
#
# SERVERS
@@ -359,14 +379,6 @@
return None
-def _get_image_by_name(client, name):
- r, body = client.images.image_list()
- for image in body:
- if name == image['name']:
- return image
- return None
-
-
def _get_flavor_by_name(client, name):
r, body = client.flavors.list_flavors()
for flavor in body:
@@ -478,13 +490,14 @@
# destroy_volumes
destroy_servers(RES['servers'])
- LOG.warn("Destroy mode incomplete")
- # destroy_images
+ destroy_images(RES['images'])
# destroy_objects
# destroy_users
# destroy_tenants
+ LOG.warn("Destroy mode incomplete")
+
def get_options():
global OPTS