Merge "Move image uploads out of ProviderManager"
This commit is contained in:
commit
3ed9a79920
@ -204,49 +204,6 @@ class CreateImageTask(Task):
|
||||
return str(client.servers.create_image(**self.args))
|
||||
|
||||
|
||||
class UploadImageTask(Task):
|
||||
def get_glance_client(self, provider):
|
||||
keystone_kwargs = {'auth_url': provider.auth_url,
|
||||
'username': provider.username,
|
||||
'password': provider.password,
|
||||
'tenant_name': provider.project_id}
|
||||
glance_kwargs = {'service_type': 'image'}
|
||||
if provider.region_name:
|
||||
keystone_kwargs['region_name'] = provider.region_name
|
||||
|
||||
# get endpoint and authtoken
|
||||
keystone = ksclient.Client(**keystone_kwargs)
|
||||
glance_endpoint = keystone.service_catalog.url_for(
|
||||
attr='region',
|
||||
filter_value=keystone_kwargs['region_name'],
|
||||
service_type='image')
|
||||
glance_endpoint = glance_endpoint.replace('/v1.0', '')
|
||||
|
||||
# configure glance client
|
||||
glance = glanceclient.client.Client('1', glance_endpoint,
|
||||
token=keystone.auth_token,
|
||||
**glance_kwargs)
|
||||
return glance
|
||||
|
||||
def main(self, client):
|
||||
if self.args['image_name'].startswith('fake-'):
|
||||
image = fakeprovider.FakeGlanceClient()
|
||||
image.update(data='fake')
|
||||
else:
|
||||
# configure glance and upload image. Note the meta flags
|
||||
# are provided as custom glance properties
|
||||
glanceclient = self.get_glance_client(self.args['provider'])
|
||||
image = glanceclient.images.create(
|
||||
name=self.args['image_name'], is_public=False,
|
||||
disk_format=self.args['disk_format'],
|
||||
container_format=self.args['container_format'],
|
||||
**self.args['meta'])
|
||||
image.update(data=open(self.args['filename'], 'rb'))
|
||||
glanceclient = None
|
||||
|
||||
return image.id
|
||||
|
||||
|
||||
class GetImageTask(Task):
|
||||
def main(self, client):
|
||||
try:
|
||||
@ -530,12 +487,47 @@ class ProviderManager(TaskManager):
|
||||
def getImage(self, image_id):
|
||||
return self.submitTask(GetImageTask(image=image_id))
|
||||
|
||||
def get_glance_client(self, provider):
|
||||
keystone_kwargs = {'auth_url': provider.auth_url,
|
||||
'username': provider.username,
|
||||
'password': provider.password,
|
||||
'tenant_name': provider.project_id}
|
||||
glance_kwargs = {'service_type': 'image'}
|
||||
if provider.region_name:
|
||||
keystone_kwargs['region_name'] = provider.region_name
|
||||
|
||||
# get endpoint and authtoken
|
||||
keystone = ksclient.Client(**keystone_kwargs)
|
||||
glance_endpoint = keystone.service_catalog.url_for(
|
||||
attr='region',
|
||||
filter_value=keystone_kwargs['region_name'],
|
||||
service_type='image')
|
||||
glance_endpoint = glance_endpoint.replace('/v1.0', '')
|
||||
|
||||
# configure glance client
|
||||
glance = glanceclient.client.Client('1', glance_endpoint,
|
||||
token=keystone.auth_token,
|
||||
**glance_kwargs)
|
||||
return glance
|
||||
|
||||
def uploadImage(self, image_name, filename, disk_format, container_format,
|
||||
meta):
|
||||
return self.submitTask(UploadImageTask(
|
||||
image_name=image_name, filename='%s.%s' % (filename, disk_format),
|
||||
disk_format=disk_format, container_format=container_format,
|
||||
provider=self.provider, meta=meta))
|
||||
if image_name.startswith('fake-'):
|
||||
image = fakeprovider.FakeGlanceClient()
|
||||
image.update(data='fake')
|
||||
else:
|
||||
# configure glance and upload image. Note the meta flags
|
||||
# are provided as custom glance properties
|
||||
glanceclient = self.get_glance_client(self.provider)
|
||||
image = glanceclient.images.create(
|
||||
name=image_name,
|
||||
is_public=False,
|
||||
disk_format=disk_format,
|
||||
container_format=container_format,
|
||||
**meta)
|
||||
image.update(data=open(filename, 'rb'))
|
||||
glanceclient = None
|
||||
return image.id
|
||||
|
||||
def listExtensions(self):
|
||||
return self.submitTask(ListExtensionsTask())
|
||||
|
@ -46,7 +46,7 @@ class TestNodepool(tests.DBTestCase):
|
||||
'fake-dib-provider',
|
||||
'fake-jenkins',
|
||||
'fake-target',
|
||||
'DiskImageBuilder queue',
|
||||
'DiskImageBuilder queue'
|
||||
]
|
||||
|
||||
while True:
|
||||
|
Loading…
x
Reference in New Issue
Block a user