Skip to content

fix: remove deleted resources from state instead of erroring in Read - #347

Open
nagaboinaramgopal wants to merge 1 commit into
apache:mainfrom
nagaboinaramgopal:fix/read-remove-deleted-from-state
Open

fix: remove deleted resources from state instead of erroring in Read#347
nagaboinaramgopal wants to merge 1 commit into
apache:mainfrom
nagaboinaramgopal:fix/read-remove-deleted-from-state

Conversation

@nagaboinaramgopal

Copy link
Copy Markdown
Contributor

Description

When a resource is deleted out of band, its Read still returned the "No match found" error from GetByID, which fails the whole plan instead of letting Terraform recreate the resource. GetByID reports count 0 for a genuinely missing resource and count -1 for a transport error, so Read now clears the id and returns nil only when count is 0, and still returns the error otherwise. Applied to the resources whose Read did not already handle this: attach_volume, cluster, loadbalancer, physical_network, pod, secondary_storage, storage_pool, vlan_ip_range, and zone.

Testing

Added a unit test TestZoneReadRemovesDeletedFromState covering the zone resource as a representative case, using a stub server that returns an empty list so GetZoneByID reports count 0. It needs no live CloudStack:

go test ./cloudstack/ -run TestZoneReadRemovesDeletedFromState

Before the fix Read returns the "No match found" error; after it, Read clears the id and returns nil.

When a resource is deleted out of band, Read returned the No match found error from GetByID, failing the whole plan instead of letting Terraform recreate it. GetByID reports count 0 for a genuinely missing resource and count -1 for a transport error, so Read now clears the id and returns nil only when count is 0, and still returns the error otherwise. Applied to attach_volume, cluster, loadbalancer, physical_network, pod, secondary_storage, storage_pool, vlan_ip_range and zone. Tests cover both the deleted case (id cleared) and a transport error (id preserved).
@nagaboinaramgopal
nagaboinaramgopal force-pushed the fix/read-remove-deleted-from-state branch from 49cccc1 to abaa8a4 Compare September 7, 2026 19:57
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.

1 participant