Paolo Bonzini <pbonz...@redhat.com> writes: > Il 02/08/2012 15:27, Markus Armbruster ha scritto: >>> > + bdev_list = qmp_query_block(NULL); >>> > + for (bdev = bdev_list; bdev; bdev = bdev->next) { >>> > + if (!strcmp(bdev->value->device, device) && >>> > + blockinfo_is_encrypted(bdev->value) && >>> > + !blockinfo_key_is_set(bdev->value)) { >>> > + hmp_change_ask_user_key(mon, bdev->value); >>> > + break; >>> > + } >>> > + } > > Is this anything that an external application can reproduce? > > Perhaps we need to keep QERR_DEVICE_ENCRYPTED even if libvirt does not > use it, or at least provide an alternative mechanism (e.g. an event) to > realize its effect.
Not sure I get you. External applications should use QMP. A sane way to change media in QMP needs to provide the key as argument. If the key is wrong, fail the change cleanly. In particular, don't eject then.