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

new datasource azurerm_extended_location_custom_location #28066

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

teowa
Copy link
Contributor

@teowa teowa commented Nov 19, 2024

Community Note

  • Please vote on this PR by adding a 👍 reaction to the original PR to help the community and maintainers prioritize for review
  • Please do not leave comments along the lines of "+1", "me too" or "any updates", they generate extra noise for PR followers and do not help prioritize for review

Description

new datasource azurerm_extended_location_custom_location

This PR also fixes the inconsistency regarding the resource name azurerm_extended_location_custom_location between the code and the documentation:

PR Checklist

  • I have followed the guidelines in our Contributing Documentation.
  • I have checked to ensure there aren't other open Pull Requests for the same update/change.
  • I have checked if my changes close any open issues. If so please include appropriate closing keywords below.
  • I have updated/added Documentation as required written in a helpful and kind way to assist users that may be unfamiliar with the resource / data source.
  • I have used a meaningful PR title to help maintainers and other users understand this change and help prevent duplicate work.
    For example: “resource_name_here - description of change e.g. adding property new_property_name_here

Changes to existing Resource / Data Source

  • I have added an explanation of what my changes do and why I'd like you to include them (This may be covered by linking to an issue above, but may benefit from additional explanation).
  • I have written new tests for my resource or datasource changes & updated any relevent documentation.
  • I have successfully run tests with my changes locally. If not, please provide details on testing challenges that prevented you running the tests.
  • (For changes that include a state migration only). I have manually tested the migration path between relevant versions of the provider.

Testing

  • My submission includes Test coverage as described in the Contribution Guide and the tests pass. (if this is not possible for any reason, please include details of why you did or could not add test coverage)

Change Log

Below please provide what should go into the changelog (if anything) conforming to the Changelog Format documented here.

  • new datasource azurerm_extended_location_custom_location

This is a (please select all that apply):

  • Bug Fix
  • New Feature (ie adding a service, resource, or data source)
  • Enhancement
  • Breaking Change

Related Issue(s)

Fixes #28744

Note

If this PR changes meaningfully during the course of review please update the title and description as required.

@teowa
Copy link
Contributor Author

teowa commented Nov 20, 2024

image

Copy link
Member

@catriona-m catriona-m left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HI @teowa thanks for submitting this. I left a couple of comments inline for you to consider. I also wanted to note that we should create a new resource file for the updated name(extended_location_custom_location_resource.go) rather than pointing to the existing resource file. Thanks!

Comment on lines 113 to 119
var model CustomLocationResourceModel
if err := metadata.Decode(&model); err != nil {
return err
}

subscriptionId := metadata.Client.Account.SubscriptionId
client := metadata.Client.ExtendedLocation.CustomLocationsClient
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
var model CustomLocationResourceModel
if err := metadata.Decode(&model); err != nil {
return err
}
subscriptionId := metadata.Client.Account.SubscriptionId
client := metadata.Client.ExtendedLocation.CustomLocationsClient
client := metadata.Client.ExtendedLocation.CustomLocationsClient
subscriptionId := metadata.Client.Account.SubscriptionId
var model CustomLocationResourceModel
if err := metadata.Decode(&model); err != nil {
return err
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

}
}

func (r CustomLocationDataSource) Attributes() map[string]*pluginsdk.Schema {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could these be ordered alphabetically?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

id := customlocations.NewCustomLocationID(subscriptionId, model.ResourceGroupName, model.Name)
resp, err := client.Get(ctx, id)
if err != nil {
return fmt.Errorf("reading %s: %+v", id, err)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
return fmt.Errorf("reading %s: %+v", id, err)
return fmt.Errorf("retrieving %s: %+v", id, err)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

ResourceGroupName: id.ResourceGroupName,
}
if model := resp.Model; model != nil {
state.Location = model.Location
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
state.Location = model.Location
state.Location = location.Normalize(model.Location)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

state.HostType = string(pointer.From(props.HostType))
state.Namespace = pointer.From(props.Namespace)

// API always returns an empty `authentication` block even it's not specified. Tracing the bug: https://github.com/Azure/azure-rest-api-specs/issues/30101
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can remove this given that this is the datasource

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@@ -144,7 +144,7 @@ service/event-hubs:
- '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_eventhub((.|\n)*)###'

service/extended-location:
- '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_extended_custom_location((.|\n)*)###'
- '### (|New or )Affected Resource\(s\)\/Data Source\(s\)((.|\n)*)azurerm_(extended_custom_location\W+|extended_location_custom_location\W+|extended_location_custom_location\W+)((.|\n)*)###'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why extended_location_custom_location\W+ twice?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The file is generated by the go generate ./internal/provider command. The duplicates should be handled within the internal/tools/generator-services/main.go file now.

@teowa
Copy link
Contributor Author

teowa commented Feb 14, 2025

image

Copy link
Member

@catriona-m catriona-m left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @teowa thanks for making the requested changes on this. On having another look through, I spotted a few minor things but once those are addressed this should be good. Thanks!

model := existing.Model

if model.Properties == nil {
return fmt.Errorf("retreiving properties for %s for update: %+v", *id, err)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
return fmt.Errorf("retreiving properties for %s for update: %+v", *id, err)
return fmt.Errorf("retrieving properties for %s for update: %+v", *id, err)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could we retain the original tests in addition to new ones so we can ensure the original resource is still working as expected?


props := customlocations.CustomLocation{
Id: pointer.To(id.ID()),
Location: model.Location,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Location: model.Location,
Location: location.Normalize(model.Location),

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

The provider hashicorp/azurerm does not support resource type "azurerm_extended_location_custom_location"
3 participants