mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
qemublocktest: Add test cases for handling bitmaps during block-copy
Test both 'basic' and 'snapshots' cases on shallow and deep copy modes. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
7bfff40fdf
commit
5f2fdcc867
@ -1346,6 +1346,11 @@ mymain(void)
|
|||||||
TEST_BITMAP_BLOCKCOPY("empty-shallow", true, "empty");
|
TEST_BITMAP_BLOCKCOPY("empty-shallow", true, "empty");
|
||||||
TEST_BITMAP_BLOCKCOPY("empty-deep", false, "empty");
|
TEST_BITMAP_BLOCKCOPY("empty-deep", false, "empty");
|
||||||
|
|
||||||
|
TEST_BITMAP_BLOCKCOPY("basic-shallow", true, "basic");
|
||||||
|
TEST_BITMAP_BLOCKCOPY("basic-deep", false, "basic");
|
||||||
|
|
||||||
|
TEST_BITMAP_BLOCKCOPY("snapshots-shallow", true, "snapshots");
|
||||||
|
TEST_BITMAP_BLOCKCOPY("snapshots-deep", false, "snapshots");
|
||||||
|
|
||||||
#define TEST_BITMAP_BLOCKCOMMIT(testname, topimg, baseimg, ndf) \
|
#define TEST_BITMAP_BLOCKCOMMIT(testname, topimg, baseimg, ndf) \
|
||||||
do {\
|
do {\
|
||||||
|
144
tests/qemublocktestdata/bitmapblockcopy/basic-deep-out.json
Normal file
144
tests/qemublocktestdata/bitmapblockcopy/basic-deep-out.json
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "a",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "a",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "b",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "b",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "c",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "c",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "d",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "d",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "current",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "current",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "current"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-remove",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
144
tests/qemublocktestdata/bitmapblockcopy/basic-shallow-out.json
Normal file
144
tests/qemublocktestdata/bitmapblockcopy/basic-shallow-out.json
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "a",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "a",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "b",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "b",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "c",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "c",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "d",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "d",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "current",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "current",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "current"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-remove",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
180
tests/qemublocktestdata/bitmapblockcopy/snapshots-deep-out.json
Normal file
180
tests/qemublocktestdata/bitmapblockcopy/snapshots-deep-out.json
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "current",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "current",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "current"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "c",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "c",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "libvirt-2-format",
|
||||||
|
"name": "c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "libvirt-3-format",
|
||||||
|
"name": "c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "b",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "b",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "libvirt-2-format",
|
||||||
|
"name": "b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "libvirt-3-format",
|
||||||
|
"name": "b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "a",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "a",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "libvirt-2-format",
|
||||||
|
"name": "a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "libvirt-3-format",
|
||||||
|
"name": "a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "libvirt-4-format",
|
||||||
|
"name": "a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "libvirt-5-format",
|
||||||
|
"name": "a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "d",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "d",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "libvirt-2-format",
|
||||||
|
"name": "d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-remove",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
@ -0,0 +1,144 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "current",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "current",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "current"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "c",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "c",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "b",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "b",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "a",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "a",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-add",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "d",
|
||||||
|
"persistent": true,
|
||||||
|
"disabled": false,
|
||||||
|
"granularity": 65536
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-merge",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"target": "d",
|
||||||
|
"bitmaps": [
|
||||||
|
{
|
||||||
|
"node": "libvirt-1-format",
|
||||||
|
"name": "d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "block-dirty-bitmap-remove",
|
||||||
|
"data": {
|
||||||
|
"node": "mirror-format-node",
|
||||||
|
"name": "libvirt-tmp-activewrite"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
Loading…
x
Reference in New Issue
Block a user