Exemple #1
0
    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))
Exemple #2
0
 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
Exemple #4
0
 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")
Exemple #5
0
 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()