Пример #1
0
    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
Пример #2
0
 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
Пример #3
0
    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
Пример #4
0
    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
Пример #5
0
 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))
Пример #6
0
 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))