Exemple #1
0
    def post(self, request, content_type, object_id):
        form = self.get_form()
        # Set an instance of our service here so that we can pass it
        # along for promtool to render
        form.instance.set_object(content_type, object_id)
        if form.is_valid():
            form.instance.save()
            form.instance.add_label(form.instance.content_type.model, form.instance.content_object.name)

            return HttpResponseRedirect(form.instance.get_absolute_url())

        if 'rules' not in request.POST:
            return self.form_invalid(form)

        importform = forms.ImportRuleForm(request.POST)
        ct = ContentType.objects.get_by_natural_key('promgen', content_type).model_class()
        obj = ct.objects.get(pk=object_id)

        if importform.is_valid():
            data = importform.clean()
            counters = prometheus.import_rules_v2(data['rules'], obj)
            messages.info(request, 'Imported %s' % counters)
            return HttpResponseRedirect(obj.get_absolute_url())

        return self.form_invalid(form)
Exemple #2
0
    def form_valid(self, form):
        data = form.clean()
        if data.get('file_field'):
            rules = data['file_field'].read().decode('utf8')
        elif data.get('rules'):
            rules = data.get('rules')
        else:
            messages.warning(self.request, 'Missing rules')
            return self.form_invalid(form)

        try:
            counters = prometheus.import_rules_v2(rules)
            messages.info(self.request, 'Imported %s' % counters)
            return redirect('rule-import')
        except:
            messages.error(self.request, 'Error importing rules')
            return self.form_invalid(form)
Exemple #3
0
    def post(self, request, content_type, object_id):
        form = self.get_form()
        # Set an instance of our service here so that we can pass it
        # along for promtool to render
        form.instance.set_object(content_type, object_id)
        if form.is_valid():
            form.instance.save()
            form.instance.add_label(form.instance.content_type.model, form.instance.content_object.name)

            return HttpResponseRedirect(form.instance.get_absolute_url())

        if 'rules' not in request.POST:
            return self.form_invalid(form)

        importform = forms.ImportRuleForm(request.POST)
        service = get_object_or_404(models.Service, id=self.kwargs['pk'])
        if importform.is_valid():
            data = importform.clean()
            counters = prometheus.import_rules_v2(data['rules'], service)
            messages.info(request, 'Imported %s' % counters)
            return HttpResponseRedirect(service.get_absolute_url())

        return self.form_invalid(form)
Exemple #4
0
 def form_import(self, form, content_object):
     data = form.clean()
     counters = prometheus.import_rules_v2(data["rules"], content_object)
     messages.info(self.request, "Imported %s" % counters)
     return HttpResponseRedirect(content_object.get_absolute_url())