-
Notifications
You must be signed in to change notification settings - Fork 89
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
Pass full state to GetExternalNameFn function to access field other than ID #316
Pass full state to GetExternalNameFn function to access field other than ID #316
Conversation
…han ID Signed-off-by: Sergen Yalçın <[email protected]>
pkg/controller/external_nofork.go
Outdated
if newState.ID == "" { | ||
func (n *noForkExternal) setExternalName(mg xpresource.Managed, stateValueMap map[string]interface{}) (bool, error) { | ||
id, ok := stateValueMap["id"] | ||
if !ok { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be precise, we also need to make sure that the Terraform ID is not an empty string, i.e., it may be in the map but its value could be the empty string:
if !ok { | |
if !ok || id.(string) == "" { |
, with the assumption that if the id
key exists, its value is a string.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done!
pkg/controller/external_nofork.go
Outdated
if err != nil { | ||
return false, errors.Wrapf(err, "failed to get the external-name from ID: %s", newState.ID) | ||
return false, errors.Wrapf(err, "failed to get the external-name from ID: %s", id) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit:
return false, errors.Wrapf(err, "failed to get the external-name from ID: %s", id) | |
return false, errors.Wrapf(err, "failed to compute the external-name from the state map of the resource with the ID %s", id) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done!
pkg/controller/external_nofork.go
Outdated
stateValueMap, err := n.fromInstanceStateToJSONMap(newState) | ||
if _, err := n.setExternalName(mg, stateValueMap); err != nil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's make sure we check any errors returned from n.fromInstanceStateToJSONMap
:
stateValueMap, err := n.fromInstanceStateToJSONMap(newState) | |
if _, err := n.setExternalName(mg, stateValueMap); err != nil { | |
stateValueMap, err := n.fromInstanceStateToJSONMap(newState) | |
if err != nil { | |
return managed.ExternalCreation{}, errors.Wrap(err, "failed to create the resource") | |
} | |
if _, err := n.setExternalName(mg, stateValueMap); err != nil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done!
pkg/controller/external_nofork.go
Outdated
if err != nil { | ||
return managed.ExternalCreation{}, err | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This block would be moved:
if err != nil { | |
return managed.ExternalCreation{}, err | |
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done!
- Move the error check to the correct place Signed-off-by: Sergen Yalçın <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @sergenyalcin, lgtm.
Description of your changes
This PR passes full state to GetExternalNameFn function to access field other than ID.
I have:
make reviewable
to ensure this PR is ready for review.backport release-x.y
labels to auto-backport this PR if necessary.How has this code been tested
Tested against keyVault.AccessPolicy resource in provider-azure