def handle(self, request, data): client = data.get('client', None) check = data.get('check', None) expire = data.get('expire') content = { 'timestamp': int(time.time()), 'reason': data.get('reason'), } payload = {"content": content} if check and client: payload["path"] = 'silence/%s/%s' % (client, check) else: payload["path"] = 'silence/%s' % client if expire != -1: payload["expire"] = expire dc = data.get('dc', None) if dc and sensu_settings.SENSU_MULTI: sensu_api.set_sensu_api(sensu_settings.SENSU_API.get(dc)) response = sensu_api.silence(payload) try: messages.success(request, _('Silence check event %s.') % response) except Exception: redirect = reverse('horizon:monitoring:events:index') exceptions.handle(request, _("Silence check."), redirect=redirect) return True
def get_data(self): data = [] if sensu_settings.SENSU_MULTI: for dc, config in six.iteritems(sensu_settings.SENSU_API): sensu_api.set_sensu_api(config) datum = sensu_api.service_status datum['datacenter'] = dc data += [datum] else: data = [sensu_api.service_status] return data
def get_data(self): """ return tagged events from all sensu APIs iterate and create clients for every sensu load events and tag it with sensu name """ data = [] if sensu_settings.SENSU_MULTI: for dc, config in six.iteritems(sensu_settings.SENSU_API): try: sensu_api.set_sensu_api(config) _events = sensu_api.event_list(self.request) events = [] for event in _events: event['datacenter'] = dc events.append(event) data += events except Exception as e: messages.error(self.request, '{} - {}'.format(dc, e)) else: data = sensu_api.event_list(self.request) return data
def get_data(self): check = self.kwargs['check'] client = self.kwargs['client'] dc = self.kwargs.get('dc', None) if dc and sensu_settings.SENSU_MULTI: sensu_api.set_sensu_api(sensu_settings.SENSU_API.get(dc)) try: event = sensu_api.event_detail(check, client) try: if include_kedb: event = kedb_api.event_list([event])[0] except Exception as e: pass except Exception: redirect = reverse(self.redirect_url) exceptions.handle(self.request, _('Unable to retrieve details for ' 'instance "%s".') % check, redirect=redirect) # Not all exception types handled above will result in a redirect. # Need to raise here just in case. raise exceptions.Http302(redirect) return event
def set_sensu(self, object_id): if sensu_settings.SENSU_MULTI: dc = object_id.split(" ")[2] sensu_api.set_sensu_api(sensu_settings.SENSU_API.get(dc))