digitalocean / digitalocean/doctl

Implement `--wait` on all delete actions?

Open
#547 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
3.4k
Forks
496
Avg merge
1d 2h
Merged PRs (30d)
31

Description

As a follow up from #543 I am wondering if the `--wait` could be implemented in all deletes? Or I need to do some extra checks when deleting stuff, for example:
```
doctl projects list --no-header --format ID,Name
Selected project ID: 9ff79051-981b-4c89-bb84-5c33ba706b65
doctl projects resources list 9ff79051-981b-4c89-bb84-5c33ba706b65 --no-header --format URN
Found resource type volume with ID e9f4c709-b923-11e9-9e4e-0a58ac148132, removing it
doctl compute volume get e9f4c709-b923-11e9-9e4e-0a58ac148132 --no-header --format DropletIDs
doctl compute volume-action detach e9f4c709-b923-11e9-9e4e-0a58ac148132 154042592
ID Status Type Started At Completed At Resource ID Resource Type Region
736323566 in-progress detach_volume 2019-08-07 15:14:48 +0000 UTC 0 backend ams3
doctl compute volume get e9f4c709-b923-11e9-9e4e-0a58ac148132 --no-header --format DropletIDs
Waiting for detaching volume to be completed, retrying...
doctl compute volume get e9f4c709-b923-11e9-9e4e-0a58ac148132 --no-header --format DropletIDs
doctl compute volume delete e9f4c709-b923-11e9-9e4e-0a58ac148132 --force
Found resource type droplet with ID 154042765, removing it
doctl compute droplet get 154042765 --no-header --format Name
doctl compute domain records list example.org --no-header --format ID,Name
doctl compute domain records delete example.org 76885949 --force
doctl compute domain records list example.org --no-header --format ID,Name
doctl compute domain records delete example.orgl 76885951 --force
doctl compute droplet delete 154042765 --force
Found resource type droplet with ID 154042674, removing it
doctl compute droplet get 154042674 --no-header --format Name
doctl compute domain records list example.org --no-header --format ID,Name
doctl compute domain records delete example.org 76885915 --force
doctl compute domain records list example.org --no-header --format ID,Name
doctl compute domain records delete example.org 76885919 --force
doctl compute droplet delete 154042674 --force
Found resource type droplet with ID 154042592, removing it
doctl compute droplet get 154042592 --no-header --format Name
doctl compute domain records list example.org --no-header --format ID,Name
doctl compute domain records delete example.org 76885883 --force
doctl compute domain records list example.org --no-header --format ID,Name
doctl compute domain records delete example.org 76885887 --force
doctl compute droplet delete 154042592 --force
Found resource type floatingip with ID 206.189.240.120, removing it
doctl compute floating-ip delete 206.189.240.120 --force
Error: DELETE https://api.digitalocean.com/v2/floating_ips/206.189.240.120: 422 Droplet already has a pending event.
```
Here it seems the floatingip can't be deleted. I guess it is because the droplet delete is still pending/executing.

Same goes for the project delete after a retry:
```
doctl projects list --no-header --format ID,Name
Selected project ID: 9ff79051-981b-4c89-bb84-5c33ba706b65
doctl projects resources list 9ff79051-981b-4c89-bb84-5c33ba706b65 --no-header --format URN
Found resource type floatingip with ID 206.189.240.120, removing it
doctl compute floating-ip delete 206.189.240.120 --force
doctl compute domain records list example.org --no-header --format ID,Name
doctl compute domain records delete example.org 76885852 --force
doctl compute firewall list --no-header --format ID,Name
doctl compute firewall delete fe91aa45-698c-4180-8ccb-fdd749929c03 --force
doctl projects delete 9ff79051-981b-4c89-bb84-5c33ba706b65 --force
Error: DELETE https://api.digitalocean.com/v2/projects/9ff79051-981b-4c89-bb84-5c33ba706b65: 412 cannot delete a project with resources. move or remove the resources first
```
Above is a retry for cleaning up the same project after the first error. But it errors again now on project deletion. But once logged into the DigitalOcean web interface manually deletion works, so it seems also that some deletions up front are still pending.

Would it be possible to have the `--wait` implemented on all `delete` actions?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.