DBFarmRole::getDefinition PHP Method

getDefinition() public method

public getDefinition ( )
    public function getDefinition()
    {
        $roleDefinition = new stdClass();
        $roleDefinition->roleId = $this->RoleID;
        $roleDefinition->platform = $this->Platform;
        $roleDefinition->cloudLocation = $this->CloudLocation;
        $roleDefinition->alias = $this->Alias;
        $roleDefinition->launchIndex = $this->LaunchIndex;
        // Settings
        $roleDefinition->settings = array();
        foreach ($this->GetAllSettings() as $k => $v) {
            $roleDefinition->settings[$k] = $v;
        }
        //Farm Global Variables
        $variables = new Scalr_Scripting_GlobalVariables($this->GetFarmObject()->ClientID, $this->GetFarmObject()->EnvID, ScopeInterface::SCOPE_FARMROLE);
        $roleDefinition->globalVariables = $variables->getValues($this->RoleID, $this->FarmID, $this->ID);
        //Storage
        $storage = $this->getStorage();
        $configs = $storage->getConfigs();
        if (!empty($configs)) {
            foreach ($configs as $cfg) {
                $cfg = (array) $cfg;
                unset($cfg['id']);
                unset($cfg['status']);
                $roleDefinition->storage[] = $cfg;
            }
        }
        // Scripts
        $scripts = $this->DB->GetAll("SELECT * FROM farm_role_scripts WHERE farm_roleid=? AND issystem='1'", array($this->ID));
        $roleDefinition->scripts = array();
        foreach ($scripts as $script) {
            $itm = new stdClass();
            $itm->event = $script['event_name'];
            $itm->scriptId = (int) $script['scriptid'];
            $itm->params = unserialize($script['params']);
            $itm->target = $script['target'];
            $itm->version = (int) $script['version'];
            $itm->timeout = $script['timeout'];
            $itm->isSync = $script['issync'];
            $itm->isMenuItem = $script['ismenuitem'];
            $itm->orderIndex = $script['order_index'];
            $itm->scriptPath = $script['script_path'];
            $itm->scriptType = $script['script_type'];
            $itm->runAs = $script['run_as'];
            switch ($script['target']) {
                case $script['target'] == Script::TARGET_ROLES:
                    $varName = 'targetRoles';
                    break;
                case $script['target'] == Script::TARGET_FARMROLES:
                    $varName = 'targetFarmroles';
                    break;
                case $script['target'] == Script::TARGET_BEHAVIORS:
                    $varName = 'targetBehaviors';
                    break;
            }
            $targets = $this->DB->GetAll("SELECT target FROM `farm_role_scripting_targets` WHERE farm_role_script_id = ?", array($script['id']));
            foreach ($targets as $target) {
                $itm->{$varName}[] = $target['target'];
            }
            $roleDefinition->scripts[] = $itm;
        }
        // Scaling times
        $scalingTimes = $this->DB->GetAll("SELECT * FROM farm_role_scaling_times WHERE farm_roleid = ?", array($this->ID));
        $roleDefinition->scalingTimes = array();
        foreach ($scalingTimes as $time) {
            $itm = new stdClass();
            $itm->startTime = $time['start_time'];
            $itm->endTime = $time['end_time'];
            $itm->daysOfWeek = $time['days_of_week'];
            $itm->instanceCount = $time['instances_count'];
            $roleDefinition->scalingTimes[] = $itm;
        }
        // Scaling metrics
        $scalingMetrics = $this->DB->GetAll("SELECT * FROM farm_role_scaling_metrics WHERE farm_roleid = ?", array($this->ID));
        $roleDefinition->scalingMetrics = array();
        foreach ($scalingMetrics as $metric) {
            $itm = new stdClass();
            $itm->metricId = $metric['metric_id'];
            $itm->settings = unserialize($metric['settings']);
            $roleDefinition->scalingMetrics[] = $itm;
        }
        return $roleDefinition;
    }