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)
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)
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)
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())