def do_setup(self, context): """Any initialization the generic driver does while starting.""" super(GenericShareDriver, self).do_setup(context) self.compute_api = compute.API() self.volume_api = volume.API() self._setup_helpers() common_sv_available = False share_server = None sv_fetch_retry_interval = 5 while not (common_sv_available or self.driver_handles_share_servers): try: # Verify availability of common server share_server = ( self.service_instance_manager.get_common_server()) common_sv_available = self._is_share_server_active( context, share_server) except Exception as ex: LOG.error(ex) if not common_sv_available: time.sleep(sv_fetch_retry_interval) LOG.warning( _LW("Waiting for the common service VM to become " "available. " "Driver is currently uninitialized. " "Share server: %(share_server)s " "Retry interval: %(retry_interval)s"), dict(share_server=share_server, retry_interval=sv_fetch_retry_interval))
def do_setup(self, context): """Any initialization the generic driver does while starting.""" super(GenericShareDriver, self).do_setup(context) self.compute_api = compute.API() self.volume_api = volume.API() self.service_instance_manager = service_instance.\ ServiceInstanceManager(self.db, self._helpers, driver_config=self.configuration) self.share_networks_servers = self.service_instance_manager.\ share_networks_servers self._setup_helpers()
def __init__(self, driver_config=None): super(ServiceInstanceManager, self).__init__() self.driver_config = driver_config if self.driver_config: self.driver_config.append_config_values(common_opts) if self.get_config_option("driver_handles_share_servers"): self.driver_config.append_config_values( share_servers_handling_mode_opts) else: self.driver_config.append_config_values( no_share_servers_handling_mode_opts) else: CONF.register_opts(common_opts) if self.get_config_option("driver_handles_share_servers"): CONF.register_opts(share_servers_handling_mode_opts) else: CONF.register_opts(no_share_servers_handling_mode_opts) if not self.get_config_option("service_instance_user"): raise exception.ServiceInstanceException( _('Service instance user is not specified.')) self.admin_context = context.get_admin_context() self._execute = utils.execute self.image_api = image.API() self.compute_api = compute.API() self.path_to_private_key = self.get_config_option( "path_to_private_key") self.max_time_to_build_instance = self.get_config_option( "max_time_to_build_instance") self.availability_zone = self.get_config_option( 'backend_availability_zone') or CONF.storage_availability_zone if self.get_config_option("driver_handles_share_servers"): self.path_to_public_key = self.get_config_option( "path_to_public_key") self._network_helper = None
def __init__(self, db, _helpers, *args, **kwargs): """Do initialization.""" super(ServiceInstanceManager, self).__init__() self.driver_config = None if "driver_config" in kwargs: self.driver_config = kwargs["driver_config"] if not self.get_config_option("service_instance_user"): raise exception.ServiceInstanceException( _('Service instance user ' 'is not specified')) self.admin_context = context.get_admin_context() self._execute = utils.execute self.compute_api = compute.API() self.neutron_api = neutron.API() self._helpers = _helpers self.db = db attempts = 5 while attempts: try: self.service_tenant_id = self.neutron_api.admin_tenant_id break except exception.NetworkException: LOG.debug('Connection to neutron failed.') attempts -= 1 time.sleep(3) else: raise exception.ServiceInstanceException( _('Can not receive ' 'service tenant id.')) self.share_networks_servers = {} self.service_network_id = self._get_service_network() self.vif_driver = importutils.import_class( self.get_config_option("interface_driver"))() self._setup_connectivity_with_service_instances() self.max_time_to_build_instance = self.get_config_option( "max_time_to_build_instance") self.path_to_private_key = self.get_config_option( "path_to_private_key") self.path_to_public_key = self.get_config_option("path_to_public_key")
def do_setup(self, context): """Any initialization the generic driver does while starting.""" super(GenericShareDriver, self).do_setup(context) self.compute_api = compute.API() self.volume_api = volume.API() self._setup_helpers()