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  }