]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virStorageSourceJSONDriverParser: annotate 'format' drivers
authorPeter Krempa <pkrempa@redhat.com>
Mon, 3 Feb 2020 13:13:50 +0000 (14:13 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 10 Feb 2020 16:26:27 +0000 (17:26 +0100)
The parser was originally designed only for protocol parsers. Since
we already have 'raw' format driver in the list we'll need to be able
to parse it too. In later patches this will be used to prevent parsing
nested format drivers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/util/virstoragefile.c

index fd0069a4fa4ed7b41c612f41a534782bc57363d5..565ba08319d4aaa6ac94506f54f692a16be0c5f8 100644 (file)
@@ -3563,6 +3563,7 @@ virStorageSourceParseBackingJSONVxHS(virStorageSourcePtr src,
 
 struct virStorageSourceJSONDriverParser {
     const char *drvname;
+    bool formatdriver;
     /**
      * The callback gets a pre-allocated storage source @src and the JSON
      * object to parse. The callback shall return -1 on error and report error
@@ -3575,22 +3576,22 @@ struct virStorageSourceJSONDriverParser {
 };
 
 static const struct virStorageSourceJSONDriverParser jsonParsers[] = {
-    {"file", virStorageSourceParseBackingJSONPath, VIR_STORAGE_TYPE_FILE},
-    {"host_device", virStorageSourceParseBackingJSONPath, VIR_STORAGE_TYPE_BLOCK},
-    {"host_cdrom", virStorageSourceParseBackingJSONPath, VIR_STORAGE_TYPE_BLOCK},
-    {"http", virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_HTTP},
-    {"https", virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_HTTPS},
-    {"ftp", virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_FTP},
-    {"ftps", virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_FTPS},
-    {"tftp", virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_TFTP},
-    {"gluster", virStorageSourceParseBackingJSONGluster, 0},
-    {"iscsi", virStorageSourceParseBackingJSONiSCSI, 0},
-    {"nbd", virStorageSourceParseBackingJSONNbd, 0},
-    {"sheepdog", virStorageSourceParseBackingJSONSheepdog, 0},
-    {"ssh", virStorageSourceParseBackingJSONSSH, 0},
-    {"rbd", virStorageSourceParseBackingJSONRBD, 0},
-    {"raw", virStorageSourceParseBackingJSONRaw, 0},
-    {"vxhs", virStorageSourceParseBackingJSONVxHS, 0},
+    {"file", false, virStorageSourceParseBackingJSONPath, VIR_STORAGE_TYPE_FILE},
+    {"host_device", false, virStorageSourceParseBackingJSONPath, VIR_STORAGE_TYPE_BLOCK},
+    {"host_cdrom", false, virStorageSourceParseBackingJSONPath, VIR_STORAGE_TYPE_BLOCK},
+    {"http", false, virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_HTTP},
+    {"https", false, virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_HTTPS},
+    {"ftp", false, virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_FTP},
+    {"ftps", false, virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_FTPS},
+    {"tftp", false, virStorageSourceParseBackingJSONUri, VIR_STORAGE_NET_PROTOCOL_TFTP},
+    {"gluster", false, virStorageSourceParseBackingJSONGluster, 0},
+    {"iscsi", false, virStorageSourceParseBackingJSONiSCSI, 0},
+    {"nbd", false, virStorageSourceParseBackingJSONNbd, 0},
+    {"sheepdog", false, virStorageSourceParseBackingJSONSheepdog, 0},
+    {"ssh", false, virStorageSourceParseBackingJSONSSH, 0},
+    {"rbd", false, virStorageSourceParseBackingJSONRBD, 0},
+    {"raw", true, virStorageSourceParseBackingJSONRaw, 0},
+    {"vxhs", false, virStorageSourceParseBackingJSONVxHS, 0},
 };