mirror of https://github.com/xemu-project/xemu.git
qemu-iotests: Rewrite 207 for blockdev-create job
This rewrites the test case 207 to work with the new x-blockdev-create job rather than the old synchronous version of the command. Most of the test cases stay the same as before (the exception being some improved 'size' options that allow distinguishing which command created the image), but in order to be able to implement proper job handling, the test case is rewritten in Python. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
4de110f8fd
commit
00af19359e
|
@ -1,9 +1,11 @@
|
||||||
#!/bin/bash
|
#!/usr/bin/env python
|
||||||
#
|
#
|
||||||
# Test ssh image creation
|
# Test ssh image creation
|
||||||
#
|
#
|
||||||
# Copyright (C) 2018 Red Hat, Inc.
|
# Copyright (C) 2018 Red Hat, Inc.
|
||||||
#
|
#
|
||||||
|
# Creator/Owner: Kevin Wolf <kwolf@redhat.com>
|
||||||
|
#
|
||||||
# This program is free software; you can redistribute it and/or modify
|
# This program is free software; you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation; either version 2 of the License, or
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
@ -18,244 +20,198 @@
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#
|
#
|
||||||
|
|
||||||
# creator
|
import iotests
|
||||||
owner=kwolf@redhat.com
|
import subprocess
|
||||||
|
import re
|
||||||
|
|
||||||
seq=`basename $0`
|
iotests.verify_image_format(supported_fmts=['raw'])
|
||||||
echo "QA output created by $seq"
|
iotests.verify_protocol(supported=['ssh'])
|
||||||
|
|
||||||
here=`pwd`
|
def filter_hash(msg):
|
||||||
status=1 # failure is the default!
|
return re.sub("'hash': '[0-9a-f]+'", "'hash': HASH", msg)
|
||||||
|
|
||||||
# get standard environment, filters and checks
|
def blockdev_create(vm, options):
|
||||||
. ./common.rc
|
result = vm.qmp_log('x-blockdev-create', job_id='job0', options=options,
|
||||||
. ./common.filter
|
filters=[iotests.filter_testfiles, filter_hash])
|
||||||
|
|
||||||
_supported_fmt raw
|
if 'return' in result:
|
||||||
_supported_proto ssh
|
assert result['return'] == {}
|
||||||
_supported_os Linux
|
vm.run_job('job0')
|
||||||
|
iotests.log("")
|
||||||
|
|
||||||
function do_run_qemu()
|
with iotests.FilePath('t.img') as disk_path, \
|
||||||
{
|
iotests.VM() as vm:
|
||||||
echo Testing: "$@"
|
|
||||||
$QEMU -nographic -qmp stdio -serial none "$@"
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
function run_qemu()
|
remote_path = iotests.remote_filename(disk_path)
|
||||||
{
|
|
||||||
do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp \
|
|
||||||
| _filter_qemu | _filter_imgfmt \
|
|
||||||
| _filter_actual_image_size
|
|
||||||
}
|
|
||||||
|
|
||||||
echo
|
#
|
||||||
echo "=== Successful image creation (defaults) ==="
|
# Successful image creation (defaults)
|
||||||
echo
|
#
|
||||||
|
iotests.log("=== Successful image creation (defaults) ===")
|
||||||
|
iotests.log("")
|
||||||
|
|
||||||
run_qemu <<EOF
|
vm.launch()
|
||||||
{ "execute": "qmp_capabilities" }
|
blockdev_create(vm, { 'driver': 'ssh',
|
||||||
{ "execute": "x-blockdev-create",
|
'location': {
|
||||||
"arguments": {
|
'path': disk_path,
|
||||||
"driver": "ssh",
|
'server': {
|
||||||
"location": {
|
'host': '127.0.0.1',
|
||||||
"path": "$TEST_IMG_FILE",
|
'port': '22'
|
||||||
"server": {
|
}
|
||||||
"host": "127.0.0.1",
|
},
|
||||||
"port": "22"
|
'size': 4194304 })
|
||||||
}
|
vm.shutdown()
|
||||||
},
|
|
||||||
"size": 4194304
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{ "execute": "quit" }
|
|
||||||
EOF
|
|
||||||
|
|
||||||
_img_info | _filter_img_info
|
iotests.img_info_log(remote_path, filter_path=disk_path)
|
||||||
echo
|
iotests.log("")
|
||||||
TEST_IMG=$TEST_IMG_FILE _img_info | _filter_img_info
|
iotests.img_info_log(disk_path)
|
||||||
|
|
||||||
echo
|
#
|
||||||
echo "=== Test host-key-check options ==="
|
# Test host-key-check options
|
||||||
echo
|
#
|
||||||
|
iotests.log("=== Test host-key-check options ===")
|
||||||
|
iotests.log("")
|
||||||
|
|
||||||
run_qemu <<EOF
|
vm.launch()
|
||||||
{ "execute": "qmp_capabilities" }
|
blockdev_create(vm, { 'driver': 'ssh',
|
||||||
{ "execute": "x-blockdev-create",
|
'location': {
|
||||||
"arguments": {
|
'path': disk_path,
|
||||||
"driver": "ssh",
|
'server': {
|
||||||
"location": {
|
'host': '127.0.0.1',
|
||||||
"path": "$TEST_IMG_FILE",
|
'port': '22'
|
||||||
"server": {
|
},
|
||||||
"host": "127.0.0.1",
|
'host-key-check': {
|
||||||
"port": "22"
|
'mode': 'none'
|
||||||
},
|
}
|
||||||
"host-key-check": {
|
},
|
||||||
"mode": "none"
|
'size': 8388608 })
|
||||||
}
|
vm.shutdown()
|
||||||
},
|
|
||||||
"size": 8388608
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{ "execute": "quit" }
|
|
||||||
EOF
|
|
||||||
|
|
||||||
_img_info | _filter_img_info
|
iotests.img_info_log(remote_path, filter_path=disk_path)
|
||||||
|
|
||||||
run_qemu <<EOF
|
vm.launch()
|
||||||
{ "execute": "qmp_capabilities" }
|
blockdev_create(vm, { 'driver': 'ssh',
|
||||||
{ "execute": "x-blockdev-create",
|
'location': {
|
||||||
"arguments": {
|
'path': disk_path,
|
||||||
"driver": "ssh",
|
'server': {
|
||||||
"location": {
|
'host': '127.0.0.1',
|
||||||
"path": "$TEST_IMG_FILE",
|
'port': '22'
|
||||||
"server": {
|
},
|
||||||
"host": "127.0.0.1",
|
'host-key-check': {
|
||||||
"port": "22"
|
'mode': 'known_hosts'
|
||||||
},
|
}
|
||||||
"host-key-check": {
|
},
|
||||||
"mode": "known_hosts"
|
'size': 4194304 })
|
||||||
}
|
vm.shutdown()
|
||||||
},
|
|
||||||
"size": 4194304
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{ "execute": "quit" }
|
|
||||||
EOF
|
|
||||||
|
|
||||||
_img_info | _filter_img_info
|
iotests.img_info_log(remote_path, filter_path=disk_path)
|
||||||
|
|
||||||
|
md5_key = subprocess.check_output(
|
||||||
|
'ssh-keyscan -t rsa 127.0.0.1 2>/dev/null | grep -v "\\^#" | ' +
|
||||||
|
'cut -d" " -f3 | base64 -d | md5sum -b | cut -d" " -f1',
|
||||||
|
shell=True).rstrip()
|
||||||
|
|
||||||
key=$(ssh-keyscan -t rsa 127.0.0.1 2>/dev/null | grep -v "\\^#" |
|
vm.launch()
|
||||||
cut -d" " -f3 | base64 -d | md5sum -b | cut -d" " -f1)
|
blockdev_create(vm, { 'driver': 'ssh',
|
||||||
|
'location': {
|
||||||
|
'path': disk_path,
|
||||||
|
'server': {
|
||||||
|
'host': '127.0.0.1',
|
||||||
|
'port': '22'
|
||||||
|
},
|
||||||
|
'host-key-check': {
|
||||||
|
'mode': 'hash',
|
||||||
|
'type': 'md5',
|
||||||
|
'hash': 'wrong',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'size': 2097152 })
|
||||||
|
blockdev_create(vm, { 'driver': 'ssh',
|
||||||
|
'location': {
|
||||||
|
'path': disk_path,
|
||||||
|
'server': {
|
||||||
|
'host': '127.0.0.1',
|
||||||
|
'port': '22'
|
||||||
|
},
|
||||||
|
'host-key-check': {
|
||||||
|
'mode': 'hash',
|
||||||
|
'type': 'md5',
|
||||||
|
'hash': md5_key,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'size': 8388608 })
|
||||||
|
vm.shutdown()
|
||||||
|
|
||||||
run_qemu <<EOF
|
iotests.img_info_log(remote_path, filter_path=disk_path)
|
||||||
{ "execute": "qmp_capabilities" }
|
|
||||||
{ "execute": "x-blockdev-create",
|
|
||||||
"arguments": {
|
|
||||||
"driver": "ssh",
|
|
||||||
"location": {
|
|
||||||
"path": "$TEST_IMG_FILE",
|
|
||||||
"server": {
|
|
||||||
"host": "127.0.0.1",
|
|
||||||
"port": "22"
|
|
||||||
},
|
|
||||||
"host-key-check": {
|
|
||||||
"mode": "hash",
|
|
||||||
"type": "md5",
|
|
||||||
"hash": "wrong"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"size": 8388608
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{ "execute": "x-blockdev-create",
|
|
||||||
"arguments": {
|
|
||||||
"driver": "ssh",
|
|
||||||
"location": {
|
|
||||||
"path": "$TEST_IMG_FILE",
|
|
||||||
"server": {
|
|
||||||
"host": "127.0.0.1",
|
|
||||||
"port": "22"
|
|
||||||
},
|
|
||||||
"host-key-check": {
|
|
||||||
"mode": "hash",
|
|
||||||
"type": "md5",
|
|
||||||
"hash": "$key"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"size": 8388608
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{ "execute": "quit" }
|
|
||||||
EOF
|
|
||||||
|
|
||||||
_img_info | _filter_img_info
|
sha1_key = subprocess.check_output(
|
||||||
|
'ssh-keyscan -t rsa 127.0.0.1 2>/dev/null | grep -v "\\^#" | ' +
|
||||||
|
'cut -d" " -f3 | base64 -d | sha1sum -b | cut -d" " -f1',
|
||||||
|
shell=True).rstrip()
|
||||||
|
|
||||||
|
vm.launch()
|
||||||
|
blockdev_create(vm, { 'driver': 'ssh',
|
||||||
|
'location': {
|
||||||
|
'path': disk_path,
|
||||||
|
'server': {
|
||||||
|
'host': '127.0.0.1',
|
||||||
|
'port': '22'
|
||||||
|
},
|
||||||
|
'host-key-check': {
|
||||||
|
'mode': 'hash',
|
||||||
|
'type': 'sha1',
|
||||||
|
'hash': 'wrong',
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'size': 2097152 })
|
||||||
|
blockdev_create(vm, { 'driver': 'ssh',
|
||||||
|
'location': {
|
||||||
|
'path': disk_path,
|
||||||
|
'server': {
|
||||||
|
'host': '127.0.0.1',
|
||||||
|
'port': '22'
|
||||||
|
},
|
||||||
|
'host-key-check': {
|
||||||
|
'mode': 'hash',
|
||||||
|
'type': 'sha1',
|
||||||
|
'hash': sha1_key,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
'size': 4194304 })
|
||||||
|
vm.shutdown()
|
||||||
|
|
||||||
key=$(ssh-keyscan -t rsa 127.0.0.1 2>/dev/null | grep -v "\\^#" |
|
iotests.img_info_log(remote_path, filter_path=disk_path)
|
||||||
cut -d" " -f3 | base64 -d | sha1sum -b | cut -d" " -f1)
|
|
||||||
|
|
||||||
run_qemu <<EOF
|
#
|
||||||
{ "execute": "qmp_capabilities" }
|
# Invalid path and user
|
||||||
{ "execute": "x-blockdev-create",
|
#
|
||||||
"arguments": {
|
iotests.log("=== Invalid path and user ===")
|
||||||
"driver": "ssh",
|
iotests.log("")
|
||||||
"location": {
|
|
||||||
"path": "$TEST_IMG_FILE",
|
|
||||||
"server": {
|
|
||||||
"host": "127.0.0.1",
|
|
||||||
"port": "22"
|
|
||||||
},
|
|
||||||
"host-key-check": {
|
|
||||||
"mode": "hash",
|
|
||||||
"type": "sha1",
|
|
||||||
"hash": "wrong"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"size": 4194304
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{ "execute": "x-blockdev-create",
|
|
||||||
"arguments": {
|
|
||||||
"driver": "ssh",
|
|
||||||
"location": {
|
|
||||||
"path": "$TEST_IMG_FILE",
|
|
||||||
"server": {
|
|
||||||
"host": "127.0.0.1",
|
|
||||||
"port": "22"
|
|
||||||
},
|
|
||||||
"host-key-check": {
|
|
||||||
"mode": "hash",
|
|
||||||
"type": "sha1",
|
|
||||||
"hash": "$key"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"size": 4194304
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{ "execute": "quit" }
|
|
||||||
EOF
|
|
||||||
|
|
||||||
_img_info | _filter_img_info
|
vm.launch()
|
||||||
|
blockdev_create(vm, { 'driver': 'ssh',
|
||||||
echo
|
'location': {
|
||||||
echo "=== Invalid path and user ==="
|
'path': '/this/is/not/an/existing/path',
|
||||||
echo
|
'server': {
|
||||||
|
'host': '127.0.0.1',
|
||||||
run_qemu <<EOF
|
'port': '22'
|
||||||
{ "execute": "qmp_capabilities" }
|
},
|
||||||
{ "execute": "x-blockdev-create",
|
'host-key-check': {
|
||||||
"arguments": {
|
'mode': 'none'
|
||||||
"driver": "ssh",
|
}
|
||||||
"location": {
|
},
|
||||||
"path": "/this/is/not/an/existing/path",
|
'size': 4194304 })
|
||||||
"server": {
|
blockdev_create(vm, { 'driver': 'ssh',
|
||||||
"host": "127.0.0.1",
|
'location': {
|
||||||
"port": "22"
|
'path': disk_path,
|
||||||
}
|
'user': 'invalid user',
|
||||||
},
|
'server': {
|
||||||
"size": 4194304
|
'host': '127.0.0.1',
|
||||||
}
|
'port': '22'
|
||||||
}
|
},
|
||||||
{ "execute": "x-blockdev-create",
|
'host-key-check': {
|
||||||
"arguments": {
|
'mode': 'none'
|
||||||
"driver": "ssh",
|
}
|
||||||
"location": {
|
},
|
||||||
"path": "$TEST_IMG_FILE",
|
'size': 4194304 })
|
||||||
"user": "invalid user",
|
vm.shutdown()
|
||||||
"server": {
|
|
||||||
"host": "127.0.0.1",
|
|
||||||
"port": "22"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"size": 4194304
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{ "execute": "quit" }
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# success, all done
|
|
||||||
echo "*** done"
|
|
||||||
rm -f $seq.full
|
|
||||||
status=0
|
|
||||||
|
|
|
@ -1,75 +1,80 @@
|
||||||
QA output created by 207
|
|
||||||
|
|
||||||
=== Successful image creation (defaults) ===
|
=== Successful image creation (defaults) ===
|
||||||
|
|
||||||
Testing:
|
{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
|
||||||
QMP_VERSION
|
{u'return': {}}
|
||||||
{"return": {}}
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
||||||
{"return": {}}
|
{u'return': {}}
|
||||||
{"return": {}}
|
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}}
|
|
||||||
|
|
||||||
image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_DIR/t.IMGFMT"}}
|
image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_IMG"}}
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 4.0M (4194304 bytes)
|
virtual size: 4.0M (4194304 bytes)
|
||||||
|
|
||||||
image: TEST_DIR/t.IMGFMT
|
|
||||||
|
image: TEST_IMG
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 4.0M (4194304 bytes)
|
virtual size: 4.0M (4194304 bytes)
|
||||||
|
|
||||||
=== Test host-key-check options ===
|
=== Test host-key-check options ===
|
||||||
|
|
||||||
Testing:
|
{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'mode': 'none'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 8388608}}}
|
||||||
QMP_VERSION
|
{u'return': {}}
|
||||||
{"return": {}}
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
||||||
{"return": {}}
|
{u'return': {}}
|
||||||
{"return": {}}
|
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}}
|
|
||||||
|
|
||||||
image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_DIR/t.IMGFMT"}}
|
image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_IMG"}}
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 8.0M (8388608 bytes)
|
virtual size: 8.0M (8388608 bytes)
|
||||||
Testing:
|
|
||||||
QMP_VERSION
|
|
||||||
{"return": {}}
|
|
||||||
{"return": {}}
|
|
||||||
{"return": {}}
|
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}}
|
|
||||||
|
|
||||||
image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_DIR/t.IMGFMT"}}
|
{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'mode': 'known_hosts'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
|
||||||
|
{u'return': {}}
|
||||||
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
||||||
|
{u'return': {}}
|
||||||
|
|
||||||
|
image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_IMG"}}
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 4.0M (4194304 bytes)
|
virtual size: 4.0M (4194304 bytes)
|
||||||
Testing:
|
|
||||||
QMP_VERSION
|
|
||||||
{"return": {}}
|
|
||||||
{"error": {"class": "GenericError", "desc": "remote host key does not match host_key_check 'wrong'"}}
|
|
||||||
{"return": {}}
|
|
||||||
{"return": {}}
|
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}}
|
|
||||||
|
|
||||||
image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_DIR/t.IMGFMT"}}
|
{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': 'wrong', 'type': 'md5', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 2097152}}}
|
||||||
|
{u'return': {}}
|
||||||
|
Job failed: remote host key does not match host_key_check 'wrong'
|
||||||
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
||||||
|
{u'return': {}}
|
||||||
|
|
||||||
|
{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': HASH, 'type': 'md5', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 8388608}}}
|
||||||
|
{u'return': {}}
|
||||||
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
||||||
|
{u'return': {}}
|
||||||
|
|
||||||
|
image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_IMG"}}
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 8.0M (8388608 bytes)
|
virtual size: 8.0M (8388608 bytes)
|
||||||
Testing:
|
|
||||||
QMP_VERSION
|
|
||||||
{"return": {}}
|
|
||||||
{"error": {"class": "GenericError", "desc": "remote host key does not match host_key_check 'wrong'"}}
|
|
||||||
{"return": {}}
|
|
||||||
{"return": {}}
|
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}}
|
|
||||||
|
|
||||||
image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_DIR/t.IMGFMT"}}
|
{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': 'wrong', 'type': 'sha1', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 2097152}}}
|
||||||
|
{u'return': {}}
|
||||||
|
Job failed: remote host key does not match host_key_check 'wrong'
|
||||||
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
||||||
|
{u'return': {}}
|
||||||
|
|
||||||
|
{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'hash': HASH, 'type': 'sha1', 'mode': 'hash'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
|
||||||
|
{u'return': {}}
|
||||||
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
||||||
|
{u'return': {}}
|
||||||
|
|
||||||
|
image: json:{"driver": "IMGFMT", "file": {"server.host": "127.0.0.1", "server.port": "22", "driver": "ssh", "path": "TEST_IMG"}}
|
||||||
file format: IMGFMT
|
file format: IMGFMT
|
||||||
virtual size: 4.0M (4194304 bytes)
|
virtual size: 4.0M (4194304 bytes)
|
||||||
|
|
||||||
=== Invalid path and user ===
|
=== Invalid path and user ===
|
||||||
|
|
||||||
Testing:
|
{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': '/this/is/not/an/existing/path', 'host-key-check': {'mode': 'none'}, 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
|
||||||
QMP_VERSION
|
{u'return': {}}
|
||||||
{"return": {}}
|
Job failed: failed to open remote file '/this/is/not/an/existing/path': Failed opening remote file (libssh2 error code: -31)
|
||||||
{"error": {"class": "GenericError", "desc": "failed to open remote file '/this/is/not/an/existing/path': Failed opening remote file (libssh2 error code: -31)"}}
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
||||||
{"error": {"class": "GenericError", "desc": "failed to authenticate using publickey authentication and the identities held by your ssh-agent"}}
|
{u'return': {}}
|
||||||
{"return": {}}
|
|
||||||
{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}}
|
{'execute': 'x-blockdev-create', 'arguments': {'job_id': 'job0', 'options': {'driver': 'ssh', 'location': {'path': 'TEST_DIR/PID-t.img', 'host-key-check': {'mode': 'none'}, 'user': 'invalid user', 'server': {'host': '127.0.0.1', 'port': '22'}}, 'size': 4194304}}}
|
||||||
|
{u'return': {}}
|
||||||
|
Job failed: failed to authenticate using publickey authentication and the identities held by your ssh-agent
|
||||||
|
{'execute': 'job-dismiss', 'arguments': {'id': 'job0'}}
|
||||||
|
{u'return': {}}
|
||||||
|
|
||||||
*** done
|
|
||||||
|
|
|
@ -205,11 +205,11 @@
|
||||||
204 rw auto quick
|
204 rw auto quick
|
||||||
205 rw auto quick
|
205 rw auto quick
|
||||||
206 rw auto
|
206 rw auto
|
||||||
# TODO The following commented out tests need to be reworked to work
|
207 rw auto
|
||||||
# with the x-blockdev-create job
|
|
||||||
#207 rw auto
|
|
||||||
208 rw auto quick
|
208 rw auto quick
|
||||||
209 rw auto quick
|
209 rw auto quick
|
||||||
|
# TODO The following commented out tests need to be reworked to work
|
||||||
|
# with the x-blockdev-create job
|
||||||
#210 rw auto
|
#210 rw auto
|
||||||
#211 rw auto quick
|
#211 rw auto quick
|
||||||
#212 rw auto quick
|
#212 rw auto quick
|
||||||
|
|
Loading…
Reference in New Issue