Merge "Refactor glance image tests to use OpenStackSDK"
This commit is contained in:
commit
22de57c88c
@ -19,9 +19,6 @@
|
|||||||
from __future__ import division
|
from __future__ import division
|
||||||
import argparse
|
import argparse
|
||||||
import datetime
|
import datetime
|
||||||
from keystoneauth1.identity import v3
|
|
||||||
from keystoneauth1 import session
|
|
||||||
from keystoneclient.v3 import client as key_client
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
from openstack import connection
|
from openstack import connection
|
||||||
@ -29,7 +26,6 @@ from openstack import profile
|
|||||||
import signal
|
import signal
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import glanceclient
|
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -94,20 +90,6 @@ class ServiceTest(object):
|
|||||||
console.setFormatter(formatter)
|
console.setFormatter(formatter)
|
||||||
logger.addHandler(console)
|
logger.addHandler(console)
|
||||||
|
|
||||||
# This is useful to a lot of tests, so implement it here for re-use
|
|
||||||
def get_session(self):
|
|
||||||
auth_url = os.environ['OS_AUTH_URL']
|
|
||||||
password = os.environ['OS_PASSWORD']
|
|
||||||
auth = v3.Password(auth_url=auth_url, username="admin",
|
|
||||||
password=password, project_name="admin",
|
|
||||||
user_domain_id="default",
|
|
||||||
project_domain_id="default")
|
|
||||||
sess = session.Session(auth=auth)
|
|
||||||
return sess
|
|
||||||
|
|
||||||
def get_keystone_client(self, session):
|
|
||||||
return key_client.Client(session=session)
|
|
||||||
|
|
||||||
def get_connection(self):
|
def get_connection(self):
|
||||||
"""Get an OpenStackSDK connection"""
|
"""Get an OpenStackSDK connection"""
|
||||||
auth_url = os.environ['OS_AUTH_URL']
|
auth_url = os.environ['OS_AUTH_URL']
|
||||||
@ -168,34 +150,26 @@ class GlanceTest(ServiceTest):
|
|||||||
self.temp_file.seek(0)
|
self.temp_file.seek(0)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
sess = self.get_session()
|
self.get_connection()
|
||||||
keystone = self.get_keystone_client(sess)
|
|
||||||
endpoint = self.get_glance_endpoint(keystone)
|
image_attrs = {
|
||||||
|
'name': 'Rolling test',
|
||||||
|
'disk_format': 'raw',
|
||||||
|
'container_format': 'bare',
|
||||||
|
'data': self.temp_file,
|
||||||
|
'visibility': 'public',
|
||||||
|
}
|
||||||
|
|
||||||
|
self.conn.image.upload_image(**image_attrs)
|
||||||
|
|
||||||
|
image = self.conn.image.find_image('Rolling test')
|
||||||
|
self.conn.image.delete_image(image, ignore_missing=False)
|
||||||
|
|
||||||
glance = glanceclient.Client(version='2',
|
|
||||||
endpoint=endpoint, session=sess)
|
|
||||||
image = glance.images.create(name="Rolling test",
|
|
||||||
disk_format="raw",
|
|
||||||
container_format="bare")
|
|
||||||
glance.images.upload(image.id, self.temp_file)
|
|
||||||
glance.images.delete(image.id)
|
|
||||||
self.temp_file.close()
|
self.temp_file.close()
|
||||||
|
|
||||||
msg = "Image created and deleted."
|
msg = "Image created and deleted."
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
def get_glance_endpoint(self, keystone):
|
|
||||||
"""Get the glance admin endpoint
|
|
||||||
|
|
||||||
Because we don't want to set up SSL handling, use the plain HTTP
|
|
||||||
endpoints.
|
|
||||||
"""
|
|
||||||
service_id = keystone.services.find(name='glance')
|
|
||||||
glance_endpoint = keystone.endpoints.list(service=service_id,
|
|
||||||
interface='admin')[0]
|
|
||||||
# The glance client wants the URL, not the keystone object
|
|
||||||
return glance_endpoint.url
|
|
||||||
|
|
||||||
|
|
||||||
class NovaTest(ServiceTest):
|
class NovaTest(ServiceTest):
|
||||||
service_name = 'nova'
|
service_name = 'nova'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user