Beispiel #1
0
 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");
 }
Beispiel #2
0
 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);
 }