mirror of
https://github.com/internetee/registry.git
synced 2025-07-25 12:08:27 +02:00
Use a and a4 records from zonefile setting #2806
This commit is contained in:
parent
303e3150cd
commit
73b23c1efa
2 changed files with 20 additions and 65 deletions
|
@ -478,7 +478,7 @@ namespace :import do
|
|||
start = Time.zone.now.to_f
|
||||
puts '-----> Importing zones...'
|
||||
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data(1)
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data('ee', 1)
|
||||
|
||||
ZonefileSetting.create!({
|
||||
origin: 'ee',
|
||||
|
@ -495,7 +495,7 @@ namespace :import do
|
|||
})
|
||||
|
||||
# edu.ee
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data(6)
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data('edu.ee', 6)
|
||||
|
||||
ZonefileSetting.create!({
|
||||
origin: 'edu.ee',
|
||||
|
@ -512,7 +512,7 @@ namespace :import do
|
|||
})
|
||||
|
||||
# aip.ee
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data(9)
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data('aip.ee', 9)
|
||||
|
||||
ZonefileSetting.create!({
|
||||
origin: 'aip.ee',
|
||||
|
@ -529,7 +529,7 @@ namespace :import do
|
|||
})
|
||||
|
||||
# org.ee
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data(10)
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data('org.ee', 10)
|
||||
|
||||
ZonefileSetting.create!({
|
||||
origin: 'org.ee',
|
||||
|
@ -546,7 +546,7 @@ namespace :import do
|
|||
})
|
||||
|
||||
# pri.ee
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data(2)
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data('pri.ee', 2)
|
||||
|
||||
ZonefileSetting.create!({
|
||||
origin: 'pri.ee',
|
||||
|
@ -563,7 +563,7 @@ namespace :import do
|
|||
})
|
||||
|
||||
# med.ee
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data(3)
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data('med.ee', 3)
|
||||
|
||||
ZonefileSetting.create!({
|
||||
origin: 'med.ee',
|
||||
|
@ -580,7 +580,7 @@ namespace :import do
|
|||
})
|
||||
|
||||
# fie.ee
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data(4)
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data('fie.ee', 4)
|
||||
|
||||
ZonefileSetting.create!({
|
||||
origin: 'fie.ee',
|
||||
|
@ -597,7 +597,7 @@ namespace :import do
|
|||
})
|
||||
|
||||
# com.ee
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data(5)
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data('com.ee', 5)
|
||||
|
||||
ZonefileSetting.create!({
|
||||
origin: 'com.ee',
|
||||
|
@ -614,7 +614,7 @@ namespace :import do
|
|||
})
|
||||
|
||||
# gov.ee
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data(7)
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data('gov.ee', 7)
|
||||
|
||||
ZonefileSetting.create!({
|
||||
origin: 'gov.ee',
|
||||
|
@ -631,7 +631,7 @@ namespace :import do
|
|||
})
|
||||
|
||||
# riik.ee
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data(8)
|
||||
ns_records, a_records, a4_records = parse_zone_ns_data('riik.ee', 8)
|
||||
|
||||
ZonefileSetting.create!({
|
||||
origin: 'riik.ee',
|
||||
|
@ -651,7 +651,7 @@ namespace :import do
|
|||
end
|
||||
end
|
||||
|
||||
def parse_zone_ns_data(zone)
|
||||
def parse_zone_ns_data(domain, zone)
|
||||
ns_records = ''
|
||||
a_records = ''
|
||||
a4_records = ''
|
||||
|
@ -659,7 +659,7 @@ def parse_zone_ns_data(zone)
|
|||
ipv4 = x.addrs.select { |addr| addr.ipv4? }.first
|
||||
ipv6 = x.addrs.select { |addr| addr.ipv6? }.first
|
||||
|
||||
ns_records += "ee. IN NS #{x.fqdn}.\n"
|
||||
ns_records += "#{domain}. IN NS #{x.fqdn}.\n"
|
||||
a_records += "#{x.fqdn}. IN A #{ipv4}\n" if ipv4.present?
|
||||
a4_records += "#{x.fqdn}. IN AAAA #{ipv6}\n" if ipv6.present?
|
||||
end
|
||||
|
|
|
@ -58,19 +58,9 @@ namespace :zonefile do
|
|||
|
||||
ret := concat(ret, tmp_var, chr(10), chr(10));
|
||||
|
||||
-- a glue records for origin nameservers
|
||||
SELECT array_to_string(
|
||||
array(
|
||||
SELECT concat(ns.hostname, '. IN A ', ns.ipv4)
|
||||
FROM nameservers ns
|
||||
JOIN domains d ON d.id = ns.domain_id
|
||||
WHERE d.name = i_origin
|
||||
AND ns.hostname LIKE '%.' || d.name
|
||||
AND ns.ipv4 IS NOT NULL AND ns.ipv4 <> ''
|
||||
), chr(10)
|
||||
) INTO tmp_var;
|
||||
|
||||
ret := concat(ret, '; Zone A Records', chr(10), tmp_var);
|
||||
-- origin a glue records
|
||||
SELECT a_records FROM zonefile_settings zf WHERE i_origin = zf.origin INTO tmp_var;
|
||||
ret := concat(ret, '; Zone A Records', chr(10), tmp_var, chr(10));
|
||||
|
||||
-- a glue records for other nameservers
|
||||
SELECT array_to_string(
|
||||
|
@ -82,43 +72,14 @@ 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 EXISTS ( -- filter out glue records that already appeared in origin glue recrods
|
||||
SELECT 1 FROM nameservers nsi
|
||||
JOIN domains di ON nsi.domain_id = di.id
|
||||
WHERE di.name = i_origin
|
||||
AND nsi.hostname = ns.hostname
|
||||
)
|
||||
), chr(10)
|
||||
) INTO tmp_var;
|
||||
|
||||
-- TODO This is a possible subtitition to the previous query, stress testing is needed to see which is faster
|
||||
ret := concat(ret, tmp_var, chr(10), chr(10));
|
||||
|
||||
-- SELECT ns.*
|
||||
-- FROM nameservers ns
|
||||
-- JOIN domains d ON d.id = ns.domain_id
|
||||
-- WHERE d.name LIKE '%ee' AND d.name NOT LIKE '%pri.ee'
|
||||
-- AND ns.hostname LIKE '%.' || d.name
|
||||
-- AND d.name <> 'ee'
|
||||
-- AND ns.ipv4 IS NOT NULL AND ns.ipv4 <> ''
|
||||
-- AND ns.hostname NOT IN (
|
||||
-- SELECT ns.hostname FROM domains d JOIN nameservers ns ON d.id = ns.domain_id WHERE d.name = 'ee'
|
||||
-- )
|
||||
|
||||
ret := concat(ret, chr(10), tmp_var, chr(10), chr(10));
|
||||
|
||||
-- aaaa glue records for origin nameservers
|
||||
SELECT array_to_string(
|
||||
array(
|
||||
SELECT concat(ns.hostname, '. IN AAAA ', ns.ipv6)
|
||||
FROM nameservers ns
|
||||
JOIN domains d ON d.id = ns.domain_id
|
||||
WHERE d.name = i_origin
|
||||
AND ns.hostname LIKE '%.' || d.name
|
||||
AND ns.ipv6 IS NOT NULL AND ns.ipv6 <> ''
|
||||
), chr(10)
|
||||
) INTO tmp_var;
|
||||
|
||||
ret := concat(ret, '; Zone AAAA Records', chr(10), tmp_var);
|
||||
-- origin aaaa glue records
|
||||
SELECT a4_records FROM zonefile_settings zf WHERE i_origin = zf.origin INTO tmp_var;
|
||||
ret := concat(ret, '; Zone AAAA Records', chr(10), tmp_var, chr(10));
|
||||
|
||||
-- aaaa glue records for other nameservers
|
||||
SELECT array_to_string(
|
||||
|
@ -130,16 +91,10 @@ 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 EXISTS ( -- filter out glue records that already appeared in origin glue recrods
|
||||
SELECT 1 FROM nameservers nsi
|
||||
JOIN domains di ON nsi.domain_id = di.id
|
||||
WHERE di.name = i_origin
|
||||
AND nsi.hostname = ns.hostname
|
||||
)
|
||||
), chr(10)
|
||||
) INTO tmp_var;
|
||||
|
||||
ret := concat(ret, chr(10), tmp_var, chr(10), chr(10));
|
||||
ret := concat(ret, tmp_var, chr(10), chr(10));
|
||||
|
||||
-- ds records
|
||||
SELECT array_to_string(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue