0); public function mainDescription() { return 'Zone Status'; } public function main() { $rows = StatusHelper::getRows(); if(!count($rows)) return true; LogHelper::addSuccessLog('Status Zone', 'Cron Status Zone Started'); $this->setStatus(task\TaskStatusEnum::IN_PROGRESS); $whoIsStatusSetting = GlobalSetting::byKey(GlobalSettingEnum::WHOIS_MISSING_STATUS)->value; $soaStatusSetting = GlobalSetting::byKey(GlobalSettingEnum::SOA_IS_NOT_NS_STATUS)->value; foreach ($rows as $zone) { try { if (!$zone['relid']) { $zoneStatus = new status\Status(); $zoneStatus->relid = $zone['id']; } else { $zoneStatus = new status\Status($zone['sid']); } $this->helper = new StatusHelper($zone['id']); $zoneStatus->date = date('Y-m-d H:i:s'); $domainAvailable = $this->checkIfDomainIsAvailable($whoIsStatusSetting); $checkSoaWrongStatus = $this->checkSoaStatus($soaStatusSetting); if ($domainAvailable == true) { $zoneStatus->status = 1; $zoneStatus->save(); continue; } elseif ($checkSoaWrongStatus == true) { $zoneStatus->status = 2; $zoneStatus->save(); continue; } else { $zoneStatus->status = 3; $zoneStatus->save(); continue; } } catch (\Exception $ex) { LogHelper::addFailLogUsingZoneID('Zone status', $ex->getMessage(), $this->helper->getZone()->id); } } $this->setStatus(task\TaskStatusEnum::FINISHED); LogHelper::addSuccessLog('Status Zone', 'End Of Status Zone Run'); } private function checkIfDomainIsAvailable($whoIsStatusSetting) { if ($whoIsStatusSetting == 'on') { $domainAvailable = $this->helper->whoisCheckDomain(); if ($domainAvailable) { return true; } } return false; } private function checkSoaStatus($soaStatusSetting) { if ($soaStatusSetting == 'on') { $server = $this->helper->getZone()->getServer(); $domainNameservers = $this->helper->getNameservers(); $nameserverStatus = $this->helper->checkNameserversStatus($domainNameservers, $server); if (!$nameserverStatus) { return true; } } return false; } }