| 1 | Creating bottom <- middle <- top backing file chain... |
| 2 | Starting VM... |
| 3 | === Testing drive-backup === |
| 4 | {"execute": "blockdev-add", "arguments": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top"}, "node-name": "drv0"}} |
| 5 | {"return": {}} |
| 6 | {"execute": "drive-backup", "arguments": {"device": "drv0", "format": "IMGFMT", "job-id": "job0", "sync": "none", "target": "TEST_DIR/PID-target"}} |
| 7 | {"return": {}} |
| 8 | {"execute": "blockdev-del", "arguments": {"node-name": "drv0"}} |
| 9 | {"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: node is used as backing hd of 'NODE_NAME'"}} |
| 10 | {"execute": "block-job-cancel", "arguments": {"device": "job0"}} |
| 11 | {"return": {}} |
| 12 | {"data": {"device": "job0", "len": 1048576, "offset": 0, "speed": 0, "type": "backup"}, "event": "BLOCK_JOB_CANCELLED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} |
| 13 | {"execute": "blockdev-del", "arguments": {"node-name": "drv0"}} |
| 14 | {"return": {}} |
| 15 | |
| 16 | === Testing drive-mirror === |
| 17 | {"execute": "blockdev-add", "arguments": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top"}, "node-name": "drv0"}} |
| 18 | {"return": {}} |
| 19 | {"execute": "drive-mirror", "arguments": {"device": "drv0", "format": "IMGFMT", "job-id": "job0", "sync": "none", "target": "TEST_DIR/PID-target"}} |
| 20 | {"return": {}} |
| 21 | {"data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "mirror"}, "event": "BLOCK_JOB_READY", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} |
| 22 | {"execute": "blockdev-del", "arguments": {"node-name": "drv0"}} |
| 23 | {"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block device is in use by block job: mirror"}} |
| 24 | {"execute": "block-job-cancel", "arguments": {"device": "job0"}} |
| 25 | {"return": {}} |
| 26 | {"data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "mirror"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} |
| 27 | {"execute": "blockdev-del", "arguments": {"node-name": "drv0"}} |
| 28 | {"return": {}} |
| 29 | |
| 30 | === Testing active block-commit === |
| 31 | {"execute": "blockdev-add", "arguments": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top"}, "node-name": "drv0"}} |
| 32 | {"return": {}} |
| 33 | {"execute": "block-commit", "arguments": {"device": "drv0", "job-id": "job0"}} |
| 34 | {"return": {}} |
| 35 | {"data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "commit"}, "event": "BLOCK_JOB_READY", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} |
| 36 | {"execute": "blockdev-del", "arguments": {"node-name": "drv0"}} |
| 37 | {"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block device is in use by block job: commit"}} |
| 38 | {"execute": "block-job-cancel", "arguments": {"device": "job0"}} |
| 39 | {"return": {}} |
| 40 | {"data": {"device": "job0", "len": 0, "offset": 0, "speed": 0, "type": "commit"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} |
| 41 | {"execute": "blockdev-del", "arguments": {"node-name": "drv0"}} |
| 42 | {"return": {}} |
| 43 | |
| 44 | === Testing non-active block-commit === |
| 45 | {"execute": "blockdev-add", "arguments": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top"}, "node-name": "drv0"}} |
| 46 | {"return": {}} |
| 47 | {"execute": "block-commit", "arguments": {"device": "drv0", "job-id": "job0", "speed": 1, "top": "TEST_DIR/PID-middle"}} |
| 48 | {"return": {}} |
| 49 | {"execute": "blockdev-del", "arguments": {"node-name": "drv0"}} |
| 50 | {"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block device is in use by block job: commit"}} |
| 51 | {"execute": "block-job-cancel", "arguments": {"device": "job0"}} |
| 52 | {"return": {}} |
| 53 | {"data": {"device": "job0", "len": 1048576, "offset": 524288, "speed": 1, "type": "commit"}, "event": "BLOCK_JOB_CANCELLED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} |
| 54 | {"execute": "blockdev-del", "arguments": {"node-name": "drv0"}} |
| 55 | {"return": {}} |
| 56 | |
| 57 | === Testing block-stream === |
| 58 | {"execute": "blockdev-add", "arguments": {"driver": "IMGFMT", "file": {"driver": "file", "filename": "TEST_DIR/PID-top"}, "node-name": "drv0"}} |
| 59 | {"return": {}} |
| 60 | {"execute": "block-stream", "arguments": {"device": "drv0", "job-id": "job0", "speed": 1}} |
| 61 | {"return": {}} |
| 62 | {"execute": "blockdev-del", "arguments": {"node-name": "drv0"}} |
| 63 | {"error": {"class": "GenericError", "desc": "Node 'drv0' is busy: block device is in use by block job: stream"}} |
| 64 | {"execute": "block-job-cancel", "arguments": {"device": "job0"}} |
| 65 | {"return": {}} |
| 66 | {"data": {"device": "job0", "len": 1048576, "offset": 524288, "speed": 1, "type": "stream"}, "event": "BLOCK_JOB_CANCELLED", "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} |
| 67 | {"execute": "blockdev-del", "arguments": {"node-name": "drv0"}} |
| 68 | {"return": {}} |
| 69 |