diff --git a/.changelog/5763.txt b/.changelog/5763.txt new file mode 100644 index 0000000000..0159a23b8f --- /dev/null +++ b/.changelog/5763.txt @@ -0,0 +1,3 @@ +```release-note:new-datasource +dataproc_metastore_service +``` diff --git a/google-beta/data_source_dataproc_metastore_service.go b/google-beta/data_source_dataproc_metastore_service.go new file mode 100644 index 0000000000..15dddaec5b --- /dev/null +++ b/google-beta/data_source_dataproc_metastore_service.go @@ -0,0 +1,29 @@ +package google + +import ( + "fmt" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" +) + +func dataSourceDataprocMetastoreService() *schema.Resource { + + dsSchema := datasourceSchemaFromResourceSchema(resourceDataprocMetastoreService().Schema) + addRequiredFieldsToSchema(dsSchema, "service_id") + addRequiredFieldsToSchema(dsSchema, "location") + addOptionalFieldsToSchema(dsSchema, "project") + + return &schema.Resource{ + Read: dataSourceDataprocMetastoreServiceRead, + Schema: dsSchema, + } +} + +func dataSourceDataprocMetastoreServiceRead(d *schema.ResourceData, meta interface{}) error { + id, err := replaceVars(d, meta.(*Config), "projects/{{project}}/locations/{{location}}/services/{{service_id}}") + if err != nil { + return fmt.Errorf("Error constructing id: %s", err) + } + d.SetId(id) + return resourceDataprocMetastoreServiceRead(d, meta) +} diff --git a/google-beta/data_source_dataproc_metastore_service_test.go b/google-beta/data_source_dataproc_metastore_service_test.go new file mode 100644 index 0000000000..70e5550df8 --- /dev/null +++ b/google-beta/data_source_dataproc_metastore_service_test.go @@ -0,0 +1,46 @@ +package google + +import ( + "fmt" + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" +) + +func TestAccDataprocMetastoreServiceDatasource_basic(t *testing.T) { + t.Parallel() + + name := "tf-test-" + randString(t, 10) + + vcrTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccDataprocMetastoreServiceDatasource_basic(name, "DEVELOPER"), + Check: resource.ComposeTestCheckFunc( + checkDataSourceStateMatchesResourceState("data.google_dataproc_metastore_service.my_metastore", "google_dataproc_metastore_service.my_metastore"), + ), + }, + }, + }) +} + +func testAccDataprocMetastoreServiceDatasource_basic(name, tier string) string { + return fmt.Sprintf(` +resource "google_dataproc_metastore_service" "my_metastore" { + service_id = "%s" + location = "us-central1" + tier = "%s" + + hive_metastore_config { + version = "2.3.6" + } +} + +data "google_dataproc_metastore_service" "my_metastore" { + service_id = google_dataproc_metastore_service.my_metastore.service_id + location = google_dataproc_metastore_service.my_metastore.location +} +`, name, tier) +} diff --git a/google-beta/provider.go b/google-beta/provider.go index 3455876a79..fa68711e63 100644 --- a/google-beta/provider.go +++ b/google-beta/provider.go @@ -846,6 +846,7 @@ func Provider() *schema.Provider { "google_container_engine_versions": dataSourceGoogleContainerEngineVersions(), "google_container_registry_image": dataSourceGoogleContainerImage(), "google_container_registry_repository": dataSourceGoogleContainerRepo(), + "google_dataproc_metastore_service": dataSourceDataprocMetastoreService(), "google_dns_keys": dataSourceDNSKeys(), "google_dns_managed_zone": dataSourceDnsManagedZone(), "google_dns_record_set": dataSourceDnsRecordSet(), diff --git a/website/docs/d/data_source_dataproc_metastore_service.markdown b/website/docs/d/data_source_dataproc_metastore_service.markdown new file mode 100644 index 0000000000..8a4fa5092d --- /dev/null +++ b/website/docs/d/data_source_dataproc_metastore_service.markdown @@ -0,0 +1,40 @@ +--- +subcategory: "Dataproc" +layout: "google" +page_title: "Google: google_dataproc_metastore_service" +sidebar_current: "docs-google-datasource-dataproc-metastore-service" +description: |- + Get a Dataproc Metastore Service from Google Cloud +--- + +# google\_dataproc\_metastore\_service + +Get a Dataproc Metastore service from Google Cloud by its id and location. + +~> **Warning:** This resource is in beta, and should be used with the terraform-provider-google-beta provider. +See [Provider Versions](https://terraform.io/docs/providers/google/guides/provider_versions.html) for more details on beta resources. + +## Example Usage + +```tf +data "google_dataproc_metastore_service" "foo" { + service_id = "foo-bar" + location = "global" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `service_id` - (Required) The ID of the metastore service. +* `location` - (Required) The location where the metastore service resides. + +- - - + +* `project` - (Optional) The project in which the resource belongs. If it + is not provided, the provider project is used. + +## Attributes Reference + +See [google_dataproc_metastore_service](https://www.terraform.io/docs/providers/google/r/dataproc_metastore_service.html) resource for details of all the available attributes. diff --git a/website/google.erb b/website/google.erb index f5385a0c35..11fd6a2c79 100644 --- a/website/google.erb +++ b/website/google.erb @@ -2395,6 +2395,16 @@