Skip to content

Commit

Permalink
address comment
Browse files Browse the repository at this point in the history
  • Loading branch information
mahesh-hpe committed Nov 24, 2023
1 parent 375d5ba commit 243b995
Show file tree
Hide file tree
Showing 12 changed files with 78 additions and 126 deletions.
11 changes: 3 additions & 8 deletions internal/acceptance_test/data_source_edge_cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"testing"

api_client "github.com/HewlettPackard/hpegl-vmaas-cmp-go-sdk/pkg/client"
"github.com/HewlettPackard/hpegl-vmaas-terraform-resources/internal/utils"
"github.com/HewlettPackard/hpegl-vmaas-terraform-resources/internal/cmp"
"github.com/HewlettPackard/hpegl-vmaas-terraform-resources/pkg/atf"
)

Expand All @@ -31,17 +31,12 @@ func TestAccDataSourceNetworkEdgeCluster(t *testing.T) {
if len(ServerResp.NetworkServices) == 0 {
return nil, err
}
cmpVersion, err := utils.GetCmpVersion(iClient.Client)
nsxType, err := cmp.GetNsxTypeFromCMP(iClient.Client)
if err != nil {
return nil, err
}
nsxVar := "NSX-T"
if v, _ := utils.ParseVersion("6.2.4"); v <= cmpVersion {
// from 6.2.4 onwards the display name of NSX-T has been change to NSX
nsxVar = "NSX"
}
for i, n := range ServerResp.NetworkServices {
if n.TypeName == nsxVar {
if n.TypeName == nsxType {
serverID = ServerResp.NetworkServices[i].ID

break
Expand Down
9 changes: 3 additions & 6 deletions internal/cmp/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,9 @@ import "time"

const (
vmware = "vmware"
nsxSegment = "NSX Segment"
nsxtSegment = "NSX-T Segment"
nsx = "NSX"
nsxt = "NSX-T"
nsxSegment = "Segment"
errExactMatch = "error, could not find the %s with the specified name. Please verify the name and try again"
successErr = "got success = 'false while %s"
// query params keys
Expand All @@ -22,10 +21,8 @@ const (
// retry related constants
maxTimeout = time.Hour * 2
// router consts
nsxTier0GatewayType = "NSX Tier-0 Gateway"
tier0GatewayType = "NSX-T Tier-0 Gateway"
nsxTier1GatewayType = "NSX Tier-1 Gateway"
tier1GatewayType = "NSX-T Tier-1 Gateway"
tier0GatewayType = "Tier-0 Gateway"
tier1GatewayType = "Tier-1 Gateway"
routerFirewallExternalPolicy = "GatewayPolicy"
syncedTypeValue = "Synced"

Expand Down
9 changes: 2 additions & 7 deletions internal/cmp/data_source_lb_pool_member_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,10 @@ func (n *poolMemberGroupds) Read(ctx context.Context, d *utils.Data, meta interf
if err := d.Error(); err != nil {
return err
}
cmpVersion, err := utils.GetCmpVersion(n.rClient.Client)
nsxType, err := GetNsxTypeFromCMP(n.rClient.Client)
if err != nil {
return err
}
nsxVar := nsxt
if v, _ := utils.ParseVersion("6.2.4"); v <= cmpVersion {
// from 6.2.4 onwards the display name of NSX-T has been change to NSX
nsxVar = nsx
}
setMeta(meta, n.rClient.Client)
// Get network server ID for nsx-t
serverResp, err := n.rClient.GetNetworkServices(ctx, nil)
Expand All @@ -52,7 +47,7 @@ func (n *poolMemberGroupds) Read(ctx context.Context, d *utils.Data, meta interf

var serverID int
for i, n := range serverResp.NetworkServices {
if n.TypeName == nsxVar {
if n.TypeName == nsxType {
serverID = serverResp.NetworkServices[i].ID

break
Expand Down
9 changes: 2 additions & 7 deletions internal/cmp/dhcp_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,10 @@ func (dhcp *dhcpServer) Delete(ctx context.Context, d *utils.Data, meta interfac
func (dhcp *dhcpServer) dhcpServerAlignRequest(ctx context.Context, meta interface{},
createReq *models.CreateNetworkDhcpServerRequest) error {
// Get network service ID
cmpVersion, err := utils.GetCmpVersion(dhcp.rClient.Client)
nsxType, err := GetNsxTypeFromCMP(dhcp.rClient.Client)
if err != nil {
return err
}
nsxVar := nsxt
if v, _ := utils.ParseVersion("6.2.4"); v <= cmpVersion {
// from 6.2.4 onwards the display name of NSX-T has been change to NSX
nsxVar = nsx
}
setMeta(meta, dhcp.rClient.Client)
nsRetry := utils.CustomRetry{}
nsRetry.RetryParallel(ctx, meta, func(ctx context.Context) (interface{}, error) {
Expand All @@ -145,7 +140,7 @@ func (dhcp *dhcpServer) dhcpServerAlignRequest(ctx context.Context, meta interfa
networkService := nsResp.(models.GetNetworkServicesResp)

for i, n := range networkService.NetworkServices {
if n.TypeName == nsxVar {
if n.TypeName == nsxType {
createReq.NetworkDhcpServer.ID = networkService.NetworkServices[i].ID

break
Expand Down
9 changes: 2 additions & 7 deletions internal/cmp/dhcp_server_datasource.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,10 @@ func (n *dhcpServerds) Read(ctx context.Context, d *utils.Data, meta interface{}
if err := d.Error(); err != nil {
return err
}
cmpVersion, err := utils.GetCmpVersion(n.rClient.Client)
nsxType, err := GetNsxTypeFromCMP(n.rClient.Client)
if err != nil {
return err
}
nsxVar := nsxt
if v, _ := utils.ParseVersion("6.2.4"); v <= cmpVersion {
// from 6.2.4 onwards the display name of NSX-T has been change to NSX
nsxVar = nsx
}
setMeta(meta, n.rClient.Client)
// Get network server ID for nsx-t
serverResp, err := n.rClient.GetNetworkServices(ctx, nil)
Expand All @@ -52,7 +47,7 @@ func (n *dhcpServerds) Read(ctx context.Context, d *utils.Data, meta interface{}

var serverID int
for i, n := range serverResp.NetworkServices {
if n.TypeName == nsxVar {
if n.TypeName == nsxType {
serverID = serverResp.NetworkServices[i].ID

break
Expand Down
9 changes: 2 additions & 7 deletions internal/cmp/edge_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,10 @@ func newEdgeCluster(tClient *client.RouterAPIService) *edgeCluster {
}

func (r *edgeCluster) Read(ctx context.Context, d *utils.Data, meta interface{}) error {
cmpVersion, err := utils.GetCmpVersion(r.tClient.Client)
nsxType, err := GetNsxTypeFromCMP(r.tClient.Client)
if err != nil {
return err
}
nsxVar := nsxt
if v, _ := utils.ParseVersion("6.2.4"); v <= cmpVersion {
// from 6.2.4 onwards the display name of NSX-T has been change to NSX
nsxVar = nsx
}
setMeta(meta, r.tClient.Client)
log.Printf("[INFO] Get Edge Cluster")
var tfEdgeCluster models.NetworkEdgeClusters
Expand All @@ -48,7 +43,7 @@ func (r *edgeCluster) Read(ctx context.Context, d *utils.Data, meta interface{})

var serverID int
for i, n := range serverResp.NetworkServices {
if n.TypeName == nsxVar {
if n.TypeName == nsxType {
serverID = serverResp.NetworkServices[i].ID

break
Expand Down
51 changes: 51 additions & 0 deletions internal/cmp/helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
package cmp

import (
"context"
"log"
"strconv"
"strings"

"github.com/HewlettPackard/hpegl-vmaas-cmp-go-sdk/pkg/client"
"github.com/HewlettPackard/hpegl-vmaas-terraform-resources/pkg/auth"
Expand All @@ -15,3 +18,51 @@ func setMeta(meta interface{}, apiClient client.APIClientHandler) {
log.Printf("[ERROR] error while setting meta information for cmp-sdk, error: %v", err)
}
}

func ParseVersion(version string) (int, error) {
if version == "" {
return 0, nil
}

versionSplit := strings.Split(version, ".")

mul := 10000
sum := 0
for _, v := range versionSplit {
vInt, err := strconv.Atoi(v)
if err != nil {
return 0, err
}
sum += mul * vInt
mul /= 100
}

return sum, nil
}

func GetCmpVersion(apiClient client.APIClientHandler) (int, error) {
c := client.CmpStatus{
Client: apiClient,
}

cmpVersion, err := c.GetCmpVersion(context.Background())
if err != nil {
return 0, err
}

return ParseVersion(cmpVersion.Appliance.BuildVersion)
}

func GetNsxTypeFromCMP(apiClient client.APIClientHandler) (string, error) {
cmpVersion, err := GetCmpVersion(apiClient)
if err != nil {
return "", err
}
if v, _ := ParseVersion("6.2.4"); v <= cmpVersion {
// from 6.2.4 onwards the display name of NSX-T has been change to NSX

return nsx, nil
}

return nsxt, nil
}
13 changes: 4 additions & 9 deletions internal/cmp/loadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,17 +61,12 @@ func (lb *loadBalancer) Update(ctx context.Context, d *utils.Data, meta interfac

func (lb *loadBalancer) loadBalancerAlignRequest(ctx context.Context, meta interface{},
createReq *models.CreateLoadBalancerRequest) error {
cmpVersion, err := utils.GetCmpVersion(lb.rClient.Client)
nsxType, err := GetNsxTypeFromCMP(lb.rClient.Client)
if err != nil {
return err
}
nsxVar := nsxt
if v, _ := utils.ParseVersion("6.2.4"); v <= cmpVersion {
// from 6.2.4 onwards the display name of NSX-T has been change to NSX
nsxVar = nsx
}
allTypes, _ := lb.lbClient.GetLoadBalancerTypes(ctx, map[string]string{
nameKey: nsxVar,
nameKey: nsxType,
})

// Get network service ID
Expand All @@ -89,14 +84,14 @@ func (lb *loadBalancer) loadBalancerAlignRequest(ctx context.Context, meta inter
networkService := nsResp.(models.GetNetworkServicesResp)

for i, n := range networkService.NetworkServices {
if n.TypeName == nsxVar {
if n.TypeName == nsxType {
createReq.NetworkLoadBalancer.NetworkServerID = networkService.NetworkServices[i].ID

break
}
}
for i, n := range allTypes.LoadBalancerTypes {
if n.Name == nsxVar {
if n.Name == nsxType {
createReq.NetworkLoadBalancer.Type = allTypes.LoadBalancerTypes[i].Code

break
Expand Down
13 changes: 3 additions & 10 deletions internal/cmp/resource_network.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,10 @@ func (r *resNetwork) Read(ctx context.Context, d *utils.Data, meta interface{})
}

func (r *resNetwork) Create(ctx context.Context, d *utils.Data, meta interface{}) error {
cmpVersion, err := utils.GetCmpVersion(r.rClient.Client)
nsxType, err := GetNsxTypeFromCMP(r.rClient.Client)
if err != nil {
return err
}
nsxVar := nsxt
nsxSegmentVar := nsxtSegment
if v, _ := utils.ParseVersion("6.2.4"); v <= cmpVersion {
// from 6.2.4 onwards the display name of NSX-T has been change to NSX
nsxVar = nsx
nsxSegmentVar = nsxSegment
}
setMeta(meta, r.rClient.Client)
var createReq models.CreateNetwork
if err := tftags.Get(d, &createReq); err != nil {
Expand All @@ -67,7 +60,7 @@ func (r *resNetwork) Create(ctx context.Context, d *utils.Data, meta interface{}
typeRetry := utils.CustomRetry{}
typeRetry.RetryParallel(ctx, meta, func(ctx context.Context) (interface{}, error) {
return r.nClient.GetNetworkType(ctx, map[string]string{
nameKey: nsxSegmentVar,
nameKey: fmt.Sprintf("%s %s", nsxType, nsxSegment),
})
})
// Get network server ID for nsx-t
Expand Down Expand Up @@ -97,7 +90,7 @@ func (r *resNetwork) Create(ctx context.Context, d *utils.Data, meta interface{}
return fmt.Errorf(errExactMatch, "network server")
}
for i, n := range networkService.NetworkServices {
if n.TypeName == nsxVar {
if n.TypeName == nsxType {
createReq.NetworkServer.ID = networkService.NetworkServices[i].ID

break
Expand Down
17 changes: 4 additions & 13 deletions internal/cmp/router.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,19 +111,10 @@ func (r *router) Delete(ctx context.Context, d *utils.Data, meta interface{}) er
}

func (r *router) routerAlignRouterRequest(ctx context.Context, meta interface{}, routerReq *models.CreateRouterRequest) error {
cmpVersion, err := utils.GetCmpVersion(r.rClient.Client)
nsxType, err := GetNsxTypeFromCMP(r.rClient.Client)
if err != nil {
return err
}
nsxVar := nsxt
tier0GatewayTypeVar := tier0GatewayType
tier1GatewayTypeVar := tier1GatewayType
if v, _ := utils.ParseVersion("6.2.4"); v <= cmpVersion {
// from 6.2.4 onwards the display name of NSX-T has been change to NSX
nsxVar = nsx
tier0GatewayTypeVar = nsxTier0GatewayType
tier1GatewayTypeVar = nsxTier1GatewayType
}
queryParam := make(map[string]string)
// Check whether teir0 or tier1 and assign properties to proper child, so json can marshal properly
tier0Config := routerReq.NetworkRouter.Config.CreateRouterTier0Config
Expand All @@ -147,14 +138,14 @@ func (r *router) routerAlignRouterRequest(ctx context.Context, meta interface{},
routerReq.NetworkRouter.Config.FailOver = routerReq.NetworkRouter.TfTier0Config.TfFailOver
routerReq.NetworkRouter.Config.EdgeCluster = routerReq.NetworkRouter.TfTier0Config.TfEdgeCluster
routerReq.NetworkRouter.EnableBGP = routerReq.NetworkRouter.TfTier0Config.TfBGP.TfEnableBgp
queryParam[nameKey] = tier0GatewayTypeVar
queryParam[nameKey] = fmt.Sprintf("%s %s", nsxType, tier0GatewayType)
} else {
routerReq.NetworkRouter.Config.CreateRouterTier0Config.RouteRedistributionTier1.RouteAdvertisement =
routerReq.NetworkRouter.TfTier1Config.TfRouteAdvertisement
routerReq.NetworkRouter.Config.EdgeCluster = routerReq.NetworkRouter.TfTier1Config.TfEdgeCluster
routerReq.NetworkRouter.Config.FailOver = routerReq.NetworkRouter.TfTier1Config.TfFailOver
routerReq.NetworkRouter.Config.Tier0Gateways = routerReq.NetworkRouter.TfTier1Config.TfTier0Gateways
queryParam[nameKey] = tier1GatewayTypeVar
queryParam[nameKey] = fmt.Sprintf("%s %s", nsxType, tier1GatewayType)
}
// Get Router type
rtRetry := utils.CustomRetry{}
Expand Down Expand Up @@ -187,7 +178,7 @@ func (r *router) routerAlignRouterRequest(ctx context.Context, meta interface{},
return fmt.Errorf(errExactMatch, "network-service")
}
for i, n := range networkService.NetworkServices {
if n.TypeName == nsxVar {
if n.TypeName == nsxType {
routerReq.NetworkRouter.NetworkServer.ID = networkService.NetworkServices[i].ID
routerReq.NetworkRouter.NetworkServerID = networkService.NetworkServices[i].ID

Expand Down
9 changes: 2 additions & 7 deletions internal/cmp/transport_zone.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,15 +23,10 @@ func newTransportZone(tClient *client.RouterAPIService) *transportZone {
}

func (r *transportZone) Read(ctx context.Context, d *utils.Data, meta interface{}) error {
cmpVersion, err := utils.GetCmpVersion(r.tClient.Client)
nsxType, err := GetNsxTypeFromCMP(r.tClient.Client)
if err != nil {
return err
}
nsxVar := nsxt
if v, _ := utils.ParseVersion("6.2.4"); v <= cmpVersion {
// from 6.2.4 onwards the display name of NSX-T has been change to NSX
nsxVar = nsx
}
setMeta(meta, r.tClient.Client)
var tfScope models.NetworkScope
if err := tftags.Get(d, &tfScope); err != nil {
Expand All @@ -46,7 +41,7 @@ func (r *transportZone) Read(ctx context.Context, d *utils.Data, meta interface{

var serverID int
for i, n := range serverResp.NetworkServices {
if n.TypeName == nsxVar {
if n.TypeName == nsxType {
serverID = serverResp.NetworkServices[i].ID

break
Expand Down
Loading

0 comments on commit 243b995

Please sign in to comment.