public function xListTasksAction() { $this->request->defineParams(array('sort' => array('type' => 'json'))); $sql = 'SELECT id, name, type, target_id as targetId, 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->buildResponseFromSql($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: $serverArgs = explode(':', $row['targetId']); try { $DBServer = DBServer::LoadByFarmRoleIDAndIndex($serverArgs[0], $serverArgs[1]); $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(new DateTime($row['startTime']), $row['timezone'])->format('M j, Y H:i:s') : 'Now'; $row['endTime'] = $row['endTime'] ? Scalr_Util_DateTime::convertDateTime(new DateTime($row['endTime']), $row['timezone'])->format('M j, Y H:i:s') : 'Never'; $row['lastStartTime'] = $row['lastStartTime'] ? Scalr_Util_DateTime::convertDateTime(new DateTime($row['lastStartTime']), $row['timezone'])->format('M j, Y H:i:s') : ''; $row['config'] = unserialize($row['config']); $row['config']['scriptName'] = $this->db->GetOne("SELECT name FROM scripts WHERE id=?", array($row['config']['scriptId'])); } $this->response->data($response); }