Skip to content

Commit

Permalink
[Terraform] Add new regional BigQuery location + tests
Browse files Browse the repository at this point in the history
  • Loading branch information
danawillow authored and modular-magician committed Dec 21, 2018
1 parent d5b16b6 commit c5c25f3
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 2 deletions.
2 changes: 1 addition & 1 deletion google-beta/resource_bigquery_dataset.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func resourceBigQueryDataset() *schema.Resource {
Optional: true,
ForceNew: true,
Default: "US",
ValidateFunc: validation.StringInSlice([]string{"US", "EU", "asia-northeast1", "europe-west2", "australia-southeast1"}, false),
ValidateFunc: validation.StringInSlice([]string{"US", "EU", "asia-east1", "asia-northeast1", "asia-southeast1", "australia-southeast1", "europe-north1", "europe-west2", "us-east4"}, false),
},

// defaultPartitionExpirationMs: [Optional] The default partition
Expand Down
92 changes: 92 additions & 0 deletions google-beta/resource_bigquery_dataset_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,82 @@ func TestAccBigQueryDataset_access(t *testing.T) {
})
}

func TestAccBigQueryDataset_regionalLocation(t *testing.T) {
t.Parallel()

datasetID1 := fmt.Sprintf("tf_test_%s", acctest.RandString(10))
datasetID2 := fmt.Sprintf("tf_test_%s", acctest.RandString(10))
datasetID3 := fmt.Sprintf("tf_test_%s", acctest.RandString(10))
datasetID4 := fmt.Sprintf("tf_test_%s", acctest.RandString(10))
datasetID5 := fmt.Sprintf("tf_test_%s", acctest.RandString(10))
datasetID6 := fmt.Sprintf("tf_test_%s", acctest.RandString(10))
datasetID7 := fmt.Sprintf("tf_test_%s", acctest.RandString(10))

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckBigQueryDatasetDestroy,
Steps: []resource.TestStep{
{
Config: testAccBigQueryRegionalDataset(datasetID1, "asia-east1"),
},
{
ResourceName: "google_bigquery_dataset.test",
ImportState: true,
ImportStateVerify: true,
},
{
Config: testAccBigQueryRegionalDataset(datasetID2, "asia-northeast1"),
},
{
ResourceName: "google_bigquery_dataset.test",
ImportState: true,
ImportStateVerify: true,
},
{
Config: testAccBigQueryRegionalDataset(datasetID3, "asia-southeast1"),
},
{
ResourceName: "google_bigquery_dataset.test",
ImportState: true,
ImportStateVerify: true,
},
{
Config: testAccBigQueryRegionalDataset(datasetID4, "australia-southeast1"),
},
{
ResourceName: "google_bigquery_dataset.test",
ImportState: true,
ImportStateVerify: true,
},
{
Config: testAccBigQueryRegionalDataset(datasetID5, "europe-north1"),
},
{
ResourceName: "google_bigquery_dataset.test",
ImportState: true,
ImportStateVerify: true,
},
{
Config: testAccBigQueryRegionalDataset(datasetID6, "europe-west2"),
},
{
ResourceName: "google_bigquery_dataset.test",
ImportState: true,
ImportStateVerify: true,
},
{
Config: testAccBigQueryRegionalDataset(datasetID7, "us-east4"),
},
{
ResourceName: "google_bigquery_dataset.test",
ImportState: true,
ImportStateVerify: true,
},
},
})
}

func testAccCheckBigQueryDatasetDestroy(s *terraform.State) error {
config := testAccProvider.Meta().(*Config)

Expand Down Expand Up @@ -138,6 +214,22 @@ resource "google_bigquery_dataset" "test" {
}`, datasetID)
}

func testAccBigQueryRegionalDataset(datasetID string, location string) string {
return fmt.Sprintf(`
resource "google_bigquery_dataset" "test" {
dataset_id = "%s"
friendly_name = "foo"
description = "This is a foo description"
location = "%s"
default_table_expiration_ms = 3600000
labels {
env = "foo"
default_table_expiration_ms = 3600000
}
}`, datasetID, location)
}

func testAccBigQueryDatasetWithOneAccess(datasetID string) string {
return fmt.Sprintf(`
resource "google_bigquery_dataset" "access_test" {
Expand Down
4 changes: 3 additions & 1 deletion website/docs/r/bigquery_dataset.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,9 @@ The following arguments are supported:
multi-regional location is a large geographic area, such as the United States,
that contains at least two geographic places

Possible regional values include: `asia-northeast1`
Possible regional values include: `asia-east1`, `asia-northeast1`, `asia-southeast1`
`australia-southeast1`, `europe-north1`, `europe-west2` and `us-east4`.

Possible multi-regional values:`EU` and `US`.

The default value is multi-regional location `US`.
Expand Down

0 comments on commit c5c25f3

Please sign in to comment.