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)
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