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);
}