Scalr\Model\Entity\Script::getList PHP Method

getList() public static method

public static getList ( $accountId, $envId )
    public static function getList($accountId, $envId)
    {
        $criteria = [];
        if ($accountId && $envId) {
            //environment scope
            $criteria[] = ['$or' => [['$and' => [['accountId' => $accountId], ['envId' => $envId]]], ['$and' => [['accountId' => $accountId], ['envId' => null]]], ['$and' => [['accountId' => null], ['envId' => null]]]]];
        } elseif ($accountId && !$envId) {
            //account scope
            $criteria[] = ['$or' => [['$and' => [['accountId' => $accountId], ['envId' => null]]], ['$and' => [['accountId' => null], ['envId' => null]]]]];
        } else {
            //scalr scope
            $criteria[] = ['envId' => null];
            $criteria[] = ['accountId' => null];
        }
        return array_map(function (Script $script) {
            return ['id' => $script->id, 'name' => $script->name, 'description' => $script->description, 'os' => $script->os, 'isSync' => $script->isSync, 'allowScriptParameters' => $script->allowScriptParameters, 'timeout' => $script->timeout ? $script->timeout : ($script->isSync == 1 ? \Scalr::config('scalr.script.timeout.sync') : \Scalr::config('scalr.script.timeout.async')), 'createdByEmail' => $script->createdByEmail, 'accountId' => $script->accountId, 'scope' => $script->envId ? self::SCOPE_ENVIRONMENT : ($script->accountId ? self::SCOPE_ACCOUNT : self::SCOPE_SCALR), 'versions' => array_map(function (ScriptVersion $version) use($script) {
                return ['version' => $version->version, 'versionName' => $version->version, 'variables' => $script->allowScriptParameters ? $version->variables : []];
            }, $script->getVersions()->getArrayCopy())];
        }, self::find($criteria, null, ['name' => true])->getArrayCopy());
    }

Usage Example

コード例 #1
0
ファイル: Schedulertasks.php プロジェクト: rickb838/scalr
 public function editAction()
 {
     $this->request->defineParams(array('schedulerTaskId' => array('type' => 'int')));
     //$DBFarmRole->FarmID;
     $task = Scalr_SchedulerTask::init();
     $task->loadById($this->getParam(self::CALL_PARAM_NAME));
     $this->user->getPermissions()->validate($task);
     $taskValues = array('targetId' => $task->targetId, 'targetType' => $task->targetType, 'id' => $task->id, 'name' => $task->name, 'type' => $task->type, 'comments' => $task->comments, 'config' => $task->config, 'startTime' => $task->startTime ? Scalr_Util_DateTime::convertTimeZone(new DateTime($task->startTime), $task->timezone)->format('Y-m-d H:i') : '', 'endTime' => $task->endTime ? Scalr_Util_DateTime::convertTimeZone(new DateTime($task->endTime), $task->timezone)->format('Y-m-d H:i') : '', 'restartEvery' => $task->restartEvery, 'timezone' => $task->timezone);
     $taskValues['config']['scriptId'] = (int) $taskValues['config']['scriptId'];
     $taskValues['config']['scriptIsSync'] = (int) $taskValues['config']['scriptIsSync'];
     $farmWidget = array();
     switch ($task->targetType) {
         case Scalr_SchedulerTask::TARGET_FARM:
             $farmWidget = self::loadController('Farms')->getFarmWidget(array('farmId' => $task->targetId), 'addAll');
             break;
         case Scalr_SchedulerTask::TARGET_ROLE:
             $farmWidget = self::loadController('Farms')->getFarmWidget(array('farmRoleId' => $task->targetId), 'addAll');
             break;
         case Scalr_SchedulerTask::TARGET_INSTANCE:
             try {
                 $DBServer = DBServer::LoadByFarmRoleIDAndIndex($task->targetId, $task->targetServerIndex);
                 $farmWidget = self::loadController('Farms')->getFarmWidget(array('serverId' => $DBServer->serverId), 'addAll');
             } catch (Exception $e) {
                 $farmWidget = self::loadController('Farms')->getFarmWidget(array('farmRoleId' => $task->targetId), 'addAll');
             }
             break;
         default:
             break;
     }
     $this->response->page('ui/schedulertasks/create.js', array('farmWidget' => $farmWidget, 'timezones' => Scalr_Util_DateTime::getTimezones(), 'scripts' => Script::getList($this->user->getAccountId(), $this->getEnvironmentId()), 'defaultTimezone' => $this->user->getSetting(Scalr_Account_User::SETTING_UI_TIMEZONE), 'task' => $taskValues));
 }
All Usage Examples Of Scalr\Model\Entity\Script::getList