def __init__(self, region, context): """Create Glance Object. :param region: Region to which glance object has to be created. :param context: context object. """ try: LOG.info('Creating Glance Object') self.keystone_client = KeystoneClient() service_id = [ service.id for service in self.keystone_client.services_list if service.type == 'image' ][0] glance_endpoint = [ endpoint.url for endpoint in self.keystone_client.endpoints_list if endpoint.service_id == service_id and endpoint.region == region and endpoint.interface == 'public' ][0] params = dict() params['identity_headers'] = self.generate_identity_headers( context) self.glance_client = Client(str(API_VERSION), glance_endpoint, **params) except exceptions.ServiceUnavailable: raise
def __init__(self, region_name=None): # Check if objects are cached and try to use those self.region_name = region_name if 'keystone' in OpenStackDriver.os_clients_dict and \ self._is_token_valid(): self.keystone_client = OpenStackDriver.os_clients_dict['keystone'] else: self.keystone_client = KeystoneClient() OpenStackDriver.os_clients_dict['keystone'] = self.keystone_client self.disabled_quotas = self._get_disabled_quotas(region_name) if region_name in OpenStackDriver.os_clients_dict and \ self._is_token_valid(): LOG.info('Using cached OS client objects') self.nova_client = OpenStackDriver.os_clients_dict[region_name][ 'nova'] self.cinder_client = OpenStackDriver.os_clients_dict[region_name][ 'cinder'] self.neutron_client = OpenStackDriver.os_clients_dict[region_name][ 'neutron'] else: # Create new objects and cache them LOG.info(_("Creating fresh OS Clients objects")) self.neutron_client = NeutronClient(region_name, self.disabled_quotas, self.keystone_client.session) self.nova_client = NovaClient(region_name, self.keystone_client.session, self.disabled_quotas) self.cinder_client = CinderClient(region_name, self.disabled_quotas, self.keystone_client.session) OpenStackDriver.os_clients_dict[ region_name] = collections.defaultdict(dict) OpenStackDriver.os_clients_dict[region_name][ 'nova'] = self.nova_client OpenStackDriver.os_clients_dict[region_name][ 'cinder'] = self.cinder_client OpenStackDriver.os_clients_dict[region_name][ 'neutron'] = self.neutron_client