public function worker($request)
{
//Warming up static DI cache
\Scalr::getContainer()->warmup();
try {
$dbFarmRole = DBFarmRole::LoadByID($request->id);
$dbFarm = $dbFarmRole->GetFarmObject();
/* @var $env Scalr_Environment */
$env = Scalr_Model::init(Scalr_Model::ENVIRONMENT)->loadById($dbFarm->EnvID);
$tz = $env->getPlatformConfigValue(Scalr_Environment::SETTING_TIMEZONE);
if (!$tz) {
$tz = date_default_timezone_get();
}
$farmTz = $dbFarm->GetSetting(Entity\FarmSetting::TIMEZONE);
if ($farmTz) {
$tz = $farmTz;
}
//skip terminated farms
if ($dbFarm->Status != FARM_STATUS::RUNNING) {
return $request;
}
} catch (Exception $e) {
$this->getLogger()->warn("Could not load farm role with id:%d, %s", $request->id, $e->getMessage());
return $request;
}
$this->performDbMsrAction('BUNDLE', $dbFarmRole, $tz);
$backupsNotSupported = in_array($dbFarmRole->Platform, array(SERVER_PLATFORMS::CLOUDSTACK, SERVER_PLATFORMS::IDCF));
if (!$backupsNotSupported) {
$this->performDbMsrAction('BACKUP', $dbFarmRole, $tz);
}
return $request;
}