diff options
author | 2009-12-14 17:08:17 +0200 | |
---|---|---|
committer | 2009-12-14 17:08:17 +0200 | |
commit | dae8b87a625cb36abd86e2549e8594b677193b4e (patch) | |
tree | 53b892f1c3c4118e177149833095be19d800c950 | |
parent | Merge commit '0ea5709a32085f7d14901a09d12bd35f9b267607' into stable-0.12-merge (diff) | |
parent | monitor: Introduce 'block_passwd' command (diff) | |
download | qemu-kvm-dae8b87a625cb36abd86e2549e8594b677193b4e.tar.gz qemu-kvm-dae8b87a625cb36abd86e2549e8594b677193b4e.tar.bz2 qemu-kvm-dae8b87a625cb36abd86e2549e8594b677193b4e.zip |
Merge commit 'b3dfdb5a3bae5fb3170397440dfebd579a3fcb04' into stable-0.12-merge
* commit 'b3dfdb5a3bae5fb3170397440dfebd579a3fcb04':
monitor: Introduce 'block_passwd' command
QError: Add class for invalid passwords
Conflicts:
qemu-monitor.hx
Signed-off-by: Avi Kivity <avi@redhat.com>
-rw-r--r-- | monitor.c | 16 | ||||
-rw-r--r-- | qemu-monitor.hx | 14 | ||||
-rw-r--r-- | qerror.c | 4 | ||||
-rw-r--r-- | qerror.h | 3 |
4 files changed, 37 insertions, 0 deletions
@@ -801,6 +801,22 @@ static void do_eject(Monitor *mon, const QDict *qdict, QObject **ret_data) eject_device(mon, bs, force); } +static void do_block_set_passwd(Monitor *mon, const QDict *qdict, + QObject **ret_data) +{ + BlockDriverState *bs; + + bs = bdrv_find(qdict_get_str(qdict, "device")); + if (!bs) { + qemu_error_new(QERR_DEVICE_NOT_FOUND, qdict_get_str(qdict, "device")); + return; + } + + if (bdrv_set_key(bs, qdict_get_str(qdict, "password")) < 0) { + qemu_error_new(QERR_INVALID_PASSWORD); + } +} + static void do_change_block(Monitor *mon, const char *device, const char *filename, const char *fmt) { diff --git a/qemu-monitor.hx b/qemu-monitor.hx index 2b14802d7..fdcdaa498 100644 --- a/qemu-monitor.hx +++ b/qemu-monitor.hx @@ -1048,6 +1048,20 @@ used by another monitor command. ETEXI { + .name = "block_passwd", + .args_type = "device:B,password:s", + .params = "block_passwd device password", + .help = "set the password of encrypted block devices", + .user_print = monitor_user_noop, + .mhandler.cmd_new = do_block_set_passwd, + }, + +STEXI +@item block_passwd @var{device} @var{password} +Set the encrypted device @var{device} password to @var{password} +ETEXI + + { .name = "cpu_set", .args_type = "cpu:i,state:s", .params = "cpu [online|offline]", @@ -57,6 +57,10 @@ static const QErrorStringTable qerror_table[] = { .desc = "Invalid parameter type, expected: %(expected)", }, { + .error_fmt = QERR_INVALID_PASSWORD, + .desc = "The entered password is invalid", + }, + { .error_fmt = QERR_KVM_MISSING_CAP, .desc = "Using KVM without %(capability), %(feature) unavailable", }, @@ -50,6 +50,9 @@ QError *qobject_to_qerror(const QObject *obj); #define QERR_INVALID_PARAMETER_TYPE \ "{ 'class': 'InvalidParameterType', 'data': { 'name': %s,'expected': %s } }" +#define QERR_INVALID_PASSWORD \ + "{ 'class': 'InvalidPassword', 'data': {} }" + #define QERR_KVM_MISSING_CAP \ "{ 'class': 'KVMMissingCap', 'data': { 'capability': %s, 'feature': %s } }" |