public function setupAction() { $request = $this->getRequest(); $this->view->errors = array(); $this->view->schedulers = array(); $this->view->workers = array(); $client = Infra_ClientHelper::getClient(); if (!$client) { $this->view->errors[] = 'init client failed'; return; } $adminId = Infra_AuthHelper::getAuthInstance()->getIdentity()->getUser()->id; $action = $request->getParam('hdnAction', false); if ($action) { Infra_AclHelper::validateAccess('batch', 'setup-stop-start'); $workerId = $request->getParam('hdnWorkerId', false); $cause = $request->getParam('hdnCause', false); try { switch ($action) { case "stop": $client->batchcontrol->stopWorker($workerId, $adminId, $cause); $this->view->actionDescription .= "Worker [{$workerId}] stop command sent.\n"; break; case "start": $client->batchcontrol->startWorker($workerId, $adminId, $cause); $this->view->actionDescription .= "Worker [{$workerId}] start command sent.\n"; break; case "disable": $configParam = 'enable'; $configValue = '0'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $this->view->actionDescription .= "Worker [{$workerId}] disable command sent.\n"; break; case "enable": $configParam = 'enable'; $configValue = '1'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $this->view->actionDescription .= "Worker [{$workerId}] enable command sent.\n"; break; case "start-manual": $configParam = 'enable'; $configValue = '1'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $configParam = 'autoStart'; $configValue = '0'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $this->view->actionDescription .= "Worker [{$workerId}] start manualy command sent.\n"; break; case "start-auto": $configParam = 'enable'; $configValue = '1'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $configParam = 'autoStart'; $configValue = '1'; $configParamPart = null; $client->batchcontrol->setWorkerConfig($workerId, $adminId, $configParam, $configValue, $configParamPart, $cause); $this->view->actionDescription .= "Worker [{$workerId}] start automatic command sent.\n"; break; } } catch (Exception $e) { $this->view->errors[] = $e->getMessage(); } } $filter = new Kaltura_Client_Type_ControlPanelCommandFilter(); $filter->createdByIdEqual = $adminId; $filter->statusIn = Kaltura_Client_Enum_ControlPanelCommandStatus::HANDLED . ',' . Kaltura_Client_Enum_ControlPanelCommandStatus::PENDING; $this->view->disabledWorkers = array(); try { $commandsList = $client->batchcontrol->listCommands($filter); foreach ($commandsList->objects as $command) { if ($command->type != Kaltura_Client_Enum_ControlPanelCommandType::CONFIG) { $this->view->disabledWorkers[$command->workerId] = $command; } } } catch (Exception $e) { $this->view->errors[] = $e->getMessage(); } $settings = Zend_Registry::get('config')->settings; $controlCommandsTimeFrame = $settings->controlCommandsTimeFrame * 60; $filter = new Kaltura_Client_Type_ControlPanelCommandFilter(); $filter->createdByIdEqual = $adminId; $filter->createdAtGreaterThanOrEqual = time() - $controlCommandsTimeFrame; try { $commandsList = $client->batchcontrol->listCommands($filter); $this->view->commands = $commandsList->objects; } catch (Exception $e) { $this->view->commands = array(); } try { $schedulersList = $client->batchcontrol->listSchedulers(); $this->view->schedulers = $schedulersList->objects; } catch (Exception $e) { $this->view->schedulers = array(); } try { $workersList = $client->batchcontrol->listWorkers(); $this->view->workers = $workersList->objects; } catch (Exception $e) { $this->view->workers = array(); } }