示例#1
0
 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)
示例#2
0
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()
示例#3
0
 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)
示例#4
0
 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)