def _lookup(self, kind, *remainder): if (kind in ['meters', 'resources', 'samples'] and self.gnocchi_is_enabled): if kind == 'meters' and pecan.request.method == 'POST': direct = pecan.request.params.get('direct', '') if strutils.bool_from_string(direct): pecan.abort( 400, _('direct option cannot be true when ' 'Gnocchi is enabled.')) return meters.MetersController(), remainder gnocchi_abort() elif kind == 'meters': return meters.MetersController(), remainder elif kind == 'resources': return resources.ResourcesController(), remainder elif kind == 'samples': return samples.SamplesController(), remainder elif kind == 'query': return QueryController( gnocchi_is_enabled=self.gnocchi_is_enabled, aodh_url=self.aodh_url, ), remainder elif kind == 'alarms' and (not self.aodh_url): aodh_abort() elif kind == 'alarms' and self.aodh_url: _redirect(self.aodh_url) elif kind == 'events' and self.panko_url: return _redirect(self.panko_url) elif kind == 'event_types' and self.panko_url: return _redirect(self.panko_url) else: pecan.abort(404)
def _lookup(self, kind, *remainder): if (kind in ['meters', 'resources', 'samples', 'instancestates'] and self.gnocchi_is_enabled): if kind == 'meters' and pecan.request.method == 'POST': direct = pecan.request.params.get('direct', '') if strutils.bool_from_string(direct): pecan.abort( 400, _('direct option cannot be true when ' 'Gnocchi is enabled.')) return meters.MetersController(), remainder gnocchi_abort() elif kind == 'meters': return meters.MetersController(), remainder elif kind == 'resources': return resources.ResourcesController(), remainder elif kind == 'samples': return samples.SamplesController(), remainder elif kind == 'query': return QueryController( gnocchi_is_enabled=self.gnocchi_is_enabled, aodh_url=self.aodh_url, ), remainder elif kind == 'alarms' and (not self.aodh_url): aodh_abort() elif kind == 'alarms' and self.aodh_url: _redirect(self.aodh_url) elif kind == 'events': if self.panko_url: return _redirect(self.panko_url) return events.EventsController(), remainder elif kind == 'event_types': if self.panko_url: return _redirect(self.panko_url) return events.EventTypesController(), remainder # add by xieweijie for instance states # 2017-06-20 elif kind == 'instancestates': if self.panko_url: return _redirect(self.panko_url) return instancestates.instancestatesController(), remainder # end # hy added elif kind == "capability": if self.panko_url: return _redirect(self.panko_url) return capability.CapabilityController(), remainder # hy added else: pecan.abort(404)
class V2Controller(object): """Version 2 API controller root.""" resources = resources.ResourcesController() meters = meters.MetersController() samples = samples.SamplesController() alarms = alarms.AlarmsController() event_types = events.EventTypesController() events = events.EventsController() query = query.QueryController() capabilities = capabilities.CapabilitiesController()
def _lookup(self, kind, *remainder): if (kind in ['meters', 'resources', 'samples'] and self.gnocchi_is_enabled): gnocchi_abort() elif kind == 'meters': return meters.MetersController(), remainder elif kind == 'resources': return resources.ResourcesController(), remainder elif kind == 'samples': return samples.SamplesController(), remainder elif kind == 'query': return QueryController( gnocchi_is_enabled=self.gnocchi_is_enabled, aodh_url=self.aodh_url, ), remainder elif kind == 'alarms' and self.aodh_url: aodh_redirect(self.aodh_url) elif kind == 'alarms': return alarms.AlarmsController(), remainder else: pecan.abort(404)