From 9c2364c29d7502ee2c4bb3ab0ab51584f21469da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C4=81vis?= Date: Sun, 7 Jul 2024 21:54:22 +0300 Subject: [PATCH 1/2] Fix zones.create() Fix zones.create() `kind` is required --- lib/fog/dns/powerdns/models/zone.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/fog/dns/powerdns/models/zone.rb b/lib/fog/dns/powerdns/models/zone.rb index 3f7b99c..d48634f 100644 --- a/lib/fog/dns/powerdns/models/zone.rb +++ b/lib/fog/dns/powerdns/models/zone.rb @@ -9,8 +9,11 @@ class Zone < Fog::Model identity :zone_id attribute :zone, aliases: 'name' + attribute :kind attribute :server_id + DEFAULT_SERVER = 'localhost' + def destroy service.delete_zone(identity) true @@ -27,8 +30,8 @@ def records end def save - requires :zone - data = service.create_zone(zone).body['zone'] + requires :zone, :kind + data = service.create_zone(DEFAULT_SERVER, zone, kind) merge_attributes(data) true end From aa8595ceab12ed07b32fbc0478a1be613cbebfa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C4=81vis?= Date: Sun, 7 Jul 2024 22:01:52 +0300 Subject: [PATCH 2/2] Require `kind` in create_zone.rb Require `kind` in create_zone.rb --- lib/fog/dns/powerdns/requests/create_zone.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/fog/dns/powerdns/requests/create_zone.rb b/lib/fog/dns/powerdns/requests/create_zone.rb index 9b5f120..64ecc1f 100644 --- a/lib/fog/dns/powerdns/requests/create_zone.rb +++ b/lib/fog/dns/powerdns/requests/create_zone.rb @@ -5,12 +5,12 @@ module DNS class PowerDNS class Real # Create a single zone in PowerDNS - # Server, name and nameservers LIST are required + # Server, name and kind are required # # ==== Parameters # * server<~String> - Server ID # * name<~String> - Name of domain - # * nameservers<~Array> - List of nameservers + # * kind<~String> - Zone kind, one of 'Native', 'Master', 'Slave', 'Producer', 'Consumer' # * options<~Hash> - Other options # # ==== Returns @@ -38,10 +38,11 @@ class Real # * 'comments': <~Array>, # * status<~Integer> 201 when successful - def create_zone(server, name, nameservers, options = {}) + def create_zone(server, name, kind, options = {}) body = { 'name' => name, - 'nameservers' => nameservers + 'kind' => kind, + 'nameservers' => [] } options.each do |option, value|