argument('host'), ". \t\n\r\0\x0B")); $domain = Domain::query()->where('host', $host)->first(); if (! $domain) { $this->error("No Domain row found for {$host}. Link the domain in Hosting first."); return self::FAILURE; } $this->info(sprintf( 'Ensuring zone for %s (domain_id=%d, dns_mode=%s, onboarding=%s)', $domain->host, $domain->id, $domain->dns_mode ?: '(null)', $domain->onboarding_mode ?: '(null)' )); if (! $this->option('sync')) { ProvisionDomainZoneJob::dispatch($domain->id); $this->info('Queued ProvisionDomainZoneJob. Use --sync to run immediately.'); return self::SUCCESS; } try { (new ProvisionDomainZoneJob($domain->id))->handle($pdns); $this->info('Zone provisioned on PowerDNS master.'); ProvisionDomainSlaveZoneJob::dispatch($domain->id); $this->info('Queued slave zone sync.'); } catch (\Throwable $e) { $this->error('Failed: '.$e->getMessage()); return self::FAILURE; } return self::SUCCESS; } }