github.com/vmware/go-vcloud-director/v2@v2.24.0/govcd/nsxt_edgegateway_dns_test.go (about) 1 //go:build ALL || openapi || functional || nsxt 2 3 /* 4 * Copyright 2023 VMware, Inc. All rights reserved. Licensed under the Apache v2 License. 5 */ 6 7 package govcd 8 9 import ( 10 "github.com/vmware/go-vcloud-director/v2/types/v56" 11 . "gopkg.in/check.v1" 12 ) 13 14 func (vcd *TestVCD) Test_NsxtEdgeGatewayDns(check *C) { 15 skipOpenApiEndpointTest(vcd, check, types.OpenApiPathVersion1_0_0+types.OpenApiEndpointEdgeGatewayDns) 16 skipNoNsxtConfiguration(vcd, check) 17 18 org, err := vcd.client.GetOrgByName(vcd.config.VCD.Org) 19 check.Assert(err, IsNil) 20 nsxtVdc, err := org.GetVDCByName(vcd.config.VCD.Nsxt.Vdc, false) 21 check.Assert(err, IsNil) 22 edge, err := nsxtVdc.GetNsxtEdgeGatewayByName(vcd.config.VCD.Nsxt.EdgeGateway) 23 check.Assert(err, IsNil) 24 AddToCleanupList(vcd.config.VCD.Nsxt.EdgeGateway, "nsxtEdgeGatewayDns", vcd.config.VCD.Org, check.TestName()) 25 26 disabledDns, err := edge.GetDnsConfig() 27 check.Assert(err, IsNil) 28 check.Assert(disabledDns.NsxtEdgeGatewayDns.Enabled, Equals, false) 29 30 enabledDnsConfig := &types.NsxtEdgeGatewayDns{ 31 Enabled: true, 32 DefaultForwarderZone: &types.NsxtDnsForwarderZoneConfig{ 33 DisplayName: "test", 34 UpstreamServers: []string{ 35 "1.2.3.4", 36 "2.3.4.5", 37 }, 38 }, 39 ConditionalForwarderZones: []*types.NsxtDnsForwarderZoneConfig{ 40 { 41 DisplayName: "test-conditional", 42 UpstreamServers: []string{ 43 "5.5.5.5", 44 "2.3.4.1", 45 }, 46 DnsDomainNames: []string{ 47 "test.com", 48 "abc.com", 49 "example.org", 50 }, 51 }, 52 }, 53 } 54 55 enabledDns, err := disabledDns.Update(enabledDnsConfig) 56 check.Assert(err, IsNil) 57 dnsConfig := enabledDns.NsxtEdgeGatewayDns 58 check.Assert(dnsConfig.Enabled, Equals, true) 59 check.Assert(dnsConfig.DefaultForwarderZone.DisplayName, Equals, "test") 60 check.Assert(len(dnsConfig.DefaultForwarderZone.UpstreamServers), Equals, 2) 61 check.Assert(len(dnsConfig.ConditionalForwarderZones), Equals, 1) 62 check.Assert(dnsConfig.ConditionalForwarderZones[0].DisplayName, Equals, "test-conditional") 63 64 updatedDnsConfig := &types.NsxtEdgeGatewayDns{ 65 Enabled: true, 66 DefaultForwarderZone: &types.NsxtDnsForwarderZoneConfig{ 67 DisplayName: "test", 68 UpstreamServers: []string{ 69 "1.2.3.5", 70 "2.3.4.6", 71 "2.3.4.5", 72 }, 73 }, 74 ConditionalForwarderZones: []*types.NsxtDnsForwarderZoneConfig{ 75 { 76 DisplayName: "test-conditional", 77 UpstreamServers: []string{ 78 "5.5.5.5", 79 "2.3.4.1", 80 }, 81 DnsDomainNames: []string{ 82 "test.com", 83 "abc.com", 84 "example.org", 85 }, 86 }, 87 { 88 DisplayName: "test-conditional-2", 89 UpstreamServers: []string{ 90 "1.2.3.4", 91 "4.3.2.1", 92 }, 93 DnsDomainNames: []string{ 94 "example.com", 95 }, 96 }, 97 }, 98 } 99 updatedDns, err := enabledDns.Update(updatedDnsConfig) 100 updatedDnsConfig = updatedDns.NsxtEdgeGatewayDns 101 check.Assert(err, IsNil) 102 check.Assert(updatedDnsConfig.Enabled, Equals, true) 103 check.Assert(updatedDnsConfig.DefaultForwarderZone.DisplayName, Equals, "test") 104 check.Assert(len(updatedDnsConfig.DefaultForwarderZone.UpstreamServers), Equals, 3) 105 conditionalZones := updatedDnsConfig.ConditionalForwarderZones 106 check.Assert(len(conditionalZones), Equals, 2) 107 // Flip the asserts in both cases of conditional zones arrays returned 108 if conditionalZones[0].DisplayName == "test-conditional" { 109 check.Assert(len(conditionalZones[0].UpstreamServers), Equals, 2) 110 check.Assert(len(conditionalZones[0].DnsDomainNames), Equals, 3) 111 check.Assert(len(conditionalZones[1].UpstreamServers), Equals, 2) 112 check.Assert(len(conditionalZones[1].DnsDomainNames), Equals, 1) 113 } else { 114 check.Assert(len(conditionalZones[1].UpstreamServers), Equals, 2) 115 check.Assert(len(conditionalZones[1].DnsDomainNames), Equals, 3) 116 check.Assert(len(conditionalZones[0].UpstreamServers), Equals, 2) 117 check.Assert(len(conditionalZones[0].DnsDomainNames), Equals, 1) 118 } 119 120 err = enabledDns.Delete() 121 check.Assert(err, IsNil) 122 123 deletedDns, err := edge.GetDnsConfig() 124 check.Assert(err, IsNil) 125 check.Assert(deletedDns.NsxtEdgeGatewayDns.Enabled, Equals, false) 126 }