StackFormation\Helper\StackEventsTable::renderEvents PHP Метод

renderEvents() публичный Метод

public renderEvents ( array $events )
$events array
    public function renderEvents(array $events)
    {
        $detailedLog = [];
        $rows = [];
        foreach ($events as $eventId => $event) {
            if (!in_array($eventId, $this->printedEventIds)) {
                $this->printedEventIds[] = $eventId;
                $rows[] = [Decorator::decorateStatus($event['Status']), $event['ResourceType'], $event['LogicalResourceId'], wordwrap($event['ResourceStatusReason'], 40, "\n")];
                $detailedLog = $this->getDetailedLogFromResourceStatusReason($event['ResourceStatusReason']) ?: $detailedLog;
            }
        }
        $this->setRows($rows);
        parent::render();
        if (count($detailedLog)) {
            $this->printLogMessages($detailedLog);
        }
    }

Usage Example

Пример #1
0
 public function observeStackActivity($pollInterval = 20)
 {
     $eventTable = new StackEventsTable($this->output);
     $lastStatus = Poller::poll(function () use($eventTable) {
         try {
             try {
                 $this->stack = $this->stackFactory->getStack($this->stack->getName(), true);
                 // load fresh instance for updated status
                 $this->output->writeln("-> Polling... (Stack Status: {$this->stack->getStatus()})");
                 $eventTable->renderEvents($this->stack->getEvents());
             } catch (CloudFormationException $exception) {
                 throw Exception::refineException($exception);
             }
         } catch (StackNotFoundException $exception) {
             $this->output->writeln("-> Stack gone.");
             return Stack::STATUS_STACK_GONE;
             // this is != false and will stop the poller
         }
         return $this->stack->isInProgress() ? false : $this->stack->getStatus();
     }, $pollInterval, 1000);
     $this->printStatus($lastStatus);
     $this->printResources();
     $this->printOutputs();
     return $lastStatus;
 }