提交 5f3b4a37 编写于 作者: P Peter Krempa

qemublocktest: Test backing store strings

With -blockdev libvirt provides the string which is recorded  as
'backing store' property of an image to qemu. Add testing for
qemuBlockGetBackingStoreString which generates these strings as there's
logic which determines which format to use.
Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
上级 93171b63
......@@ -184,6 +184,7 @@ struct testQemuDiskXMLToJSONImageData {
virJSONValuePtr formatprops;
virJSONValuePtr storageprops;
virJSONValuePtr storagepropssrc;
char *backingstore;
};
......@@ -210,6 +211,7 @@ testQemuDiskXMLToPropsClear(struct testQemuDiskXMLToJSONData *data)
virJSONValueFree(data->images[i].formatprops);
virJSONValueFree(data->images[i].storageprops);
virJSONValueFree(data->images[i].storagepropssrc);
g_free(data->images[i].backingstore);
}
data->nimages = 0;
VIR_FREE(data->images);
......@@ -287,6 +289,7 @@ testQemuDiskXMLToProps(const void *opaque)
}
for (n = disk->src; virStorageSourceIsBacking(n); n = n->backingStore) {
g_autofree char *backingstore = NULL;
if (testQemuDiskXMLToJSONFakeSecrets(n) < 0)
return -1;
......@@ -298,7 +301,8 @@ testQemuDiskXMLToProps(const void *opaque)
if (!(formatProps = qemuBlockStorageSourceGetBlockdevProps(n, n->backingStore)) ||
!(storageSrcOnlyProps = qemuBlockStorageSourceGetBackendProps(n, false, true, true)) ||
!(storageProps = qemuBlockStorageSourceGetBackendProps(n, false, false, true))) {
!(storageProps = qemuBlockStorageSourceGetBackendProps(n, false, false, true)) ||
!(backingstore = qemuBlockGetBackingStoreString(n, true))) {
if (!data->fail) {
VIR_TEST_VERBOSE("failed to generate qemu blockdev props");
return -1;
......@@ -314,6 +318,7 @@ testQemuDiskXMLToProps(const void *opaque)
data->images[data->nimages].formatprops = g_steal_pointer(&formatProps);
data->images[data->nimages].storageprops = g_steal_pointer(&storageProps);
data->images[data->nimages].storagepropssrc = g_steal_pointer(&storageSrcOnlyProps);
data->images[data->nimages].backingstore = g_steal_pointer(&backingstore);
data->nimages++;
}
......@@ -425,10 +430,21 @@ testQemuDiskXMLToPropsValidateFileSrcOnly(const void *opaque)
for (i = 0; i < data->nimages; i++) {
g_autofree char *jsonstr = NULL;
virBufferAddLit(&buf, "(\n");
virBufferAdjustIndent(&buf, 2);
virBufferAddLit(&buf, "source only properties:\n");
if (!(jsonstr = virJSONValueToString(data->images[i].storagepropssrc, true)))
return -1;
virBufferAdd(&buf, jsonstr, -1);
virBufferAddStr(&buf, jsonstr);
virBufferAddLit(&buf, "backing store string:\n");
virBufferAddStr(&buf, data->images[i].backingstore);
virBufferTrim(&buf, "\n");
virBufferAdjustIndent(&buf, -2);
virBufferAddLit(&buf, "\n)\n");
}
actual = virBufferContentAndReset(&buf);
......
{
"driver": "host_device",
"filename": "/dev/blah"
}
(
source only properties:
{
"driver": "host_device",
"filename": "/dev/blah"
}
backing store string:
/dev/blah
)
{
"driver": "host_device",
"filename": "/dev/blah"
}
(
source only properties:
{
"driver": "host_device",
"filename": "/dev/blah"
}
backing store string:
/dev/blah
)
{
"driver": "vvfat",
"dir": "/var/somefiles",
"floppy": false
}
(
source only properties:
{
"driver": "vvfat",
"dir": "/var/somefiles",
"floppy": false
}
backing store string:
/var/somefiles
)
{
"driver": "vvfat",
"dir": "/var/somefiles",
"floppy": true
}
(
source only properties:
{
"driver": "vvfat",
"dir": "/var/somefiles",
"floppy": true
}
backing store string:
/var/somefiles
)
{
"driver": "vvfat",
"dir": "/var/somefiles",
"floppy": false
}
(
source only properties:
{
"driver": "vvfat",
"dir": "/var/somefiles",
"floppy": false
}
backing store string:
/var/somefiles
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
backing store string:
gluster://test.org:24007/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
backing store string:
gluster://test.org:24007/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
backing store string:
gluster://test.org:24007/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
backing store string:
gluster://test.org:24007/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
backing store string:
gluster://test.org:24007/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
backing store string:
gluster://test.org:24007/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
backing store string:
gluster://test.org:24007/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/c"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/c"
}
backing store string:
/var/lib/libvirt/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
backing store string:
gluster://test.org:24007/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
backing store string:
gluster://test.org:24007/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
(
source only properties:
{
"driver": "gluster",
"volume": "images",
"path": "c",
"server": [
{
"type": "inet",
"host": "test.org",
"port": "24007"
}
]
}
backing store string:
gluster://test.org:24007/images/c
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/d"
}
backing store string:
/var/lib/libvirt/images/d
)
{
"driver": "file",
"filename": "/path/to/i.img"
}
(
source only properties:
{
"driver": "file",
"filename": "/path/to/i.img"
}
backing store string:
/path/to/i.img
)
{
"driver": "file",
"filename": "/path/to/i.img"
}
(
source only properties:
{
"driver": "file",
"filename": "/path/to/i.img"
}
backing store string:
/path/to/i.img
)
{
"driver": "file",
"filename": "/path/to/i.img"
}
(
source only properties:
{
"driver": "file",
"filename": "/path/to/i.img"
}
backing store string:
/path/to/i.img
)
{
"driver": "file",
"filename": "/path/to/i.img"
}
(
source only properties:
{
"driver": "file",
"filename": "/path/to/i.img"
}
backing store string:
/path/to/i.img
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/a"
}
backing store string:
/var/lib/libvirt/images/a
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/b"
}
backing store string:
/var/lib/libvirt/images/b
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1507297895"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1484071872"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483615252"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483605924"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483605920"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483546244"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483545901"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483545313"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483536402"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.qcow2"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1507297895"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1507297895
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1484071872"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1484071872
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483615252"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1483615252
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483605924"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1483605924
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483605920"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1483605920
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483546244"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1483546244
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483545901"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1483545901
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483545313"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1483545313
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1483536402"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1483536402
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.qcow2"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.qcow2
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1507297895"
}
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1484071872"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1507297895"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1507297895
)
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/rhel7.3.1484071872"
}
backing store string:
/var/lib/libvirt/images/rhel7.3.1484071872
)
{
"driver": "file",
"filename": "/path/to/i.img"
}
(
source only properties:
{
"driver": "file",
"filename": "/path/to/i.img"
}
backing store string:
/path/to/i.img
)
{
"driver": "file",
"filename": "/path/luks.img"
}
(
source only properties:
{
"driver": "file",
"filename": "/path/luks.img"
}
backing store string:
/path/luks.img
)
{
"driver": "file",
"filename": "/var/lib/libvirt/images/i.img"
}
(
source only properties:
{
"driver": "file",
"filename": "/var/lib/libvirt/images/i.img"
}
backing store string:
/var/lib/libvirt/images/i.img
)
{
"driver": "file",
"filename": "/path/to/i.img"
}
(
source only properties:
{
"driver": "file",
"filename": "/path/to/i.img"
}
backing store string:
/path/to/i.img
)
{
"driver": "file",
"filename": "/path/to/i.img"
}
(
source only properties:
{
"driver": "file",
"filename": "/path/to/i.img"
}
backing store string:
/path/to/i.img
)
{
"driver": "file",
"filename": "/path/to/i.img"
}
(
source only properties:
{
"driver": "file",
"filename": "/path/to/i.img"
}
backing store string:
/path/to/i.img
)
{
"driver": "nbd",
"server": {
"type": "inet",
"host": "host1.example.com",
"port": "10809"
(
source only properties:
{
"driver": "nbd",
"server": {
"type": "inet",
"host": "host1.example.com",
"port": "10809"
}
}
}
backing store string:
nbd://host1.example.com:10809
)
{
"driver": "rbd",
"pool": "rbdpool",
"image": "rbdimg",
"server": [
{
"host": "host1.example.com",
"port": "0"
},
{
"host": "host2.example.com",
"port": "0"
}
]
}
{
"driver": "iscsi",
"portal": "example.org:3260",
"target": "iscsitarget",
"lun": 1,
"transport": "tcp"
}
(
source only properties:
{
"driver": "rbd",
"pool": "rbdpool",
"image": "rbdimg",
"server": [
{
"host": "host1.example.com",
"port": "0"
},
{
"host": "host2.example.com",
"port": "0"
}
]
}
backing store string:
json:{
"driver": "rbd",
"pool": "rbdpool",
"image": "rbdimg",
"server": [
{
"host": "host1.example.com",
"port": "0"
},
{
"host": "host2.example.com",
"port": "0"
}
]
}
)
(
source only properties:
{
"driver": "iscsi",
"portal": "example.org:3260",
"target": "iscsitarget",
"lun": 1,
"transport": "tcp"
}
backing store string:
iscsi://example.org:3260/iscsitarget/1
)
{
"driver": "rbd",
"pool": "rbdpool",
"image": "rbdimg",
"server": [
{
"host": "host1.example.com",
"port": "0"
},
{
"host": "host2.example.com",
"port": "0"
}
]
}
{
"driver": "iscsi",
"portal": "example.org:3260",
"target": "iqn.2016-09.com.example:iscsitarget",
"lun": 1,
"transport": "tcp"
}
(
source only properties:
{
"driver": "rbd",
"pool": "rbdpool",
"image": "rbdimg",
"server": [
{
"host": "host1.example.com",
"port": "0"
},
{
"host": "host2.example.com",
"port": "0"
}
]
}
backing store string:
json:{
"driver": "rbd",
"pool": "rbdpool",
"image": "rbdimg",
"server": [
{
"host": "host1.example.com",
"port": "0"
},
{
"host": "host2.example.com",
"port": "0"
}
]
}
)
(
source only properties:
{
"driver": "iscsi",
"portal": "example.org:3260",
"target": "iqn.2016-09.com.example:iscsitarget",
"lun": 1,
"transport": "tcp"
}
backing store string:
iscsi://example.org:3260/iqn.2016-09.com.example%3Aiscsitarget/1
)
{
"driver": "nvme",
"device": "0000:01:00.0",
"namespace": 1
}
(
source only properties:
{
"driver": "nvme",
"device": "0000:01:00.0",
"namespace": 1
}
backing store string:
json:{
"driver": "nvme",
"device": "0000:01:00.0",
"namespace": 1
}
)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册