Beispiel #1
0
 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