From e9c65c8a32e0f58f9e7f4a0ecf0079cf8566b8ac Mon Sep 17 00:00:00 2001 From: saloneerege Date: Mon, 24 Feb 2020 10:19:11 -0800 Subject: [PATCH 1/5] Added org_id as a required parameter in terraform schema --- examples/main.tf | 9 +-------- vmc/data_source_vmc_connected_accounts.go | 8 +------- vmc/data_source_vmc_customer_subnets.go | 11 +---------- vmc/data_source_vmc_org.go | 12 ++++-------- vmc/provider.go | 9 ++++++++- vmc/resource_vmc_sddc.go | 8 +------- website/docs/d/connected_accounts.html.markdown | 5 +++-- website/docs/d/customer_subnets.html.markdown | 3 +-- website/docs/d/org.html.markdown | 2 +- website/docs/index.html.markdown | 10 ++-------- website/docs/r/sddc.html.markdown | 10 ++-------- 11 files changed, 25 insertions(+), 62 deletions(-) diff --git a/examples/main.tf b/examples/main.tf index 866ef32..12f4e07 100644 --- a/examples/main.tf +++ b/examples/main.tf @@ -1,25 +1,18 @@ provider "vmc" { refresh_token = var.api_token -} - -data "vmc_org" "my_org" { - id = var.org_id + org_id = var.org_id } data "vmc_connected_accounts" "my_accounts" { - org_id = data.vmc_org.my_org.id account_number = var.aws_account_number } data "vmc_customer_subnets" "my_subnets" { - org_id = data.vmc_org.my_org.id connected_account_id = data.vmc_connected_accounts.my_accounts.ids[0] region = var.sddc_region } resource "vmc_sddc" "sddc_1" { - org_id = data.vmc_org.my_org.id - sddc_name = var.sddc_name vpc_cidr = var.vpc_cidr num_host = 3 diff --git a/vmc/data_source_vmc_connected_accounts.go b/vmc/data_source_vmc_connected_accounts.go index fdc6855..a15ab1c 100644 --- a/vmc/data_source_vmc_connected_accounts.go +++ b/vmc/data_source_vmc_connected_accounts.go @@ -14,11 +14,6 @@ func dataSourceVmcConnectedAccounts() *schema.Resource { Read: dataSourceVmcConnectedAccountsRead, Schema: map[string]*schema.Schema{ - "org_id": { - Type: schema.TypeString, - Description: "Organization identifier.", - Required: true, - }, "provider_type": { Type: schema.TypeString, Description: "The cloud provider of the SDDC (AWS or ZeroCloud).", @@ -41,8 +36,7 @@ func dataSourceVmcConnectedAccounts() *schema.Resource { } func dataSourceVmcConnectedAccountsRead(d *schema.ResourceData, m interface{}) error { - - orgID := d.Get("org_id").(string) + orgID := (m.(*ConnectorWrapper)).OrgID providerType := d.Get("provider_type").(string) accountNumber := d.Get("account_number").(string) diff --git a/vmc/data_source_vmc_customer_subnets.go b/vmc/data_source_vmc_customer_subnets.go index ee470a8..3cc40c7 100644 --- a/vmc/data_source_vmc_customer_subnets.go +++ b/vmc/data_source_vmc_customer_subnets.go @@ -15,11 +15,6 @@ func dataSourceVmcCustomerSubnets() *schema.Resource { Read: dataSourceVmcCustomerSubnetsRead, Schema: map[string]*schema.Schema{ - "org_id": { - Type: schema.TypeString, - Description: "Organization identifier.", - Required: true, - }, "connected_account_id": { Type: schema.TypeString, Description: "The linked connected account identifier.", @@ -77,7 +72,7 @@ func dataSourceVmcCustomerSubnets() *schema.Resource { func dataSourceVmcCustomerSubnetsRead(d *schema.ResourceData, m interface{}) error { - orgID := d.Get("org_id").(string) + orgID := m.(*ConnectorWrapper).OrgID accountID := d.Get("connected_account_id").(string) sddcID := d.Get("sddc_id").(string) region := d.Get("region").(string) @@ -103,10 +98,6 @@ func dataSourceVmcCustomerSubnetsRead(d *schema.ResourceData, m interface{}) err ids = append(ids, *subnet.SubnetId) } } - - // for _, subnet := range subnets.VpcMap["VpcInfoSubnets"].Subnets { - // ids = append(ids, subnet.SubnetId) - // } log.Printf("[DEBUG] Subnet IDs are %v\n", ids) if err != nil { diff --git a/vmc/data_source_vmc_org.go b/vmc/data_source_vmc_org.go index 5dbcb07..5d96467 100644 --- a/vmc/data_source_vmc_org.go +++ b/vmc/data_source_vmc_org.go @@ -16,8 +16,8 @@ func dataSourceVmcOrg() *schema.Resource { Schema: map[string]*schema.Schema{ "id": { Type: schema.TypeString, - Description: "Unique ID of this resource", - Required: true, + Description: "Organization identifier.", + Computed: true, }, "display_name": { Type: schema.TypeString, @@ -34,11 +34,7 @@ func dataSourceVmcOrg() *schema.Resource { } func dataSourceVmcOrgRead(d *schema.ResourceData, m interface{}) error { - orgID := d.Get("id").(string) - if orgID == "" { - return fmt.Errorf("org ID is a required parameter and cannot be empty") - } - + orgID := (m.(*ConnectorWrapper)).OrgID connector := (m.(*ConnectorWrapper)).Connector orgClient := vmc.NewDefaultOrgsClient(connector) org, err := orgClient.Get(orgID) @@ -46,7 +42,7 @@ func dataSourceVmcOrgRead(d *schema.ResourceData, m interface{}) error { if err != nil { return fmt.Errorf("Error while reading org information for %s: %v", orgID, err) } - d.SetId(org.Id) + d.SetId(orgID) d.Set("display_name", org.DisplayName) d.Set("name", org.Name) diff --git a/vmc/provider.go b/vmc/provider.go index 54d84e3..7803e77 100644 --- a/vmc/provider.go +++ b/vmc/provider.go @@ -14,6 +14,7 @@ import ( type ConnectorWrapper struct { client.Connector RefreshToken string + OrgID string VmcURL string CspURL string } @@ -37,6 +38,11 @@ func Provider() terraform.ResourceProvider { Required: true, DefaultFunc: schema.EnvDefaultFunc("API_TOKEN", nil), }, + "org_id": { + Type: schema.TypeString, + Required: true, + DefaultFunc: schema.EnvDefaultFunc("ORG_ID", nil), + }, "vmc_url": { Type: schema.TypeString, Optional: true, @@ -67,11 +73,12 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) { refreshToken := d.Get("refresh_token").(string) vmcURL := d.Get("vmc_url").(string) cspURL := d.Get("csp_url").(string) + orgID := d.Get("org_id").(string) httpClient := http.Client{} connector, err := NewVmcConnectorByRefreshToken(refreshToken, vmcURL, cspURL, httpClient) if err != nil { return nil, fmt.Errorf("Error creating connector : %v ", err) } - return &ConnectorWrapper{connector, refreshToken, vmcURL, cspURL}, nil + return &ConnectorWrapper{connector, refreshToken, orgID,vmcURL, cspURL}, nil } diff --git a/vmc/resource_vmc_sddc.go b/vmc/resource_vmc_sddc.go index 9c3e4d2..1b68c5a 100644 --- a/vmc/resource_vmc_sddc.go +++ b/vmc/resource_vmc_sddc.go @@ -33,11 +33,6 @@ func resourceSddc() *schema.Resource { }, Schema: map[string]*schema.Schema{ - "org_id": { - Type: schema.TypeString, - Required: true, - Description: "ID of this resource", - }, "storage_capacity": { Type: schema.TypeInt, Optional: true, @@ -166,8 +161,7 @@ func resourceSddc() *schema.Resource { func resourceSddcCreate(d *schema.ResourceData, m interface{}) error { connectorWrapper := m.(*ConnectorWrapper) sddcClient := orgs.NewDefaultSddcsClient(connectorWrapper) - - orgID := d.Get("org_id").(string) + orgID := connectorWrapper.OrgID storageCapacity := d.Get("storage_capacity").(int) storageCapacityConverted := int64(storageCapacity) sddcName := d.Get("sddc_name").(string) diff --git a/website/docs/d/connected_accounts.html.markdown b/website/docs/d/connected_accounts.html.markdown index 71467c0..1378aec 100644 --- a/website/docs/d/connected_accounts.html.markdown +++ b/website/docs/d/connected_accounts.html.markdown @@ -13,14 +13,15 @@ The connected accounts data source get a list of connected accounts. ```hcl data "vmc_connected_accounts" "my_accounts" { - org_id = data.vmc_org.my_org.id + org_id = var.org_id account_number = var.aws_account_number } ``` ## Argument Reference -* `org_id` - (Required) Organization identifier. +* `org_id` - (Computed) Organization identifier. + * `account_number` - (Optional) AWS account number. ## Attributes Reference diff --git a/website/docs/d/customer_subnets.html.markdown b/website/docs/d/customer_subnets.html.markdown index 8bbf281..e08148a 100644 --- a/website/docs/d/customer_subnets.html.markdown +++ b/website/docs/d/customer_subnets.html.markdown @@ -12,7 +12,6 @@ The customer subnets data source provides information about customer's compatibl ```hcl data "vmc_customer_subnets" "my_subnets" { - org_id = data.vmc_org.my_org.id connected_account_id = data.vmc_connected_accounts.my_accounts.ids[0] region = var.sddc_region } @@ -20,7 +19,7 @@ data "vmc_customer_subnets" "my_subnets" { ## Argument Reference -* `org_id` - (Required) Organization identifier. +* `org_id` - (Computed) Organization identifier. * `region` - (Required) The region of the cloud resources to work in. diff --git a/website/docs/d/org.html.markdown b/website/docs/d/org.html.markdown index 1def9d9..9c9a90f 100644 --- a/website/docs/d/org.html.markdown +++ b/website/docs/d/org.html.markdown @@ -19,4 +19,4 @@ data "vmc_org" "my_org" { ## Argument Reference -* `id` - (Required) ID of the organization. +* `id` - (Computed) ID of the organization. diff --git a/website/docs/index.html.markdown b/website/docs/index.html.markdown index a11258e..2170b20 100644 --- a/website/docs/index.html.markdown +++ b/website/docs/index.html.markdown @@ -53,26 +53,19 @@ create in VMC. provider "vmc" { refresh_token = var.api_token -} - -data "vmc_org" "my_org" { - id = var.org_id + org_id = var.org_id } data "vmc_connected_accounts" "my_accounts" { - org_id = data.vmc_org.my_org.id account_number = var.aws_account_number } data "vmc_customer_subnets" "my_subnets" { - org_id = data.vmc_org.my_org.id connected_account_id = data.vmc_connected_accounts.my_accounts.ids[0] region = var.sddc_region } resource "vmc_sddc" "sddc_1" { - org_id = data.vmc_org.my_org.id - sddc_name = var.sddc_name vpc_cidr = var.vpc_cidr num_host = 3 @@ -95,6 +88,7 @@ resource "vmc_sddc" "sddc_1" { delete = "180m" } } + ``` diff --git a/website/docs/r/sddc.html.markdown b/website/docs/r/sddc.html.markdown index 7e62043..253368b 100644 --- a/website/docs/r/sddc.html.markdown +++ b/website/docs/r/sddc.html.markdown @@ -18,26 +18,19 @@ Provides a resource to provision SDDC. provider "vmc" { refresh_token = var.api_token -} - -data "vmc_org" "my_org" { - id = var.org_id + org_id = var.org_id } data "vmc_connected_accounts" "my_accounts" { - org_id = data.vmc_org.my_org.id account_number = var.aws_account_number } data "vmc_customer_subnets" "my_subnets" { - org_id = data.vmc_org.my_org.id connected_account_id = data.vmc_connected_accounts.my_accounts.ids[0] region = var.sddc_region } resource "vmc_sddc" "sddc_1" { - org_id = data.vmc_org.my_org.id - sddc_name = var.sddc_name vpc_cidr = var.vpc_cidr num_host = 3 @@ -60,6 +53,7 @@ resource "vmc_sddc" "sddc_1" { delete = "180m" } } + ``` ## Argument Reference From 8470e52f1e355629423feed5daa057480605704b Mon Sep 17 00:00:00 2001 From: saloneerege Date: Tue, 25 Feb 2020 13:40:11 -0800 Subject: [PATCH 2/5] Updated test cases to remove references to org_ig --- ...data_source_vmc_connected_accounts_test.go | 6 --- vmc/data_source_vmc_customer_subnets_test.go | 9 +---- vmc/data_source_vmc_org_test.go | 3 -- vmc/provider.go | 2 +- vmc/provider_test.go | 3 ++ vmc/resource_vmc_sddc.go | 6 +-- vmc/resource_vmc_sddc_test.go | 37 +++++++++---------- .../docs/d/connected_accounts.html.markdown | 1 - website/docs/d/org.html.markdown | 8 ---- 9 files changed, 27 insertions(+), 48 deletions(-) diff --git a/vmc/data_source_vmc_connected_accounts_test.go b/vmc/data_source_vmc_connected_accounts_test.go index 96d9bd0..fbb0c13 100644 --- a/vmc/data_source_vmc_connected_accounts_test.go +++ b/vmc/data_source_vmc_connected_accounts_test.go @@ -27,16 +27,10 @@ func TestAccDataSourceVmcConnectedAccounts_basic(t *testing.T) { func testAccDataSourceVmcConnectedAccountsConfig() string { return fmt.Sprintf(` -data "vmc_org" "my_org" { - id = %q -} - data "vmc_connected_accounts" "my_accounts" { - org_id = "${data.vmc_org.my_org.id}" account_number = %q } `, - os.Getenv("ORG_ID"), os.Getenv("AWS_ACCOUNT_NUMBER"), ) } diff --git a/vmc/data_source_vmc_customer_subnets_test.go b/vmc/data_source_vmc_customer_subnets_test.go index 93971fa..3fc38f7 100644 --- a/vmc/data_source_vmc_customer_subnets_test.go +++ b/vmc/data_source_vmc_customer_subnets_test.go @@ -31,20 +31,15 @@ func TestAccDataSourceVmcCustomerSubnets_basic(t *testing.T) { func testAccDataSourceVmcCustomerSubnetsConfig() string { return fmt.Sprintf(` -data "vmc_org" "my_org" { - id = %q -} data "vmc_connected_accounts" "my_accounts" { - org_id = "${data.vmc_org.my_org.id}" + account_number = %q } data "vmc_customer_subnets" "my_subnets" { - org_id = "${data.vmc_org.my_org.id}" connected_account_id = "${data.vmc_connected_accounts.my_accounts.ids.0}" region = "US_WEST_2" } `, - os.Getenv("ORG_ID"), - ) + os.Getenv("AWS_ACCOUNT_NUMBER")) } diff --git a/vmc/data_source_vmc_org_test.go b/vmc/data_source_vmc_org_test.go index 90ee971..3d09b08 100644 --- a/vmc/data_source_vmc_org_test.go +++ b/vmc/data_source_vmc_org_test.go @@ -28,10 +28,7 @@ func TestAccDataSourceVmcOrg_basic(t *testing.T) { func testAccDataSourceVmcOrgConfig() string { return fmt.Sprintf(` data "vmc_org" "my_org" { - id = %q - } `, - os.Getenv("ORG_ID"), ) } diff --git a/vmc/provider.go b/vmc/provider.go index 7803e77..02f7215 100644 --- a/vmc/provider.go +++ b/vmc/provider.go @@ -80,5 +80,5 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) { return nil, fmt.Errorf("Error creating connector : %v ", err) } - return &ConnectorWrapper{connector, refreshToken, orgID,vmcURL, cspURL}, nil + return &ConnectorWrapper{connector, refreshToken, orgID, vmcURL, cspURL}, nil } diff --git a/vmc/provider_test.go b/vmc/provider_test.go index 536e756..aef5d9c 100644 --- a/vmc/provider_test.go +++ b/vmc/provider_test.go @@ -46,4 +46,7 @@ func testAccPreCheck(t *testing.T) { if v := os.Getenv("TEST_SDDC_ID"); v == "" { t.Fatal("TEST_SDDC_ID must be set for acceptance tests") } + if v := os.Getenv("AWS_ACCOUNT_NUMBER"); v == "" { + t.Fatal("AWS_ACCOUNT_NUMBER must be set for acceptance tests") + } } diff --git a/vmc/resource_vmc_sddc.go b/vmc/resource_vmc_sddc.go index 1b68c5a..4aa55f4 100644 --- a/vmc/resource_vmc_sddc.go +++ b/vmc/resource_vmc_sddc.go @@ -250,7 +250,7 @@ func resourceSddcCreate(d *schema.ResourceData, m interface{}) error { func resourceSddcRead(d *schema.ResourceData, m interface{}) error { connector := (m.(*ConnectorWrapper)).Connector sddcID := d.Id() - orgID := d.Get("org_id").(string) + orgID := (m.(*ConnectorWrapper)).OrgID sddc, err := getSDDC(connector, orgID, sddcID) if err != nil { if err.Error() == errors.NewNotFound().Error() { @@ -298,7 +298,7 @@ func resourceSddcDelete(d *schema.ResourceData, m interface{}) error { connector := (m.(*ConnectorWrapper)).Connector sddcClient := orgs.NewDefaultSddcsClient(connector) sddcID := d.Id() - orgID := d.Get("org_id").(string) + orgID := (m.(*ConnectorWrapper)).OrgID task, err := sddcClient.Delete(orgID, sddcID, nil, nil, nil) if err != nil { @@ -326,7 +326,7 @@ func resourceSddcUpdate(d *schema.ResourceData, m interface{}) error { connector := (m.(*ConnectorWrapper)).Connector esxsClient := sddcs.NewDefaultEsxsClient(connector) sddcID := d.Id() - orgID := d.Get("org_id").(string) + orgID := (m.(*ConnectorWrapper)).OrgID // Add,remove hosts if d.HasChange("num_host") { diff --git a/vmc/resource_vmc_sddc_test.go b/vmc/resource_vmc_sddc_test.go index 61be996..bffe792 100644 --- a/vmc/resource_vmc_sddc_test.go +++ b/vmc/resource_vmc_sddc_test.go @@ -108,23 +108,21 @@ func testCheckVmcSddcDestroy(s *terraform.State) error { func testAccVmcSddcConfigBasic(sddcName string) string { return fmt.Sprintf(` -data "vmc_org" "my_org" { - id = %q + +data "vmc_connected_accounts" "my_accounts" { + account_number = %q } -data "vmc_connected_accounts" "accounts" { - org_id = "${data.vmc_org.my_org.id}" +data "vmc_customer_subnets" "my_subnets" { + connected_account_id = data.vmc_connected_accounts.my_accounts.ids[0] + region = "US_WEST_2" } resource "vmc_sddc" "sddc_1" { - org_id = "${data.vmc_org.my_org.id}" - - # storage_capacity = 100 sddc_name = %q - vpc_cidr = "10.2.0.0/16" - num_host = 1 - provider_type = "ZEROCLOUD" + num_host = 3 + provider_type = "AWS" region = "US_WEST_2" @@ -135,17 +133,18 @@ resource "vmc_sddc" "sddc_1" { sso_domain = "vmc.local" deployment_type = "SingleAZ" - - # TODO raise exception here need to debug - #account_link_sddc_config = [ - # { - # customer_subnet_ids = ["subnet-13a0c249"] - # connected_account_id = "${data.vmc_connected_accounts.accounts.ids.0}" - # }, - # ] + account_link_sddc_config { + customer_subnet_ids = [data.vmc_customer_subnets.my_subnets.ids[0]] + connected_account_id = data.vmc_connected_accounts.my_accounts.ids[0] + } + timeouts { + create = "300m" + update = "300m" + delete = "180m" + } } `, - os.Getenv("ORG_ID"), + os.Getenv("AWS_ACCOUNT_NUMBER"), sddcName, ) } diff --git a/website/docs/d/connected_accounts.html.markdown b/website/docs/d/connected_accounts.html.markdown index 1378aec..7eea36d 100644 --- a/website/docs/d/connected_accounts.html.markdown +++ b/website/docs/d/connected_accounts.html.markdown @@ -13,7 +13,6 @@ The connected accounts data source get a list of connected accounts. ```hcl data "vmc_connected_accounts" "my_accounts" { - org_id = var.org_id account_number = var.aws_account_number } ``` diff --git a/website/docs/d/org.html.markdown b/website/docs/d/org.html.markdown index 9c9a90f..f51ea4c 100644 --- a/website/docs/d/org.html.markdown +++ b/website/docs/d/org.html.markdown @@ -9,14 +9,6 @@ description: A organization data source. This data source provides information about an organization. -## Example Usage - -```hcl -data "vmc_org" "my_org" { - id = var.org_id -} -``` - ## Argument Reference * `id` - (Computed) ID of the organization. From cfd1a0cff2c196fa2696d507ba8857789485318e Mon Sep 17 00:00:00 2001 From: saloneerege Date: Tue, 25 Feb 2020 15:32:41 -0800 Subject: [PATCH 3/5] Modified code to remove check for orgID required parameter --- examples/main.tf | 1 + vmc/data_source_vmc_connected_accounts.go | 4 ---- vmc/data_source_vmc_customer_subnets.go | 4 ---- vmc/data_source_vmc_org.go | 1 - vmc/provider.go | 19 ++++++++++++++----- vmc/resource_vmc_sddc.go | 8 +++----- 6 files changed, 18 insertions(+), 19 deletions(-) diff --git a/examples/main.tf b/examples/main.tf index 12f4e07..c1bb6c4 100644 --- a/examples/main.tf +++ b/examples/main.tf @@ -35,3 +35,4 @@ resource "vmc_sddc" "sddc_1" { delete = "180m" } } + diff --git a/vmc/data_source_vmc_connected_accounts.go b/vmc/data_source_vmc_connected_accounts.go index a15ab1c..efc3a1a 100644 --- a/vmc/data_source_vmc_connected_accounts.go +++ b/vmc/data_source_vmc_connected_accounts.go @@ -40,10 +40,6 @@ func dataSourceVmcConnectedAccountsRead(d *schema.ResourceData, m interface{}) e providerType := d.Get("provider_type").(string) accountNumber := d.Get("account_number").(string) - if orgID == "" { - return fmt.Errorf("org ID is a required parameter and cannot be empty") - } - connector := (m.(*ConnectorWrapper)).Connector defaultConnectedAccountsClient := account_link.NewDefaultConnectedAccountsClient(connector) accounts, err := defaultConnectedAccountsClient.Get(orgID, &providerType) diff --git a/vmc/data_source_vmc_customer_subnets.go b/vmc/data_source_vmc_customer_subnets.go index 3cc40c7..0e56b0b 100644 --- a/vmc/data_source_vmc_customer_subnets.go +++ b/vmc/data_source_vmc_customer_subnets.go @@ -81,10 +81,6 @@ func dataSourceVmcCustomerSubnetsRead(d *schema.ResourceData, m interface{}) err forceRefresh := d.Get("force_refresh").(bool) instanceType := d.Get("instance_type").(string) - if orgID == "" { - return fmt.Errorf("org ID is a required parameter and cannot be empty") - } - if region == "" { return fmt.Errorf("region is a required parameter and cannot be empty") } diff --git a/vmc/data_source_vmc_org.go b/vmc/data_source_vmc_org.go index 5d96467..cb85908 100644 --- a/vmc/data_source_vmc_org.go +++ b/vmc/data_source_vmc_org.go @@ -38,7 +38,6 @@ func dataSourceVmcOrgRead(d *schema.ResourceData, m interface{}) error { connector := (m.(*ConnectorWrapper)).Connector orgClient := vmc.NewDefaultOrgsClient(connector) org, err := orgClient.Get(orgID) - if err != nil { return fmt.Errorf("Error while reading org information for %s: %v", orgID, err) } diff --git a/vmc/provider.go b/vmc/provider.go index 02f7215..9a04f10 100644 --- a/vmc/provider.go +++ b/vmc/provider.go @@ -13,10 +13,12 @@ import ( type ConnectorWrapper struct { client.Connector - RefreshToken string - OrgID string - VmcURL string - CspURL string + RefreshToken string + OrgID string + VmcURL string + CspURL string + OrgName string + OrgDisplayName string } func (c *ConnectorWrapper) authenticate() error { @@ -79,6 +81,13 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) { if err != nil { return nil, fmt.Errorf("Error creating connector : %v ", err) } + connectorWrapper := &ConnectorWrapper{ + Connector: connector, + RefreshToken: refreshToken, + OrgID: orgID, + VmcURL: vmcURL, + CspURL: cspURL, + } - return &ConnectorWrapper{connector, refreshToken, orgID, vmcURL, cspURL}, nil + return connectorWrapper, nil } diff --git a/vmc/resource_vmc_sddc.go b/vmc/resource_vmc_sddc.go index 4aa55f4..e3efd8b 100644 --- a/vmc/resource_vmc_sddc.go +++ b/vmc/resource_vmc_sddc.go @@ -169,14 +169,12 @@ func resourceSddcCreate(d *schema.ResourceData, m interface{}) error { numHost := d.Get("num_host").(int) sddcType := d.Get("sddc_type").(string) - if orgID == "" { - return fmt.Errorf("org ID is a required parameter and cannot be empty") - } if sddcName == "" { return fmt.Errorf("SDDC Name is a required parameter and cannot be empty") } - if numHost == 0 { - return fmt.Errorf("number of hosts is a required parameter and cannot be 0") + + if numHost == 0 { + return fmt.Errorf("number of hosts cannot be 0") } var sddcTypePtr *string From 9132e5d103e5c1c18595afeb3cdbe3a1d4b73345 Mon Sep 17 00:00:00 2001 From: saloneerege Date: Tue, 25 Feb 2020 16:46:54 -0800 Subject: [PATCH 4/5] Added data source vmc_org in main.tf file. --- examples/main.tf | 3 +++ vmc/provider.go | 11 +---------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/examples/main.tf b/examples/main.tf index c1bb6c4..1f21274 100644 --- a/examples/main.tf +++ b/examples/main.tf @@ -2,6 +2,9 @@ provider "vmc" { refresh_token = var.api_token org_id = var.org_id } +# Empty data source defined in order to store the org display name and name in terraform state +data "vmc_org" "my_org" { +} data "vmc_connected_accounts" "my_accounts" { account_number = var.aws_account_number diff --git a/vmc/provider.go b/vmc/provider.go index 9a04f10..250f204 100644 --- a/vmc/provider.go +++ b/vmc/provider.go @@ -17,8 +17,6 @@ type ConnectorWrapper struct { OrgID string VmcURL string CspURL string - OrgName string - OrgDisplayName string } func (c *ConnectorWrapper) authenticate() error { @@ -81,13 +79,6 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) { if err != nil { return nil, fmt.Errorf("Error creating connector : %v ", err) } - connectorWrapper := &ConnectorWrapper{ - Connector: connector, - RefreshToken: refreshToken, - OrgID: orgID, - VmcURL: vmcURL, - CspURL: cspURL, - } - return connectorWrapper, nil + return &ConnectorWrapper{connector, refreshToken, orgID, vmcURL,cspURL}, nil } From 245c547b1e1e04cc1ffe5afdb4e67162cd3f3140 Mon Sep 17 00:00:00 2001 From: saloneerege Date: Wed, 26 Feb 2020 10:59:09 -0800 Subject: [PATCH 5/5] Formatted code. --- vmc/provider.go | 10 +++++----- vmc/resource_vmc_sddc.go | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/vmc/provider.go b/vmc/provider.go index 250f204..02f7215 100644 --- a/vmc/provider.go +++ b/vmc/provider.go @@ -13,10 +13,10 @@ import ( type ConnectorWrapper struct { client.Connector - RefreshToken string - OrgID string - VmcURL string - CspURL string + RefreshToken string + OrgID string + VmcURL string + CspURL string } func (c *ConnectorWrapper) authenticate() error { @@ -80,5 +80,5 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) { return nil, fmt.Errorf("Error creating connector : %v ", err) } - return &ConnectorWrapper{connector, refreshToken, orgID, vmcURL,cspURL}, nil + return &ConnectorWrapper{connector, refreshToken, orgID, vmcURL, cspURL}, nil } diff --git a/vmc/resource_vmc_sddc.go b/vmc/resource_vmc_sddc.go index e3efd8b..435ff14 100644 --- a/vmc/resource_vmc_sddc.go +++ b/vmc/resource_vmc_sddc.go @@ -173,7 +173,7 @@ func resourceSddcCreate(d *schema.ResourceData, m interface{}) error { return fmt.Errorf("SDDC Name is a required parameter and cannot be empty") } - if numHost == 0 { + if numHost == 0 { return fmt.Errorf("number of hosts cannot be 0") }