Importing a zone now also imports secondary zone(s), wsp-10290
This commit is contained in:
parent
516494187f
commit
e9461911ec
1 changed files with 50 additions and 1 deletions
|
@ -392,13 +392,62 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
|
|
||||||
if (itemType == typeof(DnsZone))
|
if (itemType == typeof(DnsZone))
|
||||||
{
|
{
|
||||||
|
// Get ascii form in punycode
|
||||||
|
var zoneName = GetAsciiZoneName(itemName);
|
||||||
|
|
||||||
// add DNS zone
|
// add DNS zone
|
||||||
DnsZone zone = new DnsZone();
|
DnsZone zone = new DnsZone();
|
||||||
zone.Name = GetAsciiZoneName(itemName);
|
zone.Name = zoneName;
|
||||||
zone.ServiceId = serviceId;
|
zone.ServiceId = serviceId;
|
||||||
zone.PackageId = packageId;
|
zone.PackageId = packageId;
|
||||||
int zoneId = PackageController.AddPackageItem(zone);
|
int zoneId = PackageController.AddPackageItem(zone);
|
||||||
|
|
||||||
|
// Add secondary zone(s)
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// get secondary DNS services
|
||||||
|
var primSettings = ServerController.GetServiceSettings(serviceId);
|
||||||
|
var secondaryServiceIds = new List<int>();
|
||||||
|
var strSecondaryServices = primSettings["SecondaryDNSServices"];
|
||||||
|
if (!String.IsNullOrEmpty(strSecondaryServices))
|
||||||
|
{
|
||||||
|
var secondaryServices = strSecondaryServices.Split(',');
|
||||||
|
secondaryServiceIds.AddRange(secondaryServices.Select(strSecondaryId => Utils.ParseInt(strSecondaryId, 0)).Where(secondaryId => secondaryId != 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
// add secondary zones
|
||||||
|
var secondaryZoneFound = false;
|
||||||
|
|
||||||
|
foreach (var secondaryId in secondaryServiceIds)
|
||||||
|
{
|
||||||
|
var secDns = GetDNSServer(secondaryId);
|
||||||
|
if (secDns.ZoneExists(zoneName))
|
||||||
|
{
|
||||||
|
secondaryZoneFound = true;
|
||||||
|
|
||||||
|
var secondaryZone = new SecondaryDnsZone
|
||||||
|
{
|
||||||
|
Name = zoneName,
|
||||||
|
ServiceId = secondaryId,
|
||||||
|
PackageId = packageId
|
||||||
|
};
|
||||||
|
|
||||||
|
PackageController.AddPackageItem(secondaryZone);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!secondaryZoneFound)
|
||||||
|
{
|
||||||
|
TaskManager.WriteWarning("No secondary zone(s) found when importing zone " + itemName);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
TaskManager.WriteError(ex, "Error importing secondary zone(s)");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// add/update domains/pointers
|
// add/update domains/pointers
|
||||||
RestoreDomainByZone(itemName, packageId, zoneId);
|
RestoreDomainByZone(itemName, packageId, zoneId);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue