diff --git a/nsxt/resource_nsxt_vpc.go b/nsxt/resource_nsxt_vpc.go index 98666256e..c0749846f 100644 --- a/nsxt/resource_nsxt_vpc.go +++ b/nsxt/resource_nsxt_vpc.go @@ -167,6 +167,7 @@ var vpcSchema = map[string]*metadata.ExtendedSchema{ Metadata: metadata.Metadata{ SchemaType: "string", SdkFieldName: "ShortId", + OmitIfEmpty: true, }, }, "vpc_connectivity_profile": { diff --git a/nsxt/resource_nsxt_vpc_test.go b/nsxt/resource_nsxt_vpc_test.go index 5284beee0..f1ee54f9f 100644 --- a/nsxt/resource_nsxt_vpc_test.go +++ b/nsxt/resource_nsxt_vpc_test.go @@ -98,6 +98,7 @@ func TestAccResourceNsxtVpc_basic(t *testing.T) { testAccNsxtVpcExists(accTestVpcCreateAttributes["display_name"], testResourceName), resource.TestCheckResourceAttrSet(testResourceName, "vpc_service_profile"), resource.TestCheckResourceAttrSet(testResourceName, "vpc_connectivity_profile"), + resource.TestCheckResourceAttr(testResourceName, "short_id", accTestVpcUpdateAttributes["short_id"]), resource.TestCheckResourceAttr(testResourceName, "load_balancer_vpc_endpoint.#", "0"), resource.TestCheckResourceAttr(testResourceName, "description", ""), resource.TestCheckResourceAttrSet(testResourceName, "nsx_id"), @@ -106,6 +107,21 @@ func TestAccResourceNsxtVpc_basic(t *testing.T) { resource.TestCheckResourceAttr(testResourceName, "tag.#", "0"), ), }, + { + Config: testAccNsxtVpcMinimalisticNoShortId(), + Check: resource.ComposeTestCheckFunc( + testAccNsxtVpcExists(accTestVpcCreateAttributes["display_name"], testResourceName), + resource.TestCheckResourceAttrSet(testResourceName, "vpc_service_profile"), + resource.TestCheckResourceAttrSet(testResourceName, "vpc_connectivity_profile"), + resource.TestCheckResourceAttr(testResourceName, "load_balancer_vpc_endpoint.#", "0"), + resource.TestCheckResourceAttr(testResourceName, "description", ""), + resource.TestCheckResourceAttr(testResourceName, "short_id", accTestVpcUpdateAttributes["short_id"]), + resource.TestCheckResourceAttr(testResourceName, "nsx_id", accTestVpcUpdateAttributes["short_id"]), + resource.TestCheckResourceAttrSet(testResourceName, "path"), + resource.TestCheckResourceAttrSet(testResourceName, "revision"), + resource.TestCheckResourceAttr(testResourceName, "tag.#", "0"), + ), + }, }, }) } @@ -252,3 +268,16 @@ resource "nsxt_vpc" "test" { vpc_connectivity_profile = nsxt_vpc_connectivity_profile.test.path }`, testAccNsxtProjectContext(), accTestVpcUpdateAttributes["display_name"], accTestVpcUpdateAttributes["short_id"]) } + +// We use short_id as nsx_id to make sure NSX populates the short_id correctly +func testAccNsxtVpcMinimalisticNoShortId() string { + return testAccNsxtVpcPrerequisites() + fmt.Sprintf(` +resource "nsxt_vpc" "test" { + %s + nsx_id = "%s" + display_name = "%s" + # TODO - remove when default profiles are supported + vpc_service_profile = nsxt_vpc_service_profile.test.path + vpc_connectivity_profile = nsxt_vpc_connectivity_profile.test.path +}`, testAccNsxtProjectContext(), accTestVpcUpdateAttributes["short_id"], accTestVpcUpdateAttributes["display_name"]) +}