Fix qvm-remove undefines domain in libvirt

- Return error if domain is not halted
- Undefine the domain in libvirt, to avoid: "Domain already exists with uuid…"
This commit is contained in:
Bahtiar `kalkin-` Gadimov 2016-06-29 12:26:18 +02:00
parent 1ff1ca37a1
commit 63a1edc274
No known key found for this signature in database
GPG Key ID: 96ED3C3BA19C3DEE

View File

@ -40,8 +40,12 @@ parser.add_argument('--just-db',
def main(args=None): # pylint: disable=missing-docstring def main(args=None): # pylint: disable=missing-docstring
args = parser.parse_args(args) args = parser.parse_args(args)
for vm in args.domains: for vm in args.domains:
if not vm.is_halted():
parser.print_error('VM {!s} not halted'.format(vm))
return 1
del args.app.domains[vm.qid] del args.app.domains[vm.qid]
args.app.save() args.app.save()
vm.libvirt_domain.undefine()
if not args.just_db: if not args.just_db:
vm.remove_from_disk() vm.remove_from_disk()