Skip to content

Commit

Permalink
Merge pull request #1042 from ksamoray/t1_ha_mode_none
Browse files Browse the repository at this point in the history
Handle T1 ha_mode properly.
  • Loading branch information
ksamoray committed Nov 29, 2023
2 parents 43df0d5 + cbedf79 commit 2e5e2bc
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 10 deletions.
4 changes: 2 additions & 2 deletions nsxt/resource_nsxt_policy_tier1_gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ func resourceNsxtPolicyTier1Gateway() *schema.Resource {
Description: "High-availability Mode for Tier-1",
ValidateFunc: validation.StringInSlice(t1HaModeValues, false),
Optional: true,
Default: model.Tier1_HA_MODE_STANDBY,
Computed: true,
},
"type": {
Type: schema.TypeString,
Expand Down Expand Up @@ -405,7 +405,7 @@ func policyTier1GatewayResourceToInfraStruct(context utl.SessionContext, d *sche
}

if nsxVersionHigherOrEqual("3.2.0") {
if haMode != "NONE" {
if haMode != "NONE" && haMode != "" {
obj.HaMode = &haMode
}
}
Expand Down
13 changes: 6 additions & 7 deletions nsxt/resource_nsxt_policy_tier1_gateway_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import (

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
"github.com/vmware/vsphere-automation-sdk-go/services/nsxt/model"
)

func TestAccResourceNsxtPolicyTier1Gateway_basic(t *testing.T) {
Expand Down Expand Up @@ -50,7 +49,7 @@ func testAccResourceNsxtPolicyTier1GatewayBasic(t *testing.T, withContext bool,
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "true"),
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "false"),
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "2"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
resource.TestCheckResourceAttrSet(testResourceName, "ipv6_ndra_profile_path"),
Expand All @@ -72,7 +71,7 @@ func testAccResourceNsxtPolicyTier1GatewayBasic(t *testing.T, withContext bool,
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "false"),
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "true"),
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "1"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
resource.TestCheckResourceAttrSet(testResourceName, "ipv6_ndra_profile_path"),
Expand All @@ -94,7 +93,7 @@ func testAccResourceNsxtPolicyTier1GatewayBasic(t *testing.T, withContext bool,
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "false"),
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "true"),
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "1"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
resource.TestCheckResourceAttrSet(testResourceName, "ipv6_ndra_profile_path"),
Expand Down Expand Up @@ -132,7 +131,7 @@ func TestAccResourceNsxtPolicyTier1Gateway_withPoolAllocation(t *testing.T) {
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "true"),
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "false"),
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
resource.TestCheckResourceAttr(testResourceName, "pool_allocation", "ROUTING"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "2"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
Expand All @@ -155,7 +154,7 @@ func TestAccResourceNsxtPolicyTier1Gateway_withPoolAllocation(t *testing.T) {
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "false"),
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "true"),
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
resource.TestCheckResourceAttr(testResourceName, "pool_allocation", "ROUTING"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "1"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
Expand All @@ -179,7 +178,7 @@ func TestAccResourceNsxtPolicyTier1Gateway_withPoolAllocation(t *testing.T) {
resource.TestCheckResourceAttr(testResourceName, "enable_standby_relocation", "false"),
resource.TestCheckResourceAttr(testResourceName, "force_whitelisting", "true"),
resource.TestCheckResourceAttr(testResourceName, "tier0_path", ""),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", model.Tier1_HA_MODE_STANDBY),
resource.TestCheckResourceAttr(testResourceName, "ha_mode", "NONE"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_types.#", "1"),
resource.TestCheckResourceAttr(testResourceName, "route_advertisement_rule.#", "0"),
resource.TestCheckResourceAttrSet(testResourceName, "ipv6_ndra_profile_path"),
Expand Down
2 changes: 1 addition & 1 deletion website/docs/r/policy_tier1_gateway.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ The following arguments are supported:
* `intersite_config` - (Optional) This clause is relevant for Global Manager only.
* `transit_subnet` - (Optional) IPv4 subnet for inter-site transit segment connecting service routers across sites for stretched gateway. For IPv6 link local subnet is auto configured.
* `primary_site_path` - (Optional) Primary egress site for gateway.
* `ha_mode` - (Optional) High-availability Mode for Tier-1. Valid values are `ACTIVE_ACTIVE`, `ACTIVE_STANDBY` and `NONE`. `ACTIVE_ACTIVE` is supported with NSX version 4.0.0 and above. `NONE` mode should be used for Distributed Only.
* `ha_mode` - (Optional) High-availability Mode for Tier-1. Valid values are `ACTIVE_ACTIVE`, `ACTIVE_STANDBY` and `NONE`. `ACTIVE_ACTIVE` is supported with NSX version 4.0.0 and above. `NONE` mode should be used for Distributed Only, e.g when a gateway is created and has no services.
* `type` - (Optional) This setting is only applicable to VMC and it helps auto-configure router advertisements for the gateway. Valid values are `ROUTED`, `NATTED` and `ISOLATED`. For `ROUTED` and `NATTED`, `tier0_path` should be specified in configuration.


Expand Down

0 comments on commit 2e5e2bc

Please sign in to comment.