Fix issue for glance image sync failed
Because of the code change of glanceclient , the component of glance- powervc could not do the image sync sucessfully. Change-Id: If0b31e20ec645478584c2dc08ad0aa48bb8db392 Closes-Bug: #1369817
This commit is contained in:
parent
66ac1ea035
commit
5e0cd86117
|
@ -2,6 +2,45 @@
|
|||
|
||||
import powervc.common.client.extensions.base as base
|
||||
|
||||
import warlock
|
||||
|
||||
from glanceclient.common import http
|
||||
from glanceclient.common import utils
|
||||
from glanceclient.v2 import image_members
|
||||
from glanceclient.v2 import image_tags
|
||||
from glanceclient.v2 import images
|
||||
from glanceclient.v2 import schemas
|
||||
|
||||
|
||||
class Extended_V2_Client(object):
|
||||
"""
|
||||
Client for the Glance Images v2 API.
|
||||
|
||||
:param dict client_info : The client info dict to init a glance v2 client
|
||||
"""
|
||||
def __init__(self, client_info):
|
||||
endpoint = client_info['endpoint']
|
||||
kwargs = {'cacert': client_info['cacert'],
|
||||
'insecure': client_info['insecure'],
|
||||
'token': client_info['token']}
|
||||
|
||||
self.http_client = http.HTTPClient(utils.strip_version(endpoint),
|
||||
**kwargs)
|
||||
self.schemas = schemas.Controller(self.http_client)
|
||||
image_model = self._get_image_model()
|
||||
self.images = images.Controller(self.http_client, image_model)
|
||||
self.image_tags = image_tags.Controller(self.http_client, image_model)
|
||||
self.image_members = image_members.Controller(self.http_client,
|
||||
self._get_member_model())
|
||||
|
||||
def _get_image_model(self):
|
||||
schema = self.schemas.get('image')
|
||||
return warlock.model_factory(schema.raw(), schemas.SchemaBasedModel)
|
||||
|
||||
def _get_member_model(self):
|
||||
schema = self.schemas.get('member')
|
||||
return warlock.model_factory(schema.raw(), schemas.SchemaBasedModel)
|
||||
|
||||
|
||||
class Client(base.ClientExtension):
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import powervc.common.client.delegate as delegate
|
|||
from glanceclient.openstack.common import importutils
|
||||
from powervc.common.constants import SERVICE_TYPES as SERVICE_TYPES
|
||||
from powervc.common import netutils
|
||||
from powervc.common.client.extensions.glance import Extended_V2_Client
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
@ -146,6 +147,16 @@ class GlanceService(AbstractService):
|
|||
url = self.url
|
||||
if not url.endswith('/'):
|
||||
url += '/'
|
||||
if 'v2' in self.version:
|
||||
client_info = {}
|
||||
client_info['endpoint'] = self.url
|
||||
client_info['cacert'] = self.base_args['cacert']
|
||||
client_info['insecure'] = self.base_args['insecure']
|
||||
client_info['token'] = self.keystone.auth_token
|
||||
extened_client = Extended_V2_Client(client_info)
|
||||
return (self._extend(self._patch(extened_client),
|
||||
client_extension,
|
||||
*extension_args))
|
||||
return (self.
|
||||
_extend(self.
|
||||
_patch(self.clazz(url, token=self.keystone.auth_token,
|
||||
|
|
Loading…
Reference in New Issue