github.com/vmware/go-vcloud-director/v2@v2.24.0/govcd/anytypeedgegateway_test.go (about) 1 //go:build network || nsxt || functional || openapi || ALL 2 3 package govcd 4 5 import ( 6 "github.com/vmware/go-vcloud-director/v2/types/v56" 7 . "gopkg.in/check.v1" 8 ) 9 10 func (vcd *TestVCD) Test_AnyTypeEdgeGateway(check *C) { 11 skipNoNsxtConfiguration(vcd, check) 12 skipOpenApiEndpointTest(vcd, check, types.OpenApiPathVersion1_0_0+types.OpenApiEndpointEdgeGateways) 13 14 adminOrg, err := vcd.client.GetAdminOrgByName(vcd.config.VCD.Org) 15 check.Assert(err, IsNil) 16 check.Assert(adminOrg, NotNil) 17 18 org, err := vcd.client.GetOrgByName(vcd.config.VCD.Org) 19 check.Assert(err, IsNil) 20 check.Assert(org, NotNil) 21 22 nsxtEdge, err := adminOrg.GetNsxtEdgeGatewayByName(vcd.config.VCD.Nsxt.EdgeGateway) 23 check.Assert(err, IsNil) 24 check.Assert(nsxtEdge, NotNil) 25 26 nsxvEdge, err := vcd.vdc.GetEdgeGatewayByName(vcd.config.VCD.EdgeGateway, false) 27 check.Assert(err, IsNil) 28 check.Assert(nsxvEdge, NotNil) 29 30 // Retrieve both types of Edge Gateways using adminOrg structure (NSX-T and NSX-V) using the 31 // common type AnyTypeEdgeGateway 32 nsxtAnyTypeEdgeGateway, err := adminOrg.GetAnyTypeEdgeGatewayById(nsxtEdge.EdgeGateway.ID) 33 check.Assert(err, IsNil) 34 check.Assert(nsxtAnyTypeEdgeGateway, NotNil) 35 check.Assert(nsxtAnyTypeEdgeGateway.EdgeGateway, DeepEquals, nsxtEdge.EdgeGateway) 36 37 nsxvAnyTypeEdgeGateway, err := adminOrg.GetAnyTypeEdgeGatewayById(nsxvEdge.EdgeGateway.ID) 38 check.Assert(err, IsNil) 39 check.Assert(nsxvAnyTypeEdgeGateway, NotNil) 40 41 // Structures for NSX-V Edge Gateway differ (because it uses XML API) therefore all fields 42 // cannot be compared 43 check.Assert(nsxvAnyTypeEdgeGateway.EdgeGateway.ID, DeepEquals, nsxvEdge.EdgeGateway.ID) 44 45 // Retrieve both types of Edge Gateways using Org structure (NSX-T and NSX-V) using the 46 // common type AnyTypeEdgeGateway 47 nsxtOrgAnyTypeEdgeGateway, err := org.GetAnyTypeEdgeGatewayById(nsxtEdge.EdgeGateway.ID) 48 check.Assert(err, IsNil) 49 check.Assert(nsxtOrgAnyTypeEdgeGateway, NotNil) 50 check.Assert(nsxtOrgAnyTypeEdgeGateway.EdgeGateway, DeepEquals, nsxtEdge.EdgeGateway) 51 52 // Convert NSX-T backed AnyTypeEdgeGateway to NsxtEdgeGateway 53 convertedGw, err := nsxtOrgAnyTypeEdgeGateway.GetNsxtEdgeGateway() 54 check.Assert(err, IsNil) 55 check.Assert(convertedGw, NotNil) 56 check.Assert(convertedGw.EdgeGateway, DeepEquals, nsxtOrgAnyTypeEdgeGateway.EdgeGateway) 57 58 // Structures for NSX-V Edge Gateway differ (because it uses XML API) therefore all fields 59 // cannot be compared 60 nsxvOrgAnyTypeEdgeGateway, err := org.GetAnyTypeEdgeGatewayById(nsxvEdge.EdgeGateway.ID) 61 check.Assert(err, IsNil) 62 check.Assert(nsxvOrgAnyTypeEdgeGateway, NotNil) 63 check.Assert(nsxvOrgAnyTypeEdgeGateway.EdgeGateway.ID, DeepEquals, nsxvEdge.EdgeGateway.ID) 64 65 }