GetProperties() public method

public GetProperties ( )
Example #1
0
 /**
  *
  * @param ServerCreateInfo $serverCreateInfo
  * @param bool $isImport
  * @return DBServer
  */
 public static function Create(ServerCreateInfo $creInfo, $isImport = false, $setPendingStatus = false)
 {
     $db = \Scalr::getDb();
     $startWithLetter = in_array($creInfo->platform, array(SERVER_PLATFORMS::CLOUDSTACK, SERVER_PLATFORMS::IDCF, SERVER_PLATFORMS::GCE));
     if ($isImport) {
         $startWithLetter = true;
     }
     $server_id = Scalr::GenerateUID(false, $startWithLetter);
     $status = !$isImport ? SERVER_STATUS::PENDING_LAUNCH : SERVER_STATUS::IMPORTING;
     if ($setPendingStatus) {
         $status = SERVER_STATUS::PENDING;
     }
     // IF no index defined
     if (!$creInfo->index && !$isImport) {
         $indexes = $db->GetAll("\n                SELECT `index` FROM servers\n                WHERE farm_roleid=?\n                AND status NOT IN (?,?,?)\n            ", array($creInfo->dbFarmRole->ID, SERVER_STATUS::TERMINATED, SERVER_STATUS::PENDING_TERMINATE, SERVER_STATUS::TROUBLESHOOTING));
         $used_indexes = array();
         if (count($indexes) > 0) {
             foreach ($indexes as $index) {
                 $used_indexes[$index['index']] = true;
             }
         }
         for ($i = 1;; $i++) {
             if (!$used_indexes[$i]) {
                 $creInfo->index = $i;
                 break;
             }
         }
     } elseif ($isImport) {
         $creInfo->index = 0;
     }
     $client_id = $creInfo->clientId ? $creInfo->clientId : $creInfo->dbFarmRole->GetFarmObject()->ClientID;
     $db->Execute("\n            INSERT INTO servers SET\n            `server_id`     = ?,\n            `farm_id`       = ?,\n            `env_id`        = ?,\n            `farm_roleid`   = ?,\n            `client_id`     = ?,\n            `platform`      = ?,\n            `status`        = ?,\n            `remote_ip`     = ?,\n            `local_ip`      = ?,\n            `dtadded`       = NOW(),\n            `index`         = ?\n        ", array($server_id, $creInfo->farmId ? $creInfo->farmId : $creInfo->dbFarmRole->FarmID, $creInfo->envId, $creInfo->dbFarmRole ? $creInfo->dbFarmRole->ID : 0, $client_id, $creInfo->platform, $status, $creInfo->remoteIp, $creInfo->localIp, $creInfo->index));
     $DBServer = DBServer::LoadByID($server_id);
     $DBServer->SetProperties($creInfo->GetProperties());
     $DBServer->setOsType($DBServer->osType);
     try {
         if ($DBServer->farmRoleId) {
             $db->Execute("INSERT INTO servers_launch_timelog SET\n                    `server_id`     = ?,\n                    `os_family`     = ?,\n                    `os_version`    = ?,\n                    `cloud`         = ?,\n                    `cloud_location`    = ?,\n                    `server_type`       = ?,\n                    `behaviors`     = ?,\n                    `ts_created`    = ?\n                ", array($server_id, $DBServer->GetFarmRoleObject()->GetRoleObject()->getOs()->family, $DBServer->GetFarmRoleObject()->GetRoleObject()->getOs()->version, $DBServer->platform, $DBServer->cloudLocation, $DBServer->GetFlavor(), implode(",", $DBServer->GetFarmRoleObject()->GetRoleObject()->getBehaviors()), time()));
         }
     } catch (Exception $e) {
     }
     return $DBServer;
 }
Example #2
0
 /**
  *
  * @param ServerCreateInfo $serverCreateInfo
  * @param bool $isImport
  * @return DBServer
  */
 public static function Create(ServerCreateInfo $creInfo, $isImport = false, $setPendingStatus = false)
 {
     $db = \Scalr::getDb();
     $startWithLetter = in_array($creInfo->platform, array(SERVER_PLATFORMS::CLOUDSTACK, SERVER_PLATFORMS::IDCF, SERVER_PLATFORMS::GCE));
     if ($isImport) {
         $startWithLetter = true;
     }
     $server_id = Scalr::GenerateUID(false, $startWithLetter);
     $status = !$isImport ? SERVER_STATUS::PENDING_LAUNCH : SERVER_STATUS::IMPORTING;
     if ($setPendingStatus) {
         $status = SERVER_STATUS::PENDING;
     }
     // Assigns Farm index to the server
     if (!$isImport) {
         // This query select the least lower vacant Farm index from the available.
         // If there are no available indexes the query returns NULL so we need cast result to integer
         // to make sure it will use Farm index equal to 1 in this case.
         // We ingore terminated and pending terminating instances to release their indexes.
         $farmIndex = 1 + intval($db->GetOne("\n                SELECT s.farm_index\n                FROM servers s\n                WHERE s.farm_id = ? AND s.status NOT IN (?, ?)\n                AND NOT EXISTS (SELECT 1 FROM servers WHERE farm_id = s.farm_id AND farm_index = s.farm_index + 1 AND status NOT IN (?, ?))\n                ORDER BY s.farm_index\n                LIMIT 1\n            ", [$creInfo->farmId ? $creInfo->farmId : $creInfo->dbFarmRole->FarmID, SERVER_STATUS::TERMINATED, SERVER_STATUS::PENDING_TERMINATE, SERVER_STATUS::TERMINATED, SERVER_STATUS::PENDING_TERMINATE]));
     } else {
         // Default Farm index value is considered to equal 1
         $farmIndex = 1;
     }
     // IF no index defined
     if (!$creInfo->index && !$isImport) {
         $indexes = $db->GetAll("SELECT `index` FROM servers WHERE farm_roleid = ? AND status NOT IN (?, ?)", [$creInfo->dbFarmRole->ID, SERVER_STATUS::TERMINATED, SERVER_STATUS::PENDING_TERMINATE]);
         $usedIndexes = [];
         if (!empty($indexes)) {
             foreach ($indexes as $index) {
                 $usedIndexes[$index['index']] = true;
             }
         }
         for ($i = 1;; $i++) {
             if (!isset($usedIndexes[$i])) {
                 $creInfo->index = $i;
                 break;
             }
         }
     } elseif ($isImport) {
         $creInfo->index = 0;
     }
     $client_id = $creInfo->clientId ? $creInfo->clientId : $creInfo->dbFarmRole->GetFarmObject()->ClientID;
     $instanceTypeName = null;
     $instanceTypeId = $creInfo->dbFarmRole ? $creInfo->dbFarmRole->getInstanceType() : null;
     if (in_array($creInfo->platform, [SERVER_PLATFORMS::EC2, SERVER_PLATFORMS::GCE])) {
         $instanceTypeName = $instanceTypeId;
     }
     $db->Execute("\n            INSERT INTO servers\n            SET `server_id` = ?,\n                `farm_id` = ?,\n                `env_id` = ?,\n                `farm_roleid` = ?,\n                `client_id` = ?,\n                `platform` = ?,\n                `status` = ?,\n                `remote_ip` = ?,\n                `local_ip` = ?,\n                `dtadded` = NOW(),\n                `index` = ?,\n                `farm_index` = ?,\n                `cloud_location` = ?,\n                `type` = ?,\n                `instance_type_name`= ?\n        ", [$server_id, $creInfo->farmId ? $creInfo->farmId : $creInfo->dbFarmRole->FarmID, $creInfo->envId, $creInfo->dbFarmRole ? $creInfo->dbFarmRole->ID : 0, $client_id, $creInfo->platform, $status, $creInfo->remoteIp, $creInfo->localIp, $creInfo->index, $farmIndex, $creInfo->dbFarmRole ? $creInfo->dbFarmRole->CloudLocation : null, $instanceTypeId, $instanceTypeName]);
     $DBServer = DBServer::LoadByID($server_id);
     $DBServer->SetProperties($creInfo->GetProperties());
     $DBServer->setOsType($DBServer->osType);
     try {
         if ($DBServer->farmRoleId) {
             $db->Execute("\n                    INSERT INTO servers_launch_timelog\n                    SET `server_id` = ?,\n                        `os_family` = ?,\n                        `os_version` = ?,\n                        `cloud` = ?,\n                        `cloud_location` = ?,\n                        `server_type` = ?,\n                        `behaviors` = ?,\n                        `ts_created` = ?\n                ", [$server_id, $DBServer->GetFarmRoleObject()->GetRoleObject()->getOs()->family, $DBServer->GetFarmRoleObject()->GetRoleObject()->getOs()->version, $DBServer->platform, $DBServer->cloudLocation, $DBServer->getType(), implode(",", $DBServer->GetFarmRoleObject()->GetRoleObject()->getBehaviors()), time()]);
         }
     } catch (Exception $e) {
     }
     return $DBServer;
 }
Example #3
0
 /**
  *
  * @param ServerCreateInfo $serverCreateInfo
  * @param bool $isImport
  * @return DBServer
  */
 public static function Create(ServerCreateInfo $creInfo, $isImport = false, $setPendingStatus = false)
 {
     $db = \Scalr::getDb();
     $startWithLetter = in_array($creInfo->platform, array(SERVER_PLATFORMS::CLOUDSTACK, SERVER_PLATFORMS::UCLOUD, SERVER_PLATFORMS::IDCF, SERVER_PLATFORMS::GCE));
     if ($isImport) {
         $startWithLetter = true;
     }
     $server_id = Scalr::GenerateUID(false, $startWithLetter);
     $status = !$isImport ? SERVER_STATUS::PENDING_LAUNCH : SERVER_STATUS::IMPORTING;
     if ($setPendingStatus) {
         $status = SERVER_STATUS::PENDING;
     }
     // IF no index defined
     if (!$creInfo->index && !$isImport) {
         $indexes = $db->GetAll("SELECT `index` FROM servers WHERE farm_roleid=? AND status NOT IN (?,?,?)", array($creInfo->dbFarmRole->ID, SERVER_STATUS::TERMINATED, SERVER_STATUS::PENDING_TERMINATE, SERVER_STATUS::TROUBLESHOOTING));
         $used_indexes = array();
         if (count($indexes) > 0) {
             foreach ($indexes as $index) {
                 $used_indexes[$index['index']] = true;
             }
         }
         for ($i = 1;; $i++) {
             if (!$used_indexes[$i]) {
                 $creInfo->index = $i;
                 break;
             }
         }
     } elseif ($isImport) {
         $creInfo->index = 0;
     }
     $client_id = $creInfo->clientId ? $creInfo->clientId : $creInfo->dbFarmRole->GetFarmObject()->ClientID;
     $db->Execute("INSERT INTO servers SET\n            `server_id`\t\t= ?,\n            `farm_id`\t\t= ?,\n            `role_id`\t\t= ?,\n            `env_id`\t\t= ?,\n            `farm_roleid`\t= ?,\n            `client_id`\t\t= ?,\n            `platform`\t\t= ?,\n            `status`\t\t= ?,\n            `remote_ip`\t\t= ?,\n            `local_ip`\t\t= ?,\n            `dtadded`\t\t= NOW(),\n            `index`\t\t\t= ?\n        ", array($server_id, $creInfo->farmId ? $creInfo->farmId : $creInfo->dbFarmRole->FarmID, $creInfo->roleId, $creInfo->envId, $creInfo->dbFarmRole ? $creInfo->dbFarmRole->ID : 0, $client_id, $creInfo->platform, $status, $creInfo->remoteIp, $creInfo->localIp, $creInfo->index));
     $DBServer = DBServer::LoadByID($server_id);
     $DBServer->SetProperties($creInfo->GetProperties());
     return $DBServer;
 }