예제 #1
0
    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
예제 #2
0
파일: sdk.py 프로젝트: Kernelalive/kingbird
 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