提交 e4c6d4ae 编写于 作者: T Tomáš Golembiovský 提交者: Peter Krempa

util: storage: add JSON backing volume parser 'raw' block driver

The 'raw' block driver in Qemu is not directly interesting from
libvirt's perspective, but it can be layered above some other block
drivers and this may be interesting for the user.

The patch adds support for the 'raw' block driver. The driver is treated
simply as a pass-through and child driver in JSON is queried to get the
necessary information.
Signed-off-by: NTomáš Golembiovský <tgolembi@redhat.com>
上级 cb4adb43
......@@ -2647,6 +2647,11 @@ virStorageSourceParseBackingColon(virStorageSourcePtr src,
}
static int
virStorageSourceParseBackingJSONInternal(virStorageSourcePtr src,
virJSONValuePtr json);
static int
virStorageSourceParseBackingJSONPath(virStorageSourcePtr src,
virJSONValuePtr json,
......@@ -2963,6 +2968,16 @@ virStorageSourceParseBackingJSONRBD(virStorageSourcePtr src,
return -1;
}
static int
virStorageSourceParseBackingJSONRaw(virStorageSourcePtr src,
virJSONValuePtr json,
int opaque ATTRIBUTE_UNUSED)
{
/* There are no interesting attributes in raw driver.
* Treat it as pass-through.
*/
return virStorageSourceParseBackingJSONInternal(src, json);
}
struct virStorageSourceJSONDriverParser {
const char *drvname;
......@@ -2985,6 +3000,7 @@ static const struct virStorageSourceJSONDriverParser jsonParsers[] = {
{"sheepdog", virStorageSourceParseBackingJSONSheepdog, 0},
{"ssh", virStorageSourceParseBackingJSONSSH, 0},
{"rbd", virStorageSourceParseBackingJSONRBD, 0},
{"raw", virStorageSourceParseBackingJSONRaw, 0},
};
......
......@@ -1496,6 +1496,12 @@ mymain(void)
"<source protocol='rbd' name='testshare'>\n"
" <host name='example.com'/>\n"
"</source>\n");
TEST_BACKING_PARSE("json:{ \"file\": { "
"\"driver\": \"raw\","
"\"file\": {"
"\"driver\": \"file\","
"\"filename\": \"/path/to/file\" } } }",
"<source file='/path/to/file'/>\n");
cleanup:
/* Final cleanup */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册