Skip to content

Commit

Permalink
Changelog, docs
Browse files Browse the repository at this point in the history
Signed-off-by: Dainius Serplis <dserplis@vmware.com>
  • Loading branch information
Didainius committed Oct 15, 2024
1 parent 39783aa commit 96e0154
Show file tree
Hide file tree
Showing 8 changed files with 69 additions and 126 deletions.
1 change: 0 additions & 1 deletion .changes/v4.0.0/1343-features.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
* **New Resource:** `vcd_vcenter` to manage vCenter servers [GH-1343]
* **New Resource:** `vcd_nsxt_manager` to manage NSX-T Managers [GH-1343]

2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -70,4 +70,4 @@ require (
google.golang.org/protobuf v1.34.0 // indirect
)

replace github.com/vmware/go-vcloud-director/v2 => github.com/adambarreiro/go-vcloud-director/v2 v2.17.0-alpha.1.0.20241011135537-f92ca39ded9c
replace github.com/vmware/go-vcloud-director/v2 => github.com/Didainius/go-vcloud-director/v2 v2.17.0-alpha.2.0.20241015074538-5aef95c03364
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
github.com/Didainius/go-vcloud-director/v2 v2.17.0-alpha.2.0.20241015074538-5aef95c03364 h1:1C4sfbt3bVt8N/xbMaBTCfHoeUfW4YJFmFNy1hZFDWA=
github.com/Didainius/go-vcloud-director/v2 v2.17.0-alpha.2.0.20241015074538-5aef95c03364/go.mod h1:7Of1qJja+LLNKVegjZG7uuhhy6xgGg3q7Fkw2CEP+Tw=
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
github.com/ProtonMail/go-crypto v1.1.0-alpha.2 h1:bkyFVUP+ROOARdgCiJzNQo2V2kiB97LyUpzH9P6Hrlg=
github.com/ProtonMail/go-crypto v1.1.0-alpha.2/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
github.com/adambarreiro/go-vcloud-director/v2 v2.17.0-alpha.1.0.20241011135537-f92ca39ded9c h1:INGV4a3qsiN1JYsA/nnpy6v+gelmsmjAYTQUDp3G8IE=
github.com/adambarreiro/go-vcloud-director/v2 v2.17.0-alpha.1.0.20241011135537-f92ca39ded9c/go.mod h1:7Of1qJja+LLNKVegjZG7uuhhy6xgGg3q7Fkw2CEP+Tw=
github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE=
github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec=
Expand Down
70 changes: 39 additions & 31 deletions vcd/datasource_vcd_nsxt_manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,57 +2,65 @@ package vcd

import (
"context"
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"

"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/vmware/go-vcloud-director/v2/govcd"
"github.com/vmware/go-vcloud-director/v2/types/v56"
)

// TODO: TM: validate compatibility with old data source

func datasourceVcdNsxtManager() *schema.Resource {
return &schema.Resource{
ReadContext: datasourceNsxtManagerRead,
ReadContext: datasourceVcdNsxtManagerRead,

Schema: map[string]*schema.Schema{
"name": {
Type: schema.TypeString,
Required: true,
Description: "Name of NSX-T manager.",
Description: "Name of NSX-T Manager",
},
"href": {
Type: schema.TypeString,
Computed: true,
Description: "HREF of NSX-T manager.",
Description: "Name of NSX-T Manager",
},
"description": {
Type: schema.TypeString,
Computed: true,
Description: "Description of NSX-T Manager",
},
"username": {
Type: schema.TypeString,
Computed: true,
Description: "Username for authenticating to NSX-T Manager",
},
"url": {
Type: schema.TypeString,
Computed: true,
Description: "URL of NSX-T Manager",
},
"network_provider_scope": {
Type: schema.TypeString,
Computed: true,
Description: "Network Provider Scope for NSX-T Manager",
},
"status": {
Type: schema.TypeBool,
Computed: true,
Description: "Status of NSX-T Manager",
},
},
}
}

func datasourceNsxtManagerRead(_ context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
func datasourceVcdNsxtManagerRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
vcdClient := meta.(*VCDClient)
nsxtManagerName := d.Get("name").(string)

nsxtManagers, err := vcdClient.QueryNsxtManagerByName(nsxtManagerName)
if err != nil {
return diag.Errorf("could not find NSX-T manager by name '%s': %s", nsxtManagerName, err)
c := crudConfig[*govcd.NsxtManagerOpenApi, types.NsxtManagerOpenApi]{
entityLabel: labelNsxtManager,
getEntityFunc: vcdClient.GetNsxtManagerOpenApiByName,
stateStoreFunc: setTmNsxtManagerData,

Check failure on line 63 in vcd/datasource_vcd_nsxt_manager.go

View workflow job for this annotation

GitHub Actions / Check

undefined: setTmNsxtManagerData
}

if len(nsxtManagers) == 0 {
return diag.Errorf("%s found %d NSX-T managers with name '%s'",
govcd.ErrorEntityNotFound, len(nsxtManagers), nsxtManagerName)
}

if len(nsxtManagers) > 1 {
return diag.Errorf("found %d NSX-T managers with name '%s'", len(nsxtManagers), nsxtManagerName)
}

// We try to keep IDs clean
id := extractUuid(nsxtManagers[0].HREF)
urn, err := govcd.BuildUrnWithUuid("urn:vcloud:nsxtmanager:", id)
if err != nil {
return diag.Errorf("could not construct URN from id '%s': %s", id, err)
}
dSet(d, "name", nsxtManagers[0].Name)
dSet(d, "href", nsxtManagers[0].HREF)
d.SetId(urn)

return nil
return readDatasource(ctx, d, meta, c)
}
66 changes: 0 additions & 66 deletions vcd/datasource_vcd_tm_nsxt_manager.go

This file was deleted.

2 changes: 2 additions & 0 deletions vcd/datasource_vcd_vcenter.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ import (
"github.com/vmware/go-vcloud-director/v2/types/v56"
)

// TODO: TM: validate compatibility with old data source

func datasourceVcdVcenter() *schema.Resource {
return &schema.Resource{
ReadContext: datasourceVcdVcenterRead,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,16 +10,16 @@ import (
"github.com/vmware/go-vcloud-director/v2/types/v56"
)

const labelTmNsxtManager = "NSX-T Manager"
const labelNsxtManager = "NSX-T Manager"

func resourceVcdTmNsxtManager() *schema.Resource {
func resourceVcdNsxtManager() *schema.Resource {
return &schema.Resource{
CreateContext: resourceVcdTmNsxtManagerCreate,
ReadContext: resourceVcdTmNsxtManagerRead,
UpdateContext: resourceVcdTmNsxtManagerUpdate,
DeleteContext: resourceVcdTmNsxtManagerDelete,
CreateContext: resourceVcdNsxtManagerCreate,
ReadContext: resourceVcdNsxtManagerRead,
UpdateContext: resourceVcdNsxtManagerUpdate,
DeleteContext: resourceVcdNsxtManagerDelete,
Importer: &schema.ResourceImporter{
StateContext: resourceVcdTmNsxtManagerImport,
StateContext: resourceVcdNsxtManagerImport,
},

Schema: map[string]*schema.Schema{
Expand Down Expand Up @@ -68,54 +68,54 @@ func resourceVcdTmNsxtManager() *schema.Resource {
}
}

func resourceVcdTmNsxtManagerCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
func resourceVcdNsxtManagerCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
vcdClient := meta.(*VCDClient)
c := crudConfig[*govcd.NsxtManagerOpenApi, types.NsxtManagerOpenApi]{
entityLabel: labelTmNsxtManager,
getTypeFunc: getTmNsxtManagerType,
stateStoreFunc: setTmNsxtManagerData,
entityLabel: labelNsxtManager,
getTypeFunc: getNsxtManagerType,
stateStoreFunc: setNsxtManagerData,
createFunc: vcdClient.CreateNsxtManagerOpenApi,
resourceReadFunc: resourceVcdTmNsxtManagerRead,
resourceReadFunc: resourceVcdNsxtManagerRead,
preCreateHooks: []beforeCreateHook{trustHostCertificate("url", "auto_trust_certificate")},
}
return createResource(ctx, d, meta, c)
}

func resourceVcdTmNsxtManagerUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
func resourceVcdNsxtManagerUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
vcdClient := meta.(*VCDClient)
c := crudConfig[*govcd.NsxtManagerOpenApi, types.NsxtManagerOpenApi]{
entityLabel: labelTmNsxtManager,
getTypeFunc: getTmNsxtManagerType,
entityLabel: labelNsxtManager,
getTypeFunc: getNsxtManagerType,
getEntityFunc: vcdClient.GetNsxtManagerOpenApiById,
resourceReadFunc: resourceVcdTmNsxtManagerRead,
resourceReadFunc: resourceVcdNsxtManagerRead,
}

return updateResource(ctx, d, meta, c)
}

func resourceVcdTmNsxtManagerRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
func resourceVcdNsxtManagerRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
vcdClient := meta.(*VCDClient)
c := crudConfig[*govcd.NsxtManagerOpenApi, types.NsxtManagerOpenApi]{
entityLabel: labelTmNsxtManager,
entityLabel: labelNsxtManager,
getEntityFunc: vcdClient.GetNsxtManagerOpenApiById,
stateStoreFunc: setTmNsxtManagerData,
stateStoreFunc: setNsxtManagerData,
}
return readResource(ctx, d, meta, c)
}

func resourceVcdTmNsxtManagerDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
func resourceVcdNsxtManagerDelete(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
vcdClient := meta.(*VCDClient)

c := crudConfig[*govcd.NsxtManagerOpenApi, types.NsxtManagerOpenApi]{
entityLabel: labelTmNsxtManager,
entityLabel: labelNsxtManager,
getEntityFunc: vcdClient.GetNsxtManagerOpenApiById,
// preDeleteHooks: []resourceHook[*govcd.VCenter]{disableBeforeDelete},
}

return deleteResource(ctx, d, meta, c)
}

func resourceVcdTmNsxtManagerImport(ctx context.Context, d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
func resourceVcdNsxtManagerImport(ctx context.Context, d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) {
vcdClient := meta.(*VCDClient)

nsxtManager, err := vcdClient.GetNsxtManagerOpenApiByName(d.Id())
Expand All @@ -126,7 +126,7 @@ func resourceVcdTmNsxtManagerImport(ctx context.Context, d *schema.ResourceData,
return []*schema.ResourceData{d}, nil
}

func getTmNsxtManagerType(d *schema.ResourceData) (*types.NsxtManagerOpenApi, error) {
func getNsxtManagerType(d *schema.ResourceData) (*types.NsxtManagerOpenApi, error) {
t := &types.NsxtManagerOpenApi{
Name: d.Get("name").(string),
Description: d.Get("description").(string),
Expand All @@ -139,9 +139,9 @@ func getTmNsxtManagerType(d *schema.ResourceData) (*types.NsxtManagerOpenApi, er
return t, nil
}

func setTmNsxtManagerData(d *schema.ResourceData, t *govcd.NsxtManagerOpenApi) error {
func setNsxtManagerData(d *schema.ResourceData, t *govcd.NsxtManagerOpenApi) error {
if t == nil || t.NsxtManagerOpenApi == nil {
return fmt.Errorf("nil object for %s", labelTmNsxtManager)
return fmt.Errorf("nil object for %s", labelNsxtManager)
}
n := t.NsxtManagerOpenApi

Expand Down
File renamed without changes.

0 comments on commit 96e0154

Please sign in to comment.