How do I stop Droplet creation request if its status is "in-progress"?

April 8, 2015 2.2k views
Ubuntu DigitalOcean API

We use API to create Droplet from snapshot, most of time we get Droplets done in 10-20 mins, but sometimes it could take hours!!.

API v2 allows to retrieve Droplet status via action id, we can check the status say after 30mins, but if it is still ‘in-progress’, we don’t want to keep checking its status because we don’t know when it will be done. If this case, how can we stop the creation request so this “new” droplet will be auto-destroyed when it is done, or the creation process will be killed by DigitalOcean?

1 Answer

There is not currently a method to stop a creation once it has been started. Those are fairly long create times you are seeing. Are you building large droplets from a snapshot image?

In a setup I built using the API with Ruby I have my initial process start a create and then spawn a second script which runs a loop checking the droplet status every 5 seconds until it returns “Active” and then updates my database. A similar method could be used which would allow you to set a flag in your database indicating a create is not needed so once the status = Active your script could proceed to delete the droplet if you have set this flag.

  • The snapshot is based on a 2GB RAM / 40G SSD droplet’s image, image size makes difference?

    We have master script that creates 5 droplets from the same image at scheduled time, 4 times a day so total 20 droplets in a day, I would say most of them are done in 10-20 mins, but some could take hours to complete.

    Every 5 droplets in a batch perform some tasks, once the tasks are done, the master script will destroy them to save the cost. So we can’t, keep checking the status and mark it as ‘active’ somehting, it must be destroyed if the tasks assigned to this batch are already completed (by other successfully created droplets in the same batch).

    We can leave it, however once it is finally completed, DO starts charging it… and master script won’t be aware until someone logs into Portal and manually destroy it.

Have another answer? Share your knowledge.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!