function testFormater() { // BytesToString $res = Formater::Bytes2String(23552); $this->assertEqual($res, "23 KB", "BytesToString"); //Date2Fuzzy $res = Formater::Date2Fuzzy("2006-05-04 00:00:01"); $this->assertEqual($res, "May 4 at 12:00am", "Date2Fuzzy"); //CompareDates $res = Formater::CompareDates(date("Y-m-d"), date("Y-m-d", time() - 102240)); $this->assertEqual($res, 1, "CompareDates"); //TimeStringToStamp $res = Formater::TimeString2Stamp(date("Y-m-d")); $this->assertEqual($res, mktime(0, 0, 0, date("m"), date("d"), date("Y")), "TimeStringToStamp"); //TimeStampToString $res = Formater::TimeStamp2String(time(), "Y-m-d"); $this->assertEqual($res, date("Y-m-d"), "TimeStampToString"); //TimeFormat $res = Formater::TimeFormat(time(), "Y-m-d"); $this->assertEqual($res, date("Y-m-d"), "TimeFormat"); //TimeToHumanReadable $res = Formater::Time2HumanReadable(86400); $this->assertTrue(strcasecmp($res, '1 day') == 0, "TimeToHumanReadable"); //FuzzyTimeString $res = Formater::FuzzyTimeString(time()); $this->assertTrue(stristr($res, "today"), "FuzzyTimeString"); // time ago $time = time() - 58 - 60 * 2; $res = Formater::TimeAgo($time); $this->assertEqual($res, "2 mins 58 seconds ago", "TimeAgo"); }
public function xListServersAction() { $this->request->defineParams(array('roleId' => array('type' => 'int'), 'farmId' => array('type' => 'int'), 'farmRoleId' => array('type' => 'int'), 'serverId', 'hideTerminated' => array('type' => 'bool'), 'sort' => array('type' => 'json', 'default' => array('property' => 'id', 'direction' => 'ASC')))); $sql = "SELECT servers.*, farms.name AS farm_name, roles.name AS role_name FROM servers LEFT JOIN farms ON servers.farm_id = farms.id\n\t\t\t\tLEFT JOIN roles ON roles.id = servers.role_id WHERE servers.env_id='{$this->getEnvironmentId()}'"; if ($this->getParam('farmId')) { $sql .= " AND farm_id='{$this->getParam('farmId')}'"; } if ($this->getParam('farmRoleId')) { $sql .= " AND farm_roleid='{$this->getParam('farmRoleId')}'"; } if ($this->getParam('roleId')) { $sql .= " AND role_id='{$this->getParam('roleId')}'"; } if ($this->getParam('serverId')) { $sql .= " AND server_id={$this->db->qstr($this->getParam('serverId'))}"; } if ($this->getParam('hideTerminated')) { $sql .= " AND servers.status != '" . SERVER_STATUS::TERMINATED . "'"; } $response = $this->buildResponseFromSql($sql, array("server_id", "farm_id", "`farms`.`name`", "remote_ip", "local_ip", "`servers`.`status`"), NULL, false); foreach ($response["data"] as &$row) { try { $dbServer = DBServer::LoadByID($row['server_id']); $row['cloud_server_id'] = $dbServer->GetCloudServerID(); $row['ismaster'] = $dbServer->GetProperty(SERVER_PROPERTIES::DB_MYSQL_MASTER) || $dbServer->GetProperty(Scalr_Db_Msr::REPLICATION_MASTER); $row['cloud_location'] = $dbServer->GetCloudLocation(); if ($dbServer->platform == SERVER_PLATFORMS::EC2) { $loc = $dbServer->GetProperty(EC2_SERVER_PROPERTIES::AVAIL_ZONE); if ($loc && $loc != 'x-scalr-diff') { $row['cloud_location'] .= "/" . substr($loc, -1, 1); } } if ($dbServer->platform == SERVER_PLATFORMS::EC2) { $row['has_eip'] = $this->db->GetOne("SELECT id FROM elastic_ips WHERE server_id = ?", array($dbServer->serverId)); } if ($dbServer->GetFarmRoleObject()->GetRoleObject()->hasBehavior(ROLE_BEHAVIORS::MONGODB)) { $shardIndex = $dbServer->GetProperty(Scalr_Role_Behavior_MongoDB::SERVER_SHARD_INDEX); $replicaSetIndex = $dbServer->GetProperty(Scalr_Role_Behavior_MongoDB::SERVER_REPLICA_SET_INDEX); $row['cluster_position'] = "{$shardIndex}-{$replicaSetIndex}"; } } catch (Exception $e) { } $row['isrebooting'] = $this->db->GetOne("SELECT value FROM server_properties WHERE server_id=? AND `name`=?", array($row['server_id'], SERVER_PROPERTIES::REBOOTING)); $row['is_szr'] = $dbServer->IsSupported("0.5"); $row['initDetailsSupported'] = $dbServer->IsSupported("0.7.181"); if ($dbServer->GetProperty(SERVER_PROPERTIES::SZR_IS_INIT_FAILED) && in_array($dbServer->status, array(SERVER_STATUS::INIT, SERVER_STATUS::PENDING))) { $row['isInitFailed'] = 1; } $launchError = $dbServer->GetProperty(SERVER_PROPERTIES::LAUNCH_ERROR); if ($launchError) { $row['launch_error'] = "1"; } $row['agent_version'] = $dbServer->GetProperty(SERVER_PROPERTIES::SZR_VESION); $row['agent_update_needed'] = $dbServer->IsSupported("0.7") && !$dbServer->IsSupported("0.7.189"); $row['agent_update_manual'] = !$dbServer->IsSupported("0.5"); $row['os_family'] = $dbServer->GetOsFamily(); $row['flavor'] = $dbServer->GetFlavor(); if (!$row['flavor']) { $row['flavor'] = ''; } if ($dbServer->status == SERVER_STATUS::RUNNING) { $tm = (int) $dbServer->GetProperty(SERVER_PROPERTIES::INITIALIZED_TIME); if (!$tm) { $tm = (int) strtotime($row['dtadded']); } if ($tm > 0) { $row['uptime'] = Formater::Time2HumanReadable(time() - $tm, false); } } else { $row['uptime'] = ''; } $r_dns = $this->db->GetOne("SELECT value FROM farm_role_settings WHERE farm_roleid=? AND `name`=?", array($row['farm_roleid'], DBFarmRole::SETTING_EXCLUDE_FROM_DNS)); $row['excluded_from_dns'] = !$dbServer->GetProperty(SERVER_PROPERTIES::EXCLUDE_FROM_DNS) && !$r_dns ? false : true; } $this->response->data($response); }