[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/daemon/management/ -> PhabricatorDaemonManagementStatusWorkflow.php (source)

   1  <?php
   2  
   3  final class PhabricatorDaemonManagementStatusWorkflow
   4    extends PhabricatorDaemonManagementWorkflow {
   5  
   6    public function didConstruct() {
   7      $this
   8        ->setName('status')
   9        ->setSynopsis(pht('Show status of running daemons.'))
  10        ->setArguments(
  11          array(
  12            array(
  13              'name' => 'local',
  14              'help' => pht('Show only local daemons.'),
  15            ),
  16          ));
  17    }
  18  
  19    public function execute(PhutilArgumentParser $args) {
  20      $console = PhutilConsole::getConsole();
  21  
  22      if ($args->getArg('local')) {
  23        $daemons = $this->loadRunningDaemons();
  24      } else {
  25        $daemons = $this->loadAllRunningDaemons();
  26      }
  27  
  28      if (!$daemons) {
  29        $console->writeErr(
  30          "%s\n",
  31          pht('There are no running Phabricator daemons.'));
  32        return 1;
  33      }
  34  
  35      $status = 0;
  36  
  37      $table = id(new PhutilConsoleTable())
  38        ->addColumns(array(
  39          'id' => array(
  40            'title' => 'ID',
  41          ),
  42          'host' => array(
  43            'title' => 'Host',
  44          ),
  45          'pid' => array(
  46            'title' => 'PID',
  47          ),
  48          'started' => array(
  49            'title' => 'Started',
  50          ),
  51          'daemon' => array(
  52            'title' => 'Daemon',
  53          ),
  54          'argv' => array(
  55            'title' => 'Arguments',
  56          ),
  57        ));
  58  
  59      foreach ($daemons as $daemon) {
  60        if ($daemon instanceof PhabricatorDaemonLog) {
  61          $table->addRow(array(
  62            'id'      => $daemon->getID(),
  63            'host'    => $daemon->getHost(),
  64            'pid'     => $daemon->getPID(),
  65            'started' => date('M j Y, g:i:s A', $daemon->getDateCreated()),
  66            'daemon'  => $daemon->getDaemon(),
  67            'argv'    => csprintf('%LR', $daemon->getExplicitArgv()),
  68          ));
  69        } else if ($daemon instanceof PhabricatorDaemonReference) {
  70          $name = $daemon->getName();
  71          if (!$daemon->isRunning()) {
  72            $daemon->updateStatus(PhabricatorDaemonLog::STATUS_DEAD);
  73            $status = 2;
  74            $name = '<DEAD> '.$name;
  75          }
  76  
  77          $daemon_log = $daemon->getDaemonLog();
  78          $id = null;
  79          if ($daemon_log) {
  80            $id = $daemon_log->getID();
  81          }
  82  
  83          $table->addRow(array(
  84            'id'      => $id,
  85            'host'    => 'localhost',
  86            'pid'     => $daemon->getPID(),
  87            'started' => $daemon->getEpochStarted()
  88              ? date('M j Y, g:i:s A', $daemon->getEpochStarted())
  89              : null,
  90            'daemon'  => $name,
  91            'argv'    => csprintf('%LR', $daemon->getArgv()),
  92          ));
  93        }
  94      }
  95  
  96      $table->draw();
  97    }
  98  
  99  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1