canonical/multipass

delete is all-or-nothing

Open

#687 opened on Mar 19, 2019

View on GitHub
 (10 comments) (0 reactions) (0 assignees)C++ (634 forks)batch import
enhancementhelp wantedlowmedium

Repository metrics

Stars
 (6,956 stars)
PR merge metrics
 (Avg merge 16d 2h) (50 merged PRs in 30d)

Description

If I call multipass delete -p vm1 vm2 vm3, it only succeeds if all three machines exist. If one of the machines doesn't exist, the entire command aborts without doing anything.

#!/bin/bash
multipass delete -p vm1 vm2 vm3
multipass launch daily:bionic --name vm1
multipass launch daily:bionic --name vm2
multipass launch daily:bionic --name vm3

This fails if vm2 was already deleted, but the others still exist:

delete failed: The following errors occurred:
instance "vm2" does not exist
launch failed: instance "vm1" already exists                               

This becomes tedious in scripts, because you now have to delete each machine individually to make sure it succeeds:

multipass delete -p vm1
multipass delete -p vm2
multipass delete -p vm3
...

Contributor guide