github.com/vmware/go-vcloud-director/v2@v2.24.0/govcd/nsxt_alb_settings_test.go (about) 1 //go:build nsxt || alb || functional || ALL 2 3 package govcd 4 5 import ( 6 "fmt" 7 8 "github.com/vmware/go-vcloud-director/v2/types/v56" 9 10 . "gopkg.in/check.v1" 11 ) 12 13 func (vcd *TestVCD) Test_GetAlbSettings(check *C) { 14 skipNoNsxtAlbConfiguration(vcd, check) 15 skipOpenApiEndpointTest(vcd, check, types.OpenApiPathVersion1_0_0+types.OpenApiEndpointAlbEdgeGateway) 16 17 edge, err := vcd.nsxtVdc.GetNsxtEdgeGatewayByName(vcd.config.VCD.Nsxt.EdgeGateway) 18 check.Assert(err, IsNil) 19 20 albSettings, err := edge.GetAlbSettings() 21 check.Assert(err, IsNil) 22 check.Assert(albSettings, NotNil) 23 check.Assert(albSettings.Enabled, Equals, false) 24 } 25 26 func (vcd *TestVCD) Test_UpdateAlbSettings(check *C) { 27 if vcd.skipAdminTests { 28 check.Skip(fmt.Sprintf(TestRequiresSysAdminPrivileges, check.TestName())) 29 } 30 skipNoNsxtAlbConfiguration(vcd, check) 31 skipOpenApiEndpointTest(vcd, check, types.OpenApiPathVersion1_0_0+types.OpenApiEndpointAlbEdgeGateway) 32 33 controller, cloud, seGroup := spawnAlbControllerCloudServiceEngineGroup(vcd, check, "DEDICATED") 34 edge, err := vcd.nsxtVdc.GetNsxtEdgeGatewayByName(vcd.config.VCD.Nsxt.EdgeGateway) 35 check.Assert(err, IsNil) 36 37 // Enable ALB on Edge Gateway with default ServiceNetworkDefinition 38 albSettingsConfig := &types.NsxtAlbConfig{ 39 Enabled: true, 40 } 41 42 // Field is only available when using API version v37.0 onwards 43 if vcd.client.Client.APIVCDMaxVersionIs(">= 37.0") { 44 albSettingsConfig.SupportedFeatureSet = "STANDARD" 45 } 46 47 enabledSettings, err := edge.UpdateAlbSettings(albSettingsConfig) 48 check.Assert(err, IsNil) 49 check.Assert(enabledSettings.Enabled, Equals, true) 50 check.Assert(enabledSettings.ServiceNetworkDefinition, Equals, "192.168.255.1/25") 51 // Field is only available when using API version v37.0 onwards 52 if vcd.client.Client.APIVCDMaxVersionIs(">= 37.0") { 53 check.Assert(enabledSettings.SupportedFeatureSet, Equals, "STANDARD") 54 } 55 PrependToCleanupList("", "OpenApiEntityAlbSettingsDisable", edge.EdgeGateway.Name, check.TestName()) 56 57 // Disable ALB on Edge Gateway 58 albSettingsConfig.Enabled = false 59 disabledSettings, err := edge.UpdateAlbSettings(albSettingsConfig) 60 check.Assert(err, IsNil) 61 check.Assert(disabledSettings.Enabled, Equals, false) 62 63 // Enable ALB on Edge Gateway with custom ServiceNetworkDefinition 64 albSettingsConfig.Enabled = true 65 albSettingsConfig.ServiceNetworkDefinition = "93.93.11.1/25" 66 enabledSettingsCustomServiceDefinition, err := edge.UpdateAlbSettings(albSettingsConfig) 67 check.Assert(err, IsNil) 68 check.Assert(enabledSettingsCustomServiceDefinition.Enabled, Equals, true) 69 check.Assert(enabledSettingsCustomServiceDefinition.ServiceNetworkDefinition, Equals, "93.93.11.1/25") 70 71 // Disable ALB on Edge Gateway 72 err = edge.DisableAlb() 73 check.Assert(err, IsNil) 74 75 // Enable IPv6 service network definition (VCD 10.4.0+) 76 if vcd.client.Client.APIVCDMaxVersionIs(">= 37.0") { 77 printVerbose("Enabling IPv6 service network definition for VCD 10.4.0+\n") 78 albSettingsConfig.Ipv6ServiceNetworkDefinition = "2001:0db8:85a3:0000:0000:8a2e:0370:7334/120" 79 enabledSettingsIpv6ServiceDefinition, err := edge.UpdateAlbSettings(albSettingsConfig) 80 check.Assert(err, IsNil) 81 check.Assert(enabledSettingsIpv6ServiceDefinition.Ipv6ServiceNetworkDefinition, Equals, "2001:0db8:85a3:0000:0000:8a2e:0370:7334/120") 82 err = edge.DisableAlb() 83 check.Assert(err, IsNil) 84 } 85 86 // Enable Transparent mode (VCD 10.4.1+) 87 if vcd.client.Client.APIVCDMaxVersionIs(">= 37.1") { 88 printVerbose("Enabling Transparent mode for VCD 10.4.1+\n") 89 albSettingsConfig.TransparentModeEnabled = addrOf(true) 90 enabledSettingsTransparentMode, err := edge.UpdateAlbSettings(albSettingsConfig) 91 check.Assert(err, IsNil) 92 check.Assert(*enabledSettingsTransparentMode.TransparentModeEnabled, Equals, true) 93 err = edge.DisableAlb() 94 check.Assert(err, IsNil) 95 } 96 97 albSettings, err := edge.GetAlbSettings() 98 check.Assert(err, IsNil) 99 check.Assert(albSettings, NotNil) 100 check.Assert(albSettings.Enabled, Equals, false) 101 102 // Remove objects 103 err = seGroup.Delete() 104 check.Assert(err, IsNil) 105 err = cloud.Delete() 106 check.Assert(err, IsNil) 107 err = controller.Delete() 108 check.Assert(err, IsNil) 109 }