sudo87 commented on code in PR #331:
URL:
https://github.com/apache/cloudstack-terraform-provider/pull/331#discussion_r3892439437
##########
cloudstack/resource_cloudstack_ipaddress.go:
##########
@@ -276,23 +276,21 @@ func resourceCloudStackIPAddressRead(d
*schema.ResourceData, meta interface{}) e
}
func resourceCloudStackIPAddressDelete(d *schema.ResourceData, meta
interface{}) error {
- if !d.Get("is_source_nat").(bool) {
- cs := meta.(*cloudstack.CloudStackClient)
-
- // Create a new parameter struct
- p := cs.Address.NewDisassociateIpAddressParams(d.Id())
-
- // Disassociate the IP address
- if _, err := cs.Address.DisassociateIpAddress(p); err != nil {
- // This is a very poor way to be told the ID does no
longer exist :(
- if strings.Contains(err.Error(), fmt.Sprintf(
- "Invalid parameter id value=%s due to incorrect
long value format, "+
- "or entity does not exist", d.Id())) {
- return nil
- }
+ cs := meta.(*cloudstack.CloudStackClient)
- return fmt.Errorf("Error disassociating IP address %s:
%s", d.Id(), err)
+ // Create a new parameter struct
+ p := cs.Address.NewDisassociateIpAddressParams(d.Id())
+
+ // Disassociate the IP address
+ if _, err := cs.Address.DisassociateIpAddress(p); err != nil {
+ // This is a very poor way to be told the ID does no longer
exist :(
+ if strings.Contains(err.Error(), fmt.Sprintf(
+ "Invalid parameter id value=%s due to incorrect long
value format, "+
+ "or entity does not exist", d.Id())) {
+ return nil
}
Review Comment:
Correct, that special-case (mapping CloudStack's "entity does not exist"
error to nil) is intentional, for idempotent deletes when the IP is already
gone. Updated the PR description to call that out explicitly rather than
implying every error is now propagated.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]