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']]);
}
}