diff --git a/lib/tasks/zonefile.rake b/lib/tasks/zonefile.rake index d045d95dc..510bb60c1 100644 --- a/lib/tasks/zonefile.rake +++ b/lib/tasks/zonefile.rake @@ -51,7 +51,7 @@ namespace :zonefile do FROM domains d JOIN nameservers ns ON ns.domain_id = d.id WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter - AND NOT ('{serverHold}' && d.statuses) + AND NOT ('{serverHold,clientHold}' && d.statuses) ORDER BY d.name ), chr(10) @@ -73,7 +73,7 @@ namespace :zonefile do AND ns.hostname LIKE '%.' || d.name AND d.name <> i_origin AND ns.ipv4 IS NOT NULL AND ns.ipv4 <> '' - AND NOT ('{serverHold}' && d.statuses) + AND NOT ('{serverHold,clientHold}' && d.statuses) ), chr(10) ) INTO tmp_var; @@ -93,7 +93,7 @@ namespace :zonefile do AND ns.hostname LIKE '%.' || d.name AND d.name <> i_origin AND ns.ipv6 IS NOT NULL AND ns.ipv6 <> '' - AND NOT ('{serverHold}' && d.statuses) + AND NOT ('{serverHold,clientHold}' && d.statuses) ), chr(10) ) INTO tmp_var; @@ -109,7 +109,7 @@ namespace :zonefile do FROM domains d JOIN dnskeys dk ON dk.domain_id = d.id WHERE d.name LIKE include_filter AND d.name NOT LIKE exclude_filter AND dk.flags = 257 - AND NOT ('{serverHold}' && d.statuses) + AND NOT ('{serverHold,clientHold}' && d.statuses) ), chr(10) ) INTO tmp_var; diff --git a/spec/models/zonefile_setting_spec.rb b/spec/models/zonefile_setting_spec.rb index 564403cdb..9386c3b1d 100644 --- a/spec/models/zonefile_setting_spec.rb +++ b/spec/models/zonefile_setting_spec.rb @@ -39,9 +39,9 @@ describe ZonefileSetting do @zonefile.scan(/^#{d.name}/).count.should == 0 end - it 'should not place serverHold domains into zonefile' do + it 'should not place serverHold nor clientHold domains into zonefile' do Fabricate(:zonefile_setting) - d = Fabricate(:domain_with_dnskeys, name: 'testzone.ee', statuses: ['serverHold', 'serverDeleteProhibited']) + d = Fabricate(:domain_with_dnskeys, name: 'testzone.ee', statuses: ['serverHold', 'serverDeleteProhibited', 'clientHold']) d.nameservers << Nameserver.new({ hostname: "ns.#{d.name}", ipv4: '123.123.123.123', @@ -58,7 +58,20 @@ describe ZonefileSetting do @zonefile.scan('123.123.123.123').count.should == 0 @zonefile.scan('FE80:0000:0000:0000:0202:B3FF:FE1E:8329').count.should == 0 - d.statuses = ['ok'] + d.statuses = ['clientHold', 'serverDeleteProhibited'] + d.save + + @zonefile = ActiveRecord::Base.connection.execute( + "select generate_zonefile('ee')" + )[0]['generate_zonefile'] + + @zonefile.should_not be_blank + @zonefile.scan(/^#{d.name}/).count.should == 0 + @zonefile.scan(/ns.#{d.name}/).count.should == 0 + @zonefile.scan('123.123.123.123').count.should == 0 + @zonefile.scan('FE80:0000:0000:0000:0202:B3FF:FE1E:8329').count.should == 0 + + d.statuses = ['serverDeleteProhibited'] d.save @zonefile = ActiveRecord::Base.connection.execute(