Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow to override resource ID for specific data source #1885

Merged
merged 4 commits into from
Jan 4, 2023

Conversation

alexott
Copy link
Contributor

@alexott alexott commented Dec 29, 2022

The DataResource function now checks if the provided schema has the field with name id and set its value as resource ID. This will allow to have uniform references between normal resources and data sources. If this change is ok, then I'll proceed with other data sources. (See hashicorp/terraform-plugin-sdk#607 for reference about definition of id attribute).

This change was already applied to the databricks_service_principal data source where old attribute (sp_id) was left for backward compatibility.

@codecov-commenter
Copy link

codecov-commenter commented Dec 29, 2022

Codecov Report

Merging #1885 (2daec42) into master (242ff84) will increase coverage by 0.00%.
The diff coverage is 100.00%.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #1885   +/-   ##
=======================================
  Coverage   90.19%   90.19%           
=======================================
  Files         143      143           
  Lines       11443    11448    +5     
=======================================
+ Hits        10321    10326    +5     
  Misses        712      712           
  Partials      410      410           
Impacted Files Coverage Δ
common/resource.go 92.85% <100.00%> (+0.19%) ⬆️
scim/data_service_principal.go 100.00% <100.00%> (ø)

common/resource.go Show resolved Hide resolved
docs/data-sources/service_principal.md Outdated Show resolved Hide resolved
The `DataResource` function now checks if the provided schema has the field with name `id`
and set its value as resource ID.  This will allow to have uniform references between
normal resources and data sources.

If this change is ok, then I'll proceed with other data sources.

See hashicorp/terraform-plugin-sdk#607 for reference.
@alexott
Copy link
Contributor Author

alexott commented Dec 30, 2022

@nfx feedback was incorporated

@nfx nfx enabled auto-merge (squash) January 3, 2023 10:38
@nfx nfx merged commit 607484c into master Jan 4, 2023
@alexott alexott deleted the data-resource-set-id branch January 4, 2023 07:34
alexott added a commit that referenced this pull request Jan 4, 2023
Also expose `id` for `databricks_cluster` & `databricks_job` data sources so it's easier
to use results.

This is a follow up for #1885
alexott added a commit that referenced this pull request Jan 4, 2023
Also expose `id` for `databricks_cluster` & `databricks_job` data sources so it's easier
to use results.

This is a follow up for #1885
alexott added a commit that referenced this pull request Jan 4, 2023
Also expose `id` for `databricks_cluster` & `databricks_job` data sources so it's easier
to use results.

This is a follow up for #1885
nfx pushed a commit that referenced this pull request Jan 5, 2023
* add search by name for `databricks_cluster` data source

Also expose `id` for `databricks_cluster` & `databricks_job` data sources so it's easier
to use results.

This is a follow up for #1885

* address review feedback
nfx added a commit that referenced this pull request Jan 10, 2023
# Version changelog

### 1.8.0

 * Added support for GCP (Public Preview) with state upgraders for [databricks_mws_workspaces](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/mws_workspaces) ([#1871](#1871), [#1886](#1886), [#1748](#1748), [#1879](#1879)).
 * Added documentation for [databricks_permission_assignment](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/permission_assignment) ([#1880](#1880)).
 * Added `azure_attributes` to clusters in [databricks_pipeline](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/pipeline) resource ([#1854](#1854)).
 * Added [databricks_instance_pool](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/instance_pool) data source ([#1907](#1907)).
 * Added [databricks_provider](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/provider) resource for Delta Sharing ([#1572](#1572)).
 * Added acceptance tests for [databricks_cluster](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/cluster) data and [databricks_sql_endpoint](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/sql_endpoint) data ([#1882](#1882)).
 * Added search by name for [databricks_cluster](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/cluster) data source ([#1901](#1901)).
 * Added support for sparse checkouts in the [databricks_repo](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/repo) ([#1869](#1869)).
 * Added `config_reference` attribute to [databricks_secret](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret) for easier reference from Spark configuration ([#1898](#1898)).
 * Added `datarbicks_directory` data source ([#1902](#1902)).
 * Extended [databricks_catalog](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/catalog) resource to support Delta Sharing Catalog ([#1887](#1887)).
 * Improved [databricks_metastore_assignment](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/metastore_assignment) resource ([#1900](#1900)).
 * Improved [databricks_grants](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/grants) error messages ([#1888](#1888)).
 * Improved [databricks_group](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/group) documentation ([#1816](#1816)).
 * Improved `data_security_mode` documentation for [databricks_cluster](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/cluster) ([#1830](#1830)).
 * Replace the incorrect `id` attribute with the correct `sp_id` in service principal data source docs example ([#1873](#1873)).
 * Use NVMe disk size for selection in the [databricks_node_type](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/node_type) data source ([#1856](#1856)).
 * Allowed to override resource ID for specific data source ([#1885](#1885)).

Experimental Resource Exporter

 * Added command-line flag to export all users and service principals ([#1893](#1893)).
 * Added emit for secret scopes from Spark Conf and Env Vars ([#1897](#1897)).
 * Fixed issue with exporting of resources with simple name ([#1891](#1891)).
 * Generate references that are matching only to a prefix ([#1890](#1890)).
 * Updated list of supported services and associated resources ([#1894](#1894)).
 * Use [databricks_group_role](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/group_role) instead of deprecated [databricks_group_instance_profile](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/group_instance_profile) ([#1905](#1905)).
 * Use `dbfs_path` as reference for init scripts in clusters ([#1892](#1892)).
 * Logging improvements ([#1895](#1895)).

Updated dependency versions:

 * Bump google.golang.org/api from 0.104.0 to 0.105.0 ([#1863](#1863)).
@nfx nfx mentioned this pull request Jan 10, 2023
nfx added a commit that referenced this pull request Jan 10, 2023
# Version changelog

### 1.8.0

 * Added support for GCP (Public Preview) with state upgraders for [databricks_mws_workspaces](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/mws_workspaces) ([#1871](#1871), [#1886](#1886), [#1748](#1748), [#1879](#1879)).
 * Added documentation for [databricks_permission_assignment](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/permission_assignment) ([#1880](#1880)).
 * Added `azure_attributes` to clusters in [databricks_pipeline](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/pipeline) resource ([#1854](#1854)).
 * Added [databricks_instance_pool](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/instance_pool) data source ([#1907](#1907)).
 * Added [databricks_provider](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/provider) resource for Delta Sharing ([#1572](#1572)).
 * Added acceptance tests for [databricks_cluster](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/cluster) data and [databricks_sql_endpoint](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/sql_endpoint) data ([#1882](#1882)).
 * Added search by name for [databricks_cluster](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/cluster) data source ([#1901](#1901)).
 * Added support for sparse checkouts in the [databricks_repo](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/repo) ([#1869](#1869)).
 * Added `config_reference` attribute to [databricks_secret](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret) for easier reference from Spark configuration ([#1898](#1898)).
 * Added `datarbicks_directory` data source ([#1902](#1902)).
 * Extended [databricks_catalog](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/catalog) resource to support Delta Sharing Catalog ([#1887](#1887)).
 * Improved [databricks_metastore_assignment](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/metastore_assignment) resource ([#1900](#1900)).
 * Improved [databricks_grants](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/grants) error messages ([#1888](#1888)).
 * Improved [databricks_group](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/group) documentation ([#1816](#1816)).
 * Improved `data_security_mode` documentation for [databricks_cluster](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/cluster) ([#1830](#1830)).
 * Replace the incorrect `id` attribute with the correct `sp_id` in service principal data source docs example ([#1873](#1873)).
 * Use NVMe disk size for selection in the [databricks_node_type](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/node_type) data source ([#1856](#1856)).
 * Allowed to override resource ID for specific data source ([#1885](#1885)).

Experimental Resource Exporter

 * Added command-line flag to export all users and service principals ([#1893](#1893)).
 * Added emit for secret scopes from Spark Conf and Env Vars ([#1897](#1897)).
 * Fixed issue with exporting of resources with simple name ([#1891](#1891)).
 * Generate references that are matching only to a prefix ([#1890](#1890)).
 * Updated list of supported services and associated resources ([#1894](#1894)).
 * Use [databricks_group_role](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/group_role) instead of deprecated [databricks_group_instance_profile](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/group_instance_profile) ([#1905](#1905)).
 * Use `dbfs_path` as reference for init scripts in clusters ([#1892](#1892)).
 * Logging improvements ([#1895](#1895)).

Updated dependency versions:

 * Bump google.golang.org/api from 0.104.0 to 0.105.0 ([#1863](#1863)).
michael-berk pushed a commit to michael-berk/terraform-provider-databricks that referenced this pull request Feb 15, 2023
* Allow to override resource ID for specific data source

The `DataResource` function now checks if the provided schema has the field with name `id`
and set its value as resource ID.  This will allow to have uniform references between
normal resources and data sources.

If this change is ok, then I'll proceed with other data sources.

See hashicorp/terraform-plugin-sdk#607 for reference.

* address PR feedback
michael-berk pushed a commit to michael-berk/terraform-provider-databricks that referenced this pull request Feb 15, 2023
…#1901)

* add search by name for `databricks_cluster` data source

Also expose `id` for `databricks_cluster` & `databricks_job` data sources so it's easier
to use results.

This is a follow up for databricks#1885

* address review feedback
michael-berk pushed a commit to michael-berk/terraform-provider-databricks that referenced this pull request Feb 15, 2023
# Version changelog

### 1.8.0

 * Added support for GCP (Public Preview) with state upgraders for [databricks_mws_workspaces](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/mws_workspaces) ([databricks#1871](databricks#1871), [databricks#1886](databricks#1886), [databricks#1748](databricks#1748), [databricks#1879](databricks#1879)).
 * Added documentation for [databricks_permission_assignment](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/permission_assignment) ([databricks#1880](databricks#1880)).
 * Added `azure_attributes` to clusters in [databricks_pipeline](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/pipeline) resource ([databricks#1854](databricks#1854)).
 * Added [databricks_instance_pool](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/instance_pool) data source ([databricks#1907](databricks#1907)).
 * Added [databricks_provider](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/provider) resource for Delta Sharing ([databricks#1572](databricks#1572)).
 * Added acceptance tests for [databricks_cluster](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/cluster) data and [databricks_sql_endpoint](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/sql_endpoint) data ([databricks#1882](databricks#1882)).
 * Added search by name for [databricks_cluster](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/cluster) data source ([databricks#1901](databricks#1901)).
 * Added support for sparse checkouts in the [databricks_repo](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/repo) ([databricks#1869](databricks#1869)).
 * Added `config_reference` attribute to [databricks_secret](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret) for easier reference from Spark configuration ([databricks#1898](databricks#1898)).
 * Added `datarbicks_directory` data source ([databricks#1902](databricks#1902)).
 * Extended [databricks_catalog](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/catalog) resource to support Delta Sharing Catalog ([databricks#1887](databricks#1887)).
 * Improved [databricks_metastore_assignment](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/metastore_assignment) resource ([databricks#1900](databricks#1900)).
 * Improved [databricks_grants](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/grants) error messages ([databricks#1888](databricks#1888)).
 * Improved [databricks_group](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/group) documentation ([databricks#1816](databricks#1816)).
 * Improved `data_security_mode` documentation for [databricks_cluster](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/cluster) ([databricks#1830](databricks#1830)).
 * Replace the incorrect `id` attribute with the correct `sp_id` in service principal data source docs example ([databricks#1873](databricks#1873)).
 * Use NVMe disk size for selection in the [databricks_node_type](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/node_type) data source ([databricks#1856](databricks#1856)).
 * Allowed to override resource ID for specific data source ([databricks#1885](databricks#1885)).

Experimental Resource Exporter

 * Added command-line flag to export all users and service principals ([databricks#1893](databricks#1893)).
 * Added emit for secret scopes from Spark Conf and Env Vars ([databricks#1897](databricks#1897)).
 * Fixed issue with exporting of resources with simple name ([databricks#1891](databricks#1891)).
 * Generate references that are matching only to a prefix ([databricks#1890](databricks#1890)).
 * Updated list of supported services and associated resources ([databricks#1894](databricks#1894)).
 * Use [databricks_group_role](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/group_role) instead of deprecated [databricks_group_instance_profile](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/group_instance_profile) ([databricks#1905](databricks#1905)).
 * Use `dbfs_path` as reference for init scripts in clusters ([databricks#1892](databricks#1892)).
 * Logging improvements ([databricks#1895](databricks#1895)).

Updated dependency versions:

 * Bump google.golang.org/api from 0.104.0 to 0.105.0 ([databricks#1863](databricks#1863)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants