Esempio n. 1
0
 def get(self, *args, **kwargs):
     if self.check_perm():
         return self.check_perm()
     self.initialize_vars()
     try:
         ci_id = self.get_ci_id()
     except:
         # editing/viewing Ci which doesn's exists.
         return HttpResponseRedirect('/cmdb/ci/jira_ci_unknown')
     if ci_id:
         self.ci = get_object_or_404(db.CI, id=ci_id)
         # preview only for devices
         if self.ci.content_object and self.ci.content_type.name == 'device':
             self.show_in_ralph = True
             self.ralph_ci_link = "/ui/search/info/%d" % self.ci.content_object.id
         self.service_name = self.get_first_parent_venture_name(ci_id)
         self.problems = db.CIProblem.objects.filter(
             ci=self.ci).order_by('-time').all()
         self.incidents = db.CIIncident.objects.filter(
             ci=self.ci).order_by('-time').all()
         self.git_changes = [
             x.content_object for x in db.CIChange.objects.filter(
                 ci=self.ci, type=db.CI_CHANGE_TYPES.CONF_GIT.id)
         ]
         self.device_attributes_changes = [
             x.content_object for x in db.CIChange.objects.filter(
                 ci=self.ci, type=db.CI_CHANGE_TYPES.DEVICE.id)
         ]
         reps = db.CIChangePuppet.objects.filter(ci=self.ci).all()
         for report in reps:
             puppet_logs = db.PuppetLog.objects.filter(
                 cichange=report).all()
             self.puppet_reports.append(
                 dict(report=report, logs=puppet_logs))
         self.zabbix_triggers = db.CIChangeZabbixTrigger.objects.filter(
             ci=self.ci).order_by('-lastchange')
         self.so_events = db.CIChange.objects.filter(
             type=db.CI_CHANGE_TYPES.STATUSOFFICE.id, ci=self.ci).all()
         self.calculate_relations(ci_id)
         self.form_options['instance'] = self.ci
         self.form_options['initial'] = self.form_initial(self.ci)
         self.form_attributes_options['initial'] = self.custom_form_initial(
             self.ci)
         self.form_attributes = EditAttributeFormFactory(
             ci=self.ci).factory(**self.form_attributes_options)
     self.form = self.Form(**self.form_options)
     return super(Edit, self).get(*args, **kwargs)
Esempio n. 2
0
 def post(self, *args, **kwargs):
     self.initialize_vars()
     ci_id = self.kwargs.get('ci_id')
     if ci_id:
         self.ci = get_object_or_404(db.CI, id=ci_id)
         if self.Form:
             self.form = self.Form(self.request.POST, **self.form_options)
             self.form_attributes = EditAttributeFormFactory(
                 ci=self.ci).factory(self.request.POST,
                                     **self.form_attributes_options)
             if self.form.is_valid() and self.form_attributes.is_valid():
                 self.form.data['base-id'] = self.ci.id
                 model = self.form.save(commit=False)
                 model.uid = self.ci.uid
                 model.save(user=self.request.user)
                 self.form_attributes.ci = model
                 model_attributes = self.form_attributes.save()
                 messages.success(self.request, "Changes saved.")
                 return HttpResponseRedirect(self.request.path)
             else:
                 messages.error(self.request, "Correct the errors.")
     return super(Edit, self).get(*args, **kwargs)