DBServer::LoadByFarmRoleIDAndIndex PHP Method

LoadByFarmRoleIDAndIndex() public static method

public static LoadByFarmRoleIDAndIndex ( integer $farm_roleid, integer $index ) : DBServer
$farm_roleid integer
$index integer
return DBServer
    public static function LoadByFarmRoleIDAndIndex($farm_roleid, $index)
    {
        $db = \Scalr::getDb();
        $server_id = $db->GetOne("SELECT server_id FROM servers WHERE farm_roleid = ? AND `index` = ? AND status != ? LIMIT 1", array($farm_roleid, $index, SERVER_STATUS::TERMINATED));
        if (!$server_id) {
            throw new Exception(sprintf(_("Server with FarmRoleID #%s and index #%s not found in database"), $farm_roleid, $index));
        }
        return self::LoadByID($server_id);
    }

Usage Example

Example #1
0
 public function xListTasksAction()
 {
     $this->request->defineParams(array('sort' => array('type' => 'json')));
     $sql = 'SELECT id, name, type, comments, target_id as targetId, target_server_index as targetServerIndex, target_type as targetType, start_time as startTime,
         end_time as endTime, last_start_time as lastStartTime, restart_every as restartEvery, config, order_index as orderIndex,
         status, timezone FROM `scheduler` WHERE `env_id` = ? AND :FILTER:';
     $response = $this->buildResponseFromSql2($sql, array('id', 'name', 'type', 'startTime', 'endTime', 'lastStartTime', 'timezone', 'orderIndex', 'status', 'timezone'), array('id', 'name'), array($this->getEnvironmentId()));
     foreach ($response['data'] as &$row) {
         switch ($row['targetType']) {
             case Scalr_SchedulerTask::TARGET_FARM:
                 try {
                     $DBFarm = DBFarm::LoadByID($row['targetId']);
                     $row['targetName'] = $DBFarm->Name;
                 } catch (Exception $e) {
                 }
                 break;
             case Scalr_SchedulerTask::TARGET_ROLE:
                 try {
                     $DBFarmRole = DBFarmRole::LoadByID($row['targetId']);
                     $row['targetName'] = $DBFarmRole->GetRoleObject()->name;
                     $row['targetFarmId'] = $DBFarmRole->FarmID;
                     $row['targetFarmName'] = $DBFarmRole->GetFarmObject()->Name;
                 } catch (Exception $e) {
                 }
                 break;
             case Scalr_SchedulerTask::TARGET_INSTANCE:
                 try {
                     $DBServer = DBServer::LoadByFarmRoleIDAndIndex($row['targetId'], $row['targetServerIndex']);
                     $row['targetName'] = "({$DBServer->remoteIp})";
                     $DBFarmRole = $DBServer->GetFarmRoleObject();
                     $row['targetFarmId'] = $DBServer->farmId;
                     $row['targetFarmName'] = $DBFarmRole->GetFarmObject()->Name;
                     $row['targetRoleId'] = $DBServer->farmRoleId;
                     $row['targetRoleName'] = $DBFarmRole->GetRoleObject()->name;
                 } catch (Exception $e) {
                 }
                 break;
             default:
                 break;
         }
         $row['type'] = Scalr_SchedulerTask::getTypeByName($row['type']);
         $row['startTime'] = $row['startTime'] ? Scalr_Util_DateTime::convertDateTime($row['startTime'], $row['timezone']) : 'Now';
         $row['endTime'] = $row['endTime'] ? Scalr_Util_DateTime::convertDateTime($row['endTime'], $row['timezone']) : 'Never';
         $row['lastStartTime'] = $row['lastStartTime'] ? Scalr_Util_DateTime::convertDateTime($row['lastStartTime'], $row['timezone']) : '';
         $row['config'] = unserialize($row['config']);
         $script = Script::findPk($row['config']['scriptId']);
         if ($script) {
             $row['config']['scriptName'] = $script->name;
         }
     }
     $this->response->data($response);
 }
All Usage Examples Of DBServer::LoadByFarmRoleIDAndIndex