Example #1
0
def validate_service_plugin_type(data, valid_values=None):
    """Validates data is a valid service plugin.

    :param data: The service plugin type to validate.
    :param valid_values: Not used.
    :returns: None if data is a valid service plugin known to the plugin
        directory.
    :raises: InvalidServiceType if data is not a service known by the
        plugin directory.
    """
    if not directory.get_plugin(data):
        raise n_exc.InvalidServiceType(service_type=data)
Example #2
0
    def _get_provider_for_flavor(self, context, flavor_id):
        if flavor_id:
            if self._flavors_plugin is None:
                raise vpn_flavors.FlavorsPluginNotLoaded()

            fl_db = self._flavors_plugin.get_flavor(context, flavor_id)
            if fl_db['service_type'] != constants.VPN:
                raise lib_exc.InvalidServiceType(
                    service_type=fl_db['service_type'])
            if not fl_db['enabled']:
                raise flav_exc.FlavorDisabled()
            providers = self._flavors_plugin.get_flavor_next_provider(
                context, fl_db['id'])
            provider = providers[0].get('provider')
            if provider not in self.drivers:
                raise vpn_flavors.NoProviderFoundForFlavor(flavor_id=flavor_id)
        else:
            # Use default provider
            provider = self.default_provider

        LOG.debug("Selected provider %s", provider)
        return provider