Skip to content

Commit e76cf32

Browse files
authored
Adapt API changes to TGW HA config (#2006)
Transit gateway high_availability_config attribute has been replaced with centralized_config chile object with a separate API. Signed-off-by: Kobi Samoray <kobi.samoray@broadcom.com>
1 parent e1a41a0 commit e76cf32

File tree

7 files changed

+467
-66
lines changed

7 files changed

+467
-66
lines changed

api/org_root.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ func NewOrgRootClient(sessionContext utl.SessionContext, connector vapiProtocolC
1919

2020
switch sessionContext.ClientType {
2121

22-
case utl.Local, utl.VPC:
22+
case utl.Local, utl.Multitenancy, utl.VPC:
2323
client = client0.NewOrgRootClient(connector)
2424

2525
default:
@@ -34,7 +34,7 @@ func (c OrgRootClientContext) Get(basePathParam *string, filterParam *string, ty
3434

3535
switch c.ClientType {
3636

37-
case utl.Local, utl.VPC:
37+
case utl.Local, utl.Multitenancy, utl.VPC:
3838
client := c.Client.(client0.OrgRootClient)
3939
obj, err = client.Get(basePathParam, filterParam, typeFilterParam)
4040
if err != nil {
@@ -52,7 +52,7 @@ func (c OrgRootClientContext) Patch(orgRootParam model0.OrgRoot, enforceRevision
5252

5353
switch c.ClientType {
5454

55-
case utl.Local, utl.VPC:
55+
case utl.Local, utl.Multitenancy, utl.VPC:
5656
client := c.Client.(client0.OrgRootClient)
5757
err = client.Patch(orgRootParam, enforceRevisionCheckParam)
5858

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
//nolint:revive
2+
package transitgateways
3+
4+
// The following file has been autogenerated. Please avoid any changes!
5+
import (
6+
"errors"
7+
8+
vapiProtocolClient_ "github.com/vmware/vsphere-automation-sdk-go/runtime/protocol/client"
9+
model0 "github.com/vmware/vsphere-automation-sdk-go/services/nsxt/model"
10+
client0 "github.com/vmware/vsphere-automation-sdk-go/services/nsxt/orgs/projects/transit_gateways"
11+
12+
utl "github.com/vmware/terraform-provider-nsxt/api/utl"
13+
)
14+
15+
type CentralizedConfigsClientContext utl.ClientContext
16+
17+
func NewCentralizedConfigsClient(sessionContext utl.SessionContext, connector vapiProtocolClient_.Connector) *CentralizedConfigsClientContext {
18+
var client interface{}
19+
20+
switch sessionContext.ClientType {
21+
22+
case utl.Local, utl.Multitenancy, utl.VPC:
23+
client = client0.NewCentralizedConfigsClient(connector)
24+
25+
default:
26+
return nil
27+
}
28+
return &CentralizedConfigsClientContext{Client: client, ClientType: sessionContext.ClientType, ProjectID: sessionContext.ProjectID, VPCID: sessionContext.VPCID}
29+
}
30+
31+
func (c CentralizedConfigsClientContext) Get(orgIdParam string, projectIdParam string, transitGatewayIdParam string, centralizedConfigIdParam string) (model0.CentralizedConfig, error) {
32+
var obj model0.CentralizedConfig
33+
var err error
34+
35+
switch c.ClientType {
36+
37+
case utl.Multitenancy, utl.Local, utl.VPC:
38+
client := c.Client.(client0.CentralizedConfigsClient)
39+
obj, err = client.Get(orgIdParam, projectIdParam, transitGatewayIdParam, centralizedConfigIdParam)
40+
if err != nil {
41+
return obj, err
42+
}
43+
44+
default:
45+
return obj, errors.New("invalid infrastructure for model")
46+
}
47+
return obj, err
48+
}
49+
50+
func (c CentralizedConfigsClientContext) Patch(orgIdParam string, projectIdParam string, transitGatewayIdParam string, centralizedConfigIdParam string, centralizedConfigParam model0.CentralizedConfig) error {
51+
var err error
52+
53+
switch c.ClientType {
54+
55+
case utl.Multitenancy, utl.Local, utl.VPC:
56+
client := c.Client.(client0.CentralizedConfigsClient)
57+
err = client.Patch(orgIdParam, projectIdParam, transitGatewayIdParam, centralizedConfigIdParam, centralizedConfigParam)
58+
59+
default:
60+
err = errors.New("invalid infrastructure for model")
61+
}
62+
return err
63+
}
64+
65+
func (c CentralizedConfigsClientContext) Update(orgIdParam string, projectIdParam string, transitGatewayIdParam string, centralizedConfigIdParam string, centralizedConfigParam model0.CentralizedConfig) (model0.CentralizedConfig, error) {
66+
var obj model0.CentralizedConfig
67+
var err error
68+
69+
switch c.ClientType {
70+
71+
case utl.Multitenancy, utl.Local, utl.VPC:
72+
client := c.Client.(client0.CentralizedConfigsClient)
73+
obj, err = client.Update(orgIdParam, projectIdParam, transitGatewayIdParam, centralizedConfigIdParam, centralizedConfigParam)
74+
if err != nil {
75+
return obj, err
76+
}
77+
78+
default:
79+
return obj, errors.New("invalid infrastructure for model")
80+
}
81+
return obj, err
82+
}
83+
84+
func (c CentralizedConfigsClientContext) Delete(orgIdParam string, projectIdParam string, transitGatewayIdParam string, centralizedConfigIdParam string) error {
85+
var err error
86+
87+
switch c.ClientType {
88+
89+
case utl.Multitenancy, utl.Local, utl.VPC:
90+
client := c.Client.(client0.CentralizedConfigsClient)
91+
err = client.Delete(orgIdParam, projectIdParam, transitGatewayIdParam, centralizedConfigIdParam)
92+
93+
default:
94+
err = errors.New("invalid infrastructure for model")
95+
}
96+
return err
97+
}

docs/resources/policy_transit_gateway.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ The following arguments are supported:
3636
* `tag` - (Optional) A list of scope + tag pairs to associate with this resource.
3737
* `nsx_id` - (Optional) The NSX ID of this resource. If set, this ID will be used to create the resource.
3838
* `transit_subnets` - (Optional) Array of IPV4 CIDRs for internal VPC attachment networks.
39-
* `high_availability_config` - (Optional) Transit Gateway high availability config centralized transit gateway. Available since NSX 9.1.0.
40-
* `ha_mode` - (Optional) High-availability Mode for Transit Gateway. Accepted values are: "ACTIVE_ACTIVE", "ACTIVE_STANDBY". Default is "ACTIVE_ACTIVE".
41-
* `edge_cluster_paths` - (Required) The Edge cluster should be authorized to be used in the transit gateway. A single edge cluster will be supported when the transit gateway is created from the local NSX manager.
39+
* `centralized_config` - (Optional) Singleton block for high-availability and edge cluster for centralized connectivity (gateway connections, VPN). Sent in the same H-API transaction as the transit gateway (as a child object, like security policy rules). Available since NSX 9.1.0.
40+
* `ha_mode` - (Optional) High-availability mode. Values: `ACTIVE_ACTIVE`, `ACTIVE_STANDBY`. Default is `ACTIVE_ACTIVE`.
41+
* `edge_cluster_paths` - (Optional) Policy paths of edge clusters. At most one item. Must be authorized for the project.
4242
* `span` - (Optional) Span configuration. Note that one of `cluster_based_span` and `zone_based_span` is required. Available since NSX 9.1.0.
4343
* `cluster_based_span` - (Optional) Span based on vSphere Clusters.
4444
* `span_path` - (Required) Policy path of the network span object.

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
github.com/vmware/go-vmware-nsxt v0.0.0-20220328155605-f49a14c1ef5f
1313
github.com/vmware/vsphere-automation-sdk-go/lib v0.8.0
1414
github.com/vmware/vsphere-automation-sdk-go/runtime v0.8.0
15-
github.com/vmware/vsphere-automation-sdk-go/services/nsxt v0.12.1-0.20260106093951-b5ec18c0c5c3
15+
github.com/vmware/vsphere-automation-sdk-go/services/nsxt v0.12.1-0.20260310075027-d32fca6a7b22
1616
github.com/vmware/vsphere-automation-sdk-go/services/nsxt-gm v0.9.1-0.20241118070726-666c7cd6e466
1717
github.com/vmware/vsphere-automation-sdk-go/services/nsxt-mp v0.6.1-0.20241118070726-666c7cd6e466
1818
golang.org/x/exp v0.0.0-20230801115018-d63ba01acd4b

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,8 @@ github.com/vmware/vsphere-automation-sdk-go/lib v0.8.0 h1:u1SXOTM6D4Ygb3jeidj2Rd
168168
github.com/vmware/vsphere-automation-sdk-go/lib v0.8.0/go.mod h1:8d5JTwjpM/Z03n/IZb0fwmXkJNWvWwuLXBqoakqYio4=
169169
github.com/vmware/vsphere-automation-sdk-go/runtime v0.8.0 h1:KnDIX9LY0nru7iMQTg0sy9vChhyorPo5OdASM2MaAcI=
170170
github.com/vmware/vsphere-automation-sdk-go/runtime v0.8.0/go.mod h1:DzLetYAmw1+vj7bqElRWEpuy40WYE/woL3alsymYa/c=
171-
github.com/vmware/vsphere-automation-sdk-go/services/nsxt v0.12.1-0.20260106093951-b5ec18c0c5c3 h1:rnW7VC1fMcO9GAbywSDqDCWGAuwJH1y2/PetRYcIh28=
172-
github.com/vmware/vsphere-automation-sdk-go/services/nsxt v0.12.1-0.20260106093951-b5ec18c0c5c3/go.mod h1:C3JVOHRVLrGBQ8kTWAiGYlRz5UQC5qAcTdt3tvA+5P0=
171+
github.com/vmware/vsphere-automation-sdk-go/services/nsxt v0.12.1-0.20260310075027-d32fca6a7b22 h1:zOi5ktjdhC3fVG6hyjZQaMutA4pijWBRL/ME+wmZwTU=
172+
github.com/vmware/vsphere-automation-sdk-go/services/nsxt v0.12.1-0.20260310075027-d32fca6a7b22/go.mod h1:C3JVOHRVLrGBQ8kTWAiGYlRz5UQC5qAcTdt3tvA+5P0=
173173
github.com/vmware/vsphere-automation-sdk-go/services/nsxt-gm v0.9.1-0.20241118070726-666c7cd6e466 h1:SYBECpviZBcp/cUHKTDPQP7CSQb0lUfPPOClpGOFH44=
174174
github.com/vmware/vsphere-automation-sdk-go/services/nsxt-gm v0.9.1-0.20241118070726-666c7cd6e466/go.mod h1:gcEvyczWPFMZX2gkBiBVpOwvUGSNXSpxU19Sx9aiouY=
175175
github.com/vmware/vsphere-automation-sdk-go/services/nsxt-mp v0.6.1-0.20241118070726-666c7cd6e466 h1:yXUKHP/XDGp7Wrcbfl5BHV1VreCNPHRLUj2RQ5qDEmE=

0 commit comments

Comments
 (0)