Scalr\Stats\CostAnalytics\Usage::initServerProperties PHP Метод

initServerProperties() приватный Метод

Initializes server's properties which are necessary for cloud cost analytics
private initServerProperties ( )
    private function initServerProperties()
    {
        $res = $this->db->Execute("\n            SELECT DISTINCT s.server_id, s.env_id, s.farm_id\n            FROM servers s\n            LEFT JOIN server_properties p ON p.server_id = s.server_id AND p.name = ?\n            LEFT JOIN server_properties p2 ON p2.server_id = s.server_id AND p2.name = ?\n            WHERE p.server_id IS NULL OR p.`value` IS NULL\n            OR (s.farm_id IS NOT NULL AND (p2.server_id IS NULL OR p2.`value` IS NULL))\n        ", [SERVER_PROPERTIES::ENV_CC_ID, SERVER_PROPERTIES::FARM_PROJECT_ID]);
        while ($rec = $res->FetchRow()) {
            $ccid = $this->autoCostCentre();
            $this->db->Execute("\n                INSERT `server_properties` (`server_id`, `name`, `value`)\n                VALUE (?, ?, ?)\n                ON DUPLICATE KEY UPDATE `value` = IFNULL(`value`, ?)\n            ", [$rec['server_id'], SERVER_PROPERTIES::ENV_CC_ID, $ccid, $ccid]);
            //Farm may not exist for bundle task servers
            if ($rec['farm_id']) {
                $projectid = $this->autoProject();
                $this->db->Execute("\n                    INSERT `server_properties` (`server_id`, `name`, `value`)\n                    VALUE (?, ?, ?)\n                    ON DUPLICATE KEY UPDATE `value` = IFNULL(`value`, ?)\n                ", [$rec['server_id'], SERVER_PROPERTIES::FARM_PROJECT_ID, $projectid, $projectid]);
            }
        }
        //Initializes role.id and farm_role.id server's properties
        $res = $this->db->Execute("\n            SELECT DISTINCT s.server_id, fr.role_id, s.farm_roleid\n            FROM servers s\n            LEFT JOIN server_properties p ON p.server_id = s.server_id AND p.name = ?\n            JOIN farm_roles fr ON s.farm_roleid = fr.id\n            WHERE fr.role_id > 0 AND s.farm_roleid > 0\n            AND (p.server_id IS NULL OR p.`value` IS NULL)\n        ", [\SERVER_PROPERTIES::ROLE_ID]);
        while ($rec = $res->FetchRow()) {
            $this->db->Execute("\n                INSERT `server_properties` (`server_id`, `name`, `value`)\n                VALUE (?, ?, ?)\n                ON DUPLICATE KEY UPDATE `value` = IFNULL(`value`, ?)\n            ", [$rec['server_id'], SERVER_PROPERTIES::ROLE_ID, $rec['role_id'], $rec['role_id']]);
            $this->db->Execute("\n                INSERT `server_properties` (`server_id`, `name`, `value`)\n                VALUE (?, ?, ?)\n                ON DUPLICATE KEY UPDATE `value` = IFNULL(`value`, ?)\n            ", [$rec['server_id'], SERVER_PROPERTIES::FARM_ROLE_ID, $rec['farm_roleid'], $rec['farm_roleid']]);
        }
    }