public function enqueue()
{
$queue = new ArrayObject([]);
if (!\Scalr::getContainer()->analytics->enabled) {
$this->log("INFO", "Terminating the process as Cost analytics is disabled in the config.");
exit;
}
if (SettingEntity::getValue(SettingEntity::ID_FORBID_AUTOMATIC_UPDATE_AWS_PRICES)) {
$this->log("INFO", "Terminating the process because of overriding AWS prices has been forbidden by financial admin.");
exit;
}
$urls = array('https://a0.awsstatic.com/pricing/1/ec2/linux-od.min.js', 'https://a0.awsstatic.com/pricing/1/ec2/mswin-od.min.js', 'https://a0.awsstatic.com/pricing/1/ec2/previous-generation/linux-od.min.js', 'https://a0.awsstatic.com/pricing/1/ec2/previous-generation/mswin-od.min.js');
foreach ($urls as $link) {
$json = trim(preg_replace('/^.+?callback\\((.+?)\\);\\s*$/sU', '\\1', $this->getPricingContent($link)));
$data = json_decode(preg_replace('/(\\w+):/', '"\\1":', $json));
if (!empty($data->config->regions)) {
foreach ($data->config->regions as $rd) {
$rd->url = basename($link);
$queue->append($rd);
}
}
}
return $queue;
}