def aodh_url(self): if self._aodh_url is None: if cfg.CONF.api.aodh_is_enabled is False: self._aodh_url = "" elif cfg.CONF.api.aodh_url is not None: self._aodh_url = self._normalize_aodh_url( cfg.CONF.api.aodh_url) else: try: catalog = keystone_client.get_service_catalog( keystone_client.get_client()) self._aodh_url = self._normalize_aodh_url( catalog.url_for(service_type='alarming')) except exceptions.EndpointNotFound: self._aodh_url = "" except exceptions.ClientException: LOG.warning( _LW("Can't connect to keystone, assuming aodh " "is disabled and retry later.")) else: LOG.warning( _LW("ceilometer-api started with aodh " "enabled. Alarms URLs will be redirected " "to aodh endpoint.")) return self._aodh_url
def gnocchi_is_enabled(self): if self._gnocchi_is_enabled is None: if pecan.request.cfg.api.gnocchi_is_enabled is not None: self._gnocchi_is_enabled = ( pecan.request.cfg.api.gnocchi_is_enabled) elif ("gnocchi" not in pecan.request.cfg.meter_dispatchers or "database" in pecan.request.cfg.meter_dispatchers): self._gnocchi_is_enabled = False else: try: catalog = keystone_client.get_service_catalog( keystone_client.get_client(pecan.request.cfg)) catalog.url_for(service_type='metric') except exceptions.EndpointNotFound: self._gnocchi_is_enabled = False except exceptions.ClientException: LOG.warning("Can't connect to keystone, assuming " "gnocchi is disabled and retry later") else: self._gnocchi_is_enabled = True LOG.warning("ceilometer-api started with gnocchi " "enabled. The resources/meters/samples " "URLs are disabled.") return self._gnocchi_is_enabled
def panko_url(self): if self._panko_url is None: if pecan.request.cfg.api.panko_is_enabled is False: self._panko_url = "" elif pecan.request.cfg.api.panko_url is not None: self._panko_url = self._normalize_url( pecan.request.cfg.api.panko_url) else: try: catalog = keystone_client.get_service_catalog( keystone_client.get_client(pecan.request.cfg)) self._panko_url = self._normalize_url( catalog.url_for(service_type='event')) except exceptions.EndpointNotFound: self._panko_url = "" except exceptions.ClientException: LOG.warning( _LW("Can't connect to keystone, assuming Panko " "is disabled and retry later.")) else: LOG.warning( _LW("ceilometer-api started with Panko " "enabled. Events URLs will be redirected " "to Panko endpoint.")) return self._panko_url
def gnocchi_is_enabled(self): print cfg.CONF.meter_dispatchers # debug by Tony pdb.set_trace() # debug by Tony if self._gnocchi_is_enabled is None: if cfg.CONF.api.gnocchi_is_enabled is not None: self._gnocchi_is_enabled = cfg.CONF.api.gnocchi_is_enabled elif ("gnocchi" not in cfg.CONF.meter_dispatchers or "database" in cfg.CONF.meter_dispatchers): self._gnocchi_is_enabled = False else: try: catalog = keystone_client.get_service_catalog( keystone_client.get_client()) catalog.url_for(service_type='metric') except exceptions.EndpointNotFound: self._gnocchi_is_enabled = False except exceptions.ClientException: LOG.warning( _LW("Can't connect to keystone, assuming " "gnocchi is disabled and retry later")) else: self._gnocchi_is_enabled = True LOG.warning( _LW("ceilometer-api started with gnocchi " "enabled. The resources/meters/samples " "URLs are disabled.")) return self._gnocchi_is_enabled
def gnocchi_is_enabled(self): if self._gnocchi_is_enabled is None: if pecan.request.cfg.api.gnocchi_is_enabled is not None: self._gnocchi_is_enabled = ( pecan.request.cfg.api.gnocchi_is_enabled) elif ("gnocchi" not in pecan.request.cfg.meter_dispatchers or "database" in pecan.request.cfg.meter_dispatchers): self._gnocchi_is_enabled = False else: try: catalog = keystone_client.get_service_catalog( keystone_client.get_client(pecan.request.cfg)) catalog.url_for(service_type='metric') except exceptions.EndpointNotFound: self._gnocchi_is_enabled = False except exceptions.ClientException: LOG.warning(_LW("Can't connect to keystone, assuming " "gnocchi is disabled and retry later")) else: self._gnocchi_is_enabled = True LOG.warning(_LW("ceilometer-api started with gnocchi " "enabled. The resources/meters/samples " "URLs are disabled.")) return self._gnocchi_is_enabled
def discover(self, manager, param=None): endpoints = keystone_client.get_service_catalog( manager.keystone).get_urls( service_type=param, interface=self.conf.service_credentials.interface, region_name=self.conf.service_credentials.region_name) if not endpoints: LOG.warning(_LW('No endpoints found for service %s'), "<all services>" if param is None else param) return [] return endpoints
def discover(manager, param=None): endpoints = keystone_client.get_service_catalog( manager.keystone).get_urls( service_type=param, interface=cfg.CONF.service_credentials.interface, region_name=cfg.CONF.service_credentials.region_name) if not endpoints: LOG.warning(_LW('No endpoints found for service %s'), "<all services>" if param is None else param) return [] return endpoints
def _get_endpoint(conf, ksclient): # we store the endpoint as a base class attribute, so keystone is # only ever called once if _Base._ENDPOINT is None: try: creds = conf.service_credentials _Base._ENDPOINT = keystone_client.get_service_catalog(ksclient).url_for( service_type=conf.service_types.swift, interface=creds.interface, region_name=creds.region_name ) except exceptions.EndpointNotFound as e: LOG.info(_LI("Swift endpoint not found: %s"), e) return _Base._ENDPOINT
def _get_endpoint(conf, ksclient): # we store the endpoint as a base class attribute, so keystone is # only ever called once if _Base._ENDPOINT is None: try: creds = conf.service_credentials _Base._ENDPOINT = keystone_client.get_service_catalog( ksclient).url_for(service_type=conf.service_types.swift, interface=creds.interface, region_name=creds.region_name) except exceptions.EndpointNotFound as e: LOG.info(_LI("Swift endpoint not found: %s"), e) return _Base._ENDPOINT
def _get_endpoint(ksclient): # we store the endpoint as a base class attribute, so keystone is # only ever called once if _Base._ENDPOINT is None: try: conf = cfg.CONF.service_credentials _Base._ENDPOINT = keystone_client.get_service_catalog( ksclient).url_for( service_type=cfg.CONF.service_types.swift, interface=conf.interface) except exceptions.EndpointNotFound: LOG.debug("Swift endpoint not found") return _Base._ENDPOINT
def _get_endpoint(ksclient): # we store the endpoint as a base class attribute, so keystone is # only ever called once if _Base._ENDPOINT is None: try: conf = cfg.CONF.service_credentials _Base._ENDPOINT = keystone_client.get_service_catalog( ksclient).url_for( service_type=cfg.CONF.service_types.swift, interface=conf.interface) except exceptions.EndpointNotFound: LOG.debug("Swift endpoint not found") return _Base._ENDPOINT
def _get_endpoint(conf, ksclient): # we store the endpoint as a base class attribute, so keystone is # only ever called once, also we assume that in a single deployment # we may be only deploying `radosgw` or `swift` as the object-store if _Base._ENDPOINT is None: try: creds = conf.service_credentials rgw_url = keystone_client.get_service_catalog( ksclient).url_for(service_type=conf.service_types.radosgw, interface=creds.interface) _Base._ENDPOINT = urlparse.urljoin(rgw_url, '/admin') except exceptions.EndpointNotFound: LOG.debug("Radosgw endpoint not found") return _Base._ENDPOINT
def discover(self, discovery=None, discovery_cache=None): resources = [] discovery = discovery or [] for url in discovery: if discovery_cache is not None and url in discovery_cache: resources.extend(discovery_cache[url]) continue name, param = self._parse_discoverer(url) discoverer = self._discoverer(name) if discoverer: try: if discoverer.KEYSTONE_REQUIRED_FOR_SERVICE: service_type = getattr( self.conf.service_types, discoverer.KEYSTONE_REQUIRED_FOR_SERVICE) if not keystone_client.get_service_catalog( self.keystone).get_endpoints( service_type=service_type): LOG.warning( 'Skipping %(name)s, %(service_type)s service ' 'is not registered in keystone', { 'name': name, 'service_type': service_type }) continue discovered = discoverer.discover(self, param) if self.partition_coordinator: discovered = [ v for v in discovered if self.hashrings[self.construct_group_id( discoverer.group_id)].belongs_to_self( six.text_type(v)) ] resources.extend(discovered) if discovery_cache is not None: discovery_cache[url] = discovered except ka_exceptions.ClientException as e: LOG.error('Skipping %(name)s, keystone issue: ' '%(exc)s', { 'name': name, 'exc': e }) except Exception as err: LOG.exception('Unable to discover resources: %s', err) else: LOG.warning('Unknown discovery extension: %s', name) return resources
def _get_endpoint(conf, ksclient): # we store the endpoint as a base class attribute, so keystone is # only ever called once, also we assume that in a single deployment # we may be only deploying `radosgw` or `swift` as the object-store if _Base._ENDPOINT is None: try: creds = conf.service_credentials rgw_url = keystone_client.get_service_catalog( ksclient).url_for( service_type=conf.service_types.radosgw, interface=creds.interface) _Base._ENDPOINT = urlparse.urljoin(rgw_url, '/admin') except exceptions.EndpointNotFound: LOG.debug("Radosgw endpoint not found") return _Base._ENDPOINT
def discover(self, discovery=None, discovery_cache=None): resources = [] discovery = discovery or [] for url in discovery: if discovery_cache is not None and url in discovery_cache: resources.extend(discovery_cache[url]) continue name, param = self._parse_discoverer(url) discoverer = self._discoverer(name) if discoverer: try: if discoverer.KEYSTONE_REQUIRED_FOR_SERVICE: service_type = getattr( cfg.CONF.service_types, discoverer.KEYSTONE_REQUIRED_FOR_SERVICE) if not keystone_client.get_service_catalog( self.keystone).get_endpoints( service_type=service_type): LOG.warning( _LW('Skipping %(name)s, %(service_type)s service ' 'is not registered in keystone'), { 'name': name, 'service_type': service_type }) continue discovered = discoverer.discover(self, param) partitioned = self.partition_coordinator.extract_my_subset( self.construct_group_id(discoverer.group_id), discovered) resources.extend(partitioned) if discovery_cache is not None: discovery_cache[url] = partitioned except (ka_exceptions.ClientException, ks_exceptions.ClientException) as e: LOG.error( _LE('Skipping %(name)s, keystone issue: ' '%(exc)s'), { 'name': name, 'exc': e }) except Exception as err: LOG.exception(_('Unable to discover resources: %s') % err) else: LOG.warning(_('Unknown discovery extension: %s') % name) return resources
def discover(self, discovery=None, discovery_cache=None): resources = [] discovery = discovery or [] for url in discovery: if discovery_cache is not None and url in discovery_cache: resources.extend(discovery_cache[url]) continue name, param = self._parse_discoverer(url) discoverer = self._discoverer(name) if discoverer: try: if discoverer.KEYSTONE_REQUIRED_FOR_SERVICE: service_type = getattr( self.conf.service_types, discoverer.KEYSTONE_REQUIRED_FOR_SERVICE) if not keystone_client.get_service_catalog( self.keystone).get_endpoints( service_type=service_type): LOG.warning(_LW( 'Skipping %(name)s, %(service_type)s service ' 'is not registered in keystone'), {'name': name, 'service_type': service_type}) continue discovered = discoverer.discover(self, param) if self.partition_coordinator: partitioned = ( self.partition_coordinator.extract_my_subset( self.construct_group_id(discoverer.group_id), discovered) ) else: partitioned = discovered resources.extend(partitioned) if discovery_cache is not None: discovery_cache[url] = partitioned except ka_exceptions.ClientException as e: LOG.error(_LE('Skipping %(name)s, keystone issue: ' '%(exc)s'), {'name': name, 'exc': e}) except Exception as err: LOG.exception(_LE('Unable to discover resources: %s'), err) else: LOG.warning(_LW('Unknown discovery extension: %s'), name) return resources
def aodh_url(self): if self._aodh_url is None: if cfg.CONF.api.aodh_is_enabled is False: self._aodh_url = "" elif cfg.CONF.api.aodh_url is not None: self._aodh_url = self._normalize_aodh_url( cfg.CONF.api.aodh_url) else: try: catalog = keystone_client.get_service_catalog( keystone_client.get_client()) self._aodh_url = self._normalize_aodh_url( catalog.url_for(service_type='alarming')) except exceptions.EndpointNotFound: self._aodh_url = "" except exceptions.ClientException: LOG.warning(_LW("Can't connect to keystone, assuming aodh " "is disabled and retry later.")) else: LOG.warning(_LW("ceilometer-api started with aodh " "enabled. Alarms URLs will be redirected " "to aodh endpoint.")) return self._aodh_url
def panko_url(self): if self._panko_url is None: if pecan.request.cfg.api.panko_is_enabled is False: self._panko_url = "" elif pecan.request.cfg.api.panko_url is not None: self._panko_url = self._normalize_url( pecan.request.cfg.api.panko_url) else: try: catalog = keystone_client.get_service_catalog( keystone_client.get_client(pecan.request.cfg)) self._panko_url = self._normalize_url( catalog.url_for(service_type='event')) except exceptions.EndpointNotFound: self._panko_url = "" except exceptions.ClientException: LOG.warning( _LW("Can't connect to keystone, assuming Panko " "is disabled and retry later.")) else: LOG.warning(_LW("ceilometer-api started with Panko " "enabled. Events URLs will be redirected " "to Panko endpoint.")) return self._panko_url
def discover(self, discovery=None, discovery_cache=None): resources = [] discovery = discovery or [] for url in discovery: if discovery_cache is not None and url in discovery_cache: resources.extend(discovery_cache[url]) continue name, param = self._parse_discoverer(url) discoverer = self._discoverer(name) if discoverer: try: if discoverer.KEYSTONE_REQUIRED_FOR_SERVICE: service_type = getattr(cfg.CONF.service_types, discoverer.KEYSTONE_REQUIRED_FOR_SERVICE) if not keystone_client.get_service_catalog(self.keystone).get_endpoints( service_type=service_type ): LOG.warning( _LW("Skipping %(name)s, %(service_type)s service " "is not registered in keystone"), {"name": name, "service_type": service_type}, ) continue discovered = discoverer.discover(self, param) partitioned = self.partition_coordinator.extract_my_subset( self.construct_group_id(discoverer.group_id), discovered ) resources.extend(partitioned) if discovery_cache is not None: discovery_cache[url] = partitioned except (ka_exceptions.ClientException, ks_exceptions.ClientException) as e: LOG.error(_LE("Skipping %(name)s, keystone issue: " "%(exc)s"), {"name": name, "exc": e}) except Exception as err: LOG.exception(_("Unable to discover resources: %s") % err) else: LOG.warning(_("Unknown discovery extension: %s") % name) return resources