コード例 #1
0
 public function closeAction(Incident $incident)
 {
     $this->assertUserRights(UserRole::ROLE_COLLABORATOR, $incident->getEventIdentifier()->getProject());
     $eventIdentifier = $incident->getEventIdentifier();
     $closeEvent = new Event();
     $closeEvent->setEventIdentifier($eventIdentifier);
     $closeEvent->setSystem($eventIdentifier->getSystem()->getIdentifier());
     $closeEvent->setStatus(Event::STATUS_SUCCESS);
     $closeEvent->setIsStatusChange(true);
     $closeEvent->setUnique($eventIdentifier->getLastEvent()->isUnique());
     $closeEvent->setType($eventIdentifier->getLastEvent()->getType());
     $closeEvent->setComponentId($eventIdentifier->getLastEvent()->getComponentId());
     $closeEvent->setMessage('Manually closed by ' . $this->getUser()->getUsername() . '.');
     if (!$incident->getAcknowledgedBy()) {
         $incident->setAcknowledgedBy($this->getUser());
     }
     $em = $this->getDoctrine()->getManager();
     $em->persist($incident);
     $em->flush();
     $this->get('koalamon.project.helper')->addEvent($closeEvent);
     return new JsonResponse(['status' => 'success', 'message' => 'The incident was closed successfully.', 'event_identifier_id' => $eventIdentifier->getId()]);
 }
コード例 #2
0
 private function handleIncident(Event &$event, Event $lastEvent = null)
 {
     if ($event->getStatus() == Event::STATUS_FAILURE) {
         if (!$event->getIsStatusChange() && $event->getEventIdentifier()->getLastIncident()) {
             $incident = $event->getEventIdentifier()->getLastIncident();
             $event->setIncident($incident);
         } else {
             $incident = new Incident($event);
             $incident->setEventIdentifier($event->getEventIdentifier());
             $event->setIncident($incident);
             $event->getEventIdentifier()->setLastIncident($incident);
         }
         $incident->increaseEventCount();
         $this->entityManager->persist($incident);
         $this->entityManager->persist($event);
         $this->entityManager->flush();
     } else {
         if ($event->getIsStatusChange()) {
             if ($event->getEventIdentifier()->getLastIncident()) {
                 $incident = $event->getEventIdentifier()->getLastIncident();
                 if ($lastEvent) {
                     $incident->close();
                 }
                 $this->entityManager->persist($incident);
                 $this->entityManager->flush();
             }
         }
     }
 }