コード例 #1
0
 public function connect(Application $app)
 {
     $controllers = new ControllerCollection();
     $supervisor = new API();
     $servers = (include __DIR__ . '/../../config.php');
     foreach (array_keys($servers) as $server_id) {
         $servers[$server_id]['id'] = $server_id;
     }
     $controllers->get('/list.{_format}', function ($_format) use($supervisor, $app, $servers) {
         if ($_format == 'json') {
             return $app->json($servers);
         } else {
             // use a closure to avoid leaking any vars into the template that we don't explicitly want
             return call_user_func(function () use($app) {
                 $url_root = $app['url_generator']->generate('home');
                 ob_start();
                 ob_implicit_flush(false);
                 include __DIR__ . '/../../views/supervisorui.html.php';
                 return ob_get_clean();
             });
         }
     })->bind('server_list')->value('_format', 'html');
     $controllers->get('/details/{server_id}', function ($server_id) use($supervisor, $app, $servers) {
         $server_ip = $servers[$server_id]['ip'];
         $details = array_merge(array('version' => $supervisor->getSupervisorVersion('127.0.0.1'), 'pid' => $supervisor->getPID('127.0.0.1')), $supervisor->getState('127.0.0.1'), $servers[$server_id]);
         return $app->json($details);
     });
     return $controllers;
 }
コード例 #2
0
 public function connect(Application $app)
 {
     $controllers = new ControllerCollection();
     $supervisor = new API();
     $servers = (require_once __DIR__ . '/../../config.php');
     $controllers->get('/{server}', function ($server) use($supervisor, $app) {
         //$server_ip = $servers[$server]['ip'];
         $services = $supervisor->getAllProcessInfo('127.0.0.1');
         return $app->json($services);
     });
     $controllers->post('/{server}/{service}', function (Request $request, $server, $service) use($supervisor, $servers, $app) {
         $server_ip = $servers[$server]['ip'];
         if (0 === strpos($request->headers->get('Content-Type'), 'application/json')) {
             $data = json_decode($request->getContent(), true);
         } else {
             return false;
         }
         $result = false;
         // Get the current state of the service
         $current_service = $supervisor->getProcessInfo('127.0.0.1', $service);
         if (isset($current_service['error'])) {
             $result = $current_service;
         } else {
             if (!(bool) $data['running'] && $current_service['state'] == $supervisor::STATE_RUNNING) {
                 $result = $supervisor->stopProcess('127.0.0.1', $service);
             } else {
                 if ((bool) $data['running'] && $current_service['state'] != $supervisor::STATE_RUNNING) {
                     $result = $supervisor->startProcess('127.0.0.1', $service);
                 }
             }
         }
         if (!$result) {
             $result = array('error' => array('code' => '', 'msg' => 'Error getting details for ' . $service . ' from ' . $server_ip));
         }
         return $app->json($result);
     });
     $controllers->get('/{server}/{service}', function ($server, $service) use($supervisor, $servers, $app) {
         $server_ip = $servers[$server]['ip'];
         return $app->json($supervisor->getProcessInfo('127.0.0.1', $service));
     });
     return $controllers;
 }