Exemplo n.º 1
0
 /**
  * Fetch $server logs
  *
  * @param GameServer $server
  * @return null|string
  */
 public function getServerLogs(GameServer $server)
 {
     /** @var ResourceEvent $event */
     $event = $this->dispatchEvent('pre_fetch_logs', new ResourceEvent($server));
     if ($event->isStopped()) {
         $this->flashHelper->setFlash($event->getMessageType(), $event->getMessage(), $event->getMessageParameters());
         return null;
     }
     $logs = array();
     try {
         if ($server->isInstallationEnded()) {
             $logs = $server->getServerLogs();
         } else {
             $logs = $server->getInstallLogs();
         }
     } catch (ConnectionErrorException $e) {
         $this->flashHelper->setFlash(ResourceEvent::TYPE_ERROR, 'dedipanel.machine.connection_failed');
         return null;
     }
     /** @var ResourceEvent $event */
     $event = $this->dispatchEvent('post_fetch_logs', new ResourceEvent($server, array('logs' => $logs)));
     if ($event->isStopped()) {
         $this->flashHelper->setFlash($event->getMessageType(), $event->getMessage(), $event->getMessageParameters());
         return null;
     } elseif ($logs === null) {
         $this->flashHelper->setFlash(ResourceEvent::TYPE_ERROR, 'dedipanel.game.cantGetLog');
         return null;
     }
     return $logs;
 }