Skip to content

Commit 3491de5

Browse files
committed
Support constraint resource
Signed-off-by: Anna Khmelnitsky <[email protected]>
1 parent b0ed350 commit 3491de5

10 files changed

+856
-10
lines changed

Diff for: api/infra/constraint.go

+137
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
//nolint:revive
2+
package infra
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+
client0 "github.com/vmware/vsphere-automation-sdk-go/services/nsxt/infra"
10+
model0 "github.com/vmware/vsphere-automation-sdk-go/services/nsxt/model"
11+
client1 "github.com/vmware/vsphere-automation-sdk-go/services/nsxt/orgs/projects/infra"
12+
13+
utl "github.com/vmware/terraform-provider-nsxt/api/utl"
14+
)
15+
16+
type ConstraintClientContext utl.ClientContext
17+
18+
func NewConstraintsClient(sessionContext utl.SessionContext, connector vapiProtocolClient_.Connector) *ConstraintClientContext {
19+
var client interface{}
20+
21+
switch sessionContext.ClientType {
22+
23+
case utl.Local:
24+
client = client0.NewConstraintsClient(connector)
25+
26+
case utl.Multitenancy:
27+
client = client1.NewConstraintsClient(connector)
28+
29+
default:
30+
return nil
31+
}
32+
return &ConstraintClientContext{Client: client, ClientType: sessionContext.ClientType, ProjectID: sessionContext.ProjectID, VPCID: sessionContext.VPCID}
33+
}
34+
35+
func (c ConstraintClientContext) Get(constraintIdParam string) (model0.Constraint, error) {
36+
var obj model0.Constraint
37+
var err error
38+
39+
switch c.ClientType {
40+
41+
case utl.Local:
42+
client := c.Client.(client0.ConstraintsClient)
43+
obj, err = client.Get(constraintIdParam)
44+
if err != nil {
45+
return obj, err
46+
}
47+
48+
case utl.Multitenancy:
49+
client := c.Client.(client1.ConstraintsClient)
50+
obj, err = client.Get(utl.DefaultOrgID, c.ProjectID, constraintIdParam)
51+
if err != nil {
52+
return obj, err
53+
}
54+
55+
default:
56+
return obj, errors.New("invalid infrastructure for model")
57+
}
58+
return obj, err
59+
}
60+
61+
func (c ConstraintClientContext) Patch(constraintIdParam string, constraintParam model0.Constraint) error {
62+
var err error
63+
64+
switch c.ClientType {
65+
66+
case utl.Local:
67+
client := c.Client.(client0.ConstraintsClient)
68+
err = client.Patch(constraintIdParam, constraintParam)
69+
70+
case utl.Multitenancy:
71+
client := c.Client.(client1.ConstraintsClient)
72+
err = client.Patch(utl.DefaultOrgID, c.ProjectID, constraintIdParam, constraintParam)
73+
74+
default:
75+
err = errors.New("invalid infrastructure for model")
76+
}
77+
return err
78+
}
79+
80+
func (c ConstraintClientContext) Update(constraintIdParam string, constraintParam model0.Constraint) (model0.Constraint, error) {
81+
var err error
82+
var obj model0.Constraint
83+
84+
switch c.ClientType {
85+
86+
case utl.Local:
87+
client := c.Client.(client0.ConstraintsClient)
88+
obj, err = client.Update(constraintIdParam, constraintParam)
89+
90+
case utl.Multitenancy:
91+
client := c.Client.(client1.ConstraintsClient)
92+
obj, err = client.Update(utl.DefaultOrgID, c.ProjectID, constraintIdParam, constraintParam)
93+
94+
default:
95+
err = errors.New("invalid infrastructure for model")
96+
}
97+
return obj, err
98+
}
99+
100+
func (c ConstraintClientContext) Delete(constraintIdParam string) error {
101+
var err error
102+
103+
switch c.ClientType {
104+
105+
case utl.Local:
106+
client := c.Client.(client0.ConstraintsClient)
107+
err = client.Delete(constraintIdParam)
108+
109+
case utl.Multitenancy:
110+
client := c.Client.(client1.ConstraintsClient)
111+
err = client.Delete(utl.DefaultOrgID, c.ProjectID, constraintIdParam)
112+
113+
default:
114+
err = errors.New("invalid infrastructure for model")
115+
}
116+
return err
117+
}
118+
119+
func (c ConstraintClientContext) List(cursorParam *string, includeMarkForDeleteObjectsParam *bool, includedFieldsParam *string, pageSizeParam *int64, sortAscendingParam *bool, sortByParam *string) (model0.ConstraintListResult, error) {
120+
var err error
121+
var obj model0.ConstraintListResult
122+
123+
switch c.ClientType {
124+
125+
case utl.Local:
126+
client := c.Client.(client0.ConstraintsClient)
127+
obj, err = client.List(cursorParam, includeMarkForDeleteObjectsParam, includedFieldsParam, pageSizeParam, sortAscendingParam, sortByParam)
128+
129+
case utl.Multitenancy:
130+
client := c.Client.(client1.ConstraintsClient)
131+
obj, err = client.List(utl.DefaultOrgID, c.ProjectID, cursorParam, includeMarkForDeleteObjectsParam, includedFieldsParam, pageSizeParam, sortAscendingParam, sortByParam)
132+
133+
default:
134+
err = errors.New("invalid infrastructure for model")
135+
}
136+
return obj, err
137+
}

Diff for: nsxt/data_source_nsxt_vpc_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func testAccDataSourceNsxtVPCCreate(name string) error {
5656
}
5757

5858
ipBlockID := newUUID()
59-
err = testAccDataSourceNsxtPolicyIPBlockCreate(testAccGetProjectContext(), name, ipBlockID, "192.168.240.0/24", true)
59+
err = testAccDataSourceNsxtPolicyIPBlockCreate(testAccGetMultitenancyContext(), name, ipBlockID, "192.168.240.0/24", true)
6060
if err != nil {
6161
return err
6262
}
@@ -108,7 +108,7 @@ func testAccDataSourceNsxtVPCDeleteByName(name string) error {
108108
if err != nil {
109109
return handleDeleteError("VPC", *objInList.Id, err)
110110
}
111-
return testAccDataSourceNsxtPolicyIPBlockDeleteByName(testAccGetProjectContext(), name)
111+
return testAccDataSourceNsxtPolicyIPBlockDeleteByName(testAccGetMultitenancyContext(), name)
112112
}
113113
}
114114
return fmt.Errorf("error while deleting VPC '%s': resource not found", name)

Diff for: nsxt/metadata/metadata.go

+5
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ var StandardTypeIdentifier = TypeIdentifier{
2626
APIFieldName: "type",
2727
}
2828

29+
var ResourceTypeTypeIdentifier = TypeIdentifier{
30+
SdkName: "ResourceType",
31+
APIFieldName: "resource_type",
32+
}
33+
2934
const (
3035
PolymorphicTypeFlatten = "flatten"
3136
PolymorphicTypeNested = "nested"

Diff for: nsxt/provider.go

+1
Original file line numberDiff line numberDiff line change
@@ -542,6 +542,7 @@ func Provider() *schema.Provider {
542542
"nsxt_policy_edge_transport_node": resourceNsxtPolicyEdgeTransportNode(),
543543
"nsxt_policy_edge_high_availability_profile": resourceNsxtPolicyEdgeHighAvailabilityProfile(),
544544
"nsxt_policy_edge_cluster": resourceNsxtPolicyEdgeCluster(),
545+
"nsxt_policy_constraint": resourceNsxtPolicyConstraint(),
545546
},
546547

547548
ConfigureFunc: providerConfigure,

0 commit comments

Comments
 (0)