mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-07-06 09:55:46 +00:00
util: storage: Always deflatten JSON pseudo-protocol objects
Now that the JSON deflattener is working sanely we can always attempt the deflattening so that we can then parse the tree as expected.
This commit is contained in:
parent
428d175206
commit
6d7cdec63d
@ -3249,24 +3249,22 @@ static int
|
||||
virStorageSourceParseBackingJSONInternal(virStorageSourcePtr src,
|
||||
virJSONValuePtr json)
|
||||
{
|
||||
virJSONValuePtr fixedroot = NULL;
|
||||
virJSONValuePtr deflattened = NULL;
|
||||
virJSONValuePtr file;
|
||||
const char *drvname;
|
||||
char *str = NULL;
|
||||
size_t i;
|
||||
int ret = -1;
|
||||
|
||||
if (!(file = virJSONValueObjectGetObject(json, "file"))) {
|
||||
if (!(fixedroot = virJSONValueObjectDeflatten(json)))
|
||||
goto cleanup;
|
||||
if (!(deflattened = virJSONValueObjectDeflatten(json)))
|
||||
goto cleanup;
|
||||
|
||||
if (!(file = virJSONValueObjectGetObject(fixedroot, "file"))) {
|
||||
str = virJSONValueToString(json, false);
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("JSON backing volume defintion '%s' lacks 'file' object"),
|
||||
NULLSTR(str));
|
||||
goto cleanup;
|
||||
}
|
||||
if (!(file = virJSONValueObjectGetObject(deflattened, "file"))) {
|
||||
str = virJSONValueToString(json, false);
|
||||
virReportError(VIR_ERR_INVALID_ARG,
|
||||
_("JSON backing volume defintion '%s' lacks 'file' object"),
|
||||
NULLSTR(str));
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (!(drvname = virJSONValueObjectGetString(file, "driver"))) {
|
||||
@ -3290,7 +3288,7 @@ virStorageSourceParseBackingJSONInternal(virStorageSourcePtr src,
|
||||
|
||||
cleanup:
|
||||
VIR_FREE(str);
|
||||
virJSONValueFree(fixedroot);
|
||||
virJSONValueFree(deflattened);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user