* {type:"unix", socket:"/tmp/glusterd.socket"}, ...]}
*/
if (virJSONValueObjectCreate(&props,
- "s:driver", "gluster",
"s:volume", src->volume,
"s:path", src->path,
"a:server", &servers, NULL) < 0)
qemuBlockStorageSourceGetVxHSProps(virStorageSourcePtr src,
bool onlytarget)
{
- const char *protocol = virStorageNetProtocolTypeToString(src->protocol);
VIR_AUTOPTR(virJSONValue) server = NULL;
const char *tlsAlias = src->tlsAlias;
virJSONValuePtr ret = NULL;
* server:{type:"tcp", host:"1.2.3.4", port:9999}}
*/
ignore_value(virJSONValueObjectCreate(&ret,
- "s:driver", protocol,
"S:tls-creds", tlsAlias,
"s:vdisk-id", src->path,
"a:server", &server, NULL));
virJSONValuePtr ret = NULL;
VIR_AUTOPTR(virURI) uri = NULL;
VIR_AUTOFREE(char *) uristr = NULL;
- const char *driver;
/**
* Common options:
* sslverify
*/
- driver = virStorageNetProtocolTypeToString(src->protocol);
if (!(uri = qemuBlockStorageSourceGetURI(src)))
return NULL;
}
ignore_value(virJSONValueObjectCreate(&ret,
- "s:driver", driver,
"s:url", uristr,
"S:username", username,
"S:password-secret", passwordalias,
bool onlytarget)
{
qemuDomainStorageSourcePrivatePtr srcPriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(src);
- const char *protocol = virStorageNetProtocolTypeToString(src->protocol);
VIR_AUTOFREE(char *) target = NULL;
char *lunStr = NULL;
char *username = NULL;
}
ignore_value(virJSONValueObjectCreate(&ret,
- "s:driver", protocol,
"s:portal", portal,
"s:target", target,
"u:lun", lun,
tlsAlias = NULL;
if (virJSONValueObjectCreate(&ret,
- "s:driver", "nbd",
"a:server", &serverprops,
"S:export", src->path,
"S:tls-creds", tlsAlias,
}
if (virJSONValueObjectCreate(&ret,
- "s:driver", "rbd",
"s:pool", src->volume,
"s:image", src->path,
"S:snapshot", src->snapshot,
/* libvirt does not support the 'snap-id' and 'tag' properties */
if (virJSONValueObjectCreate(&ret,
- "s:driver", "sheepdog",
"a:server", &serverprops,
"s:vdi", src->path,
NULL) < 0)
username = src->auth->username;
if (virJSONValueObjectCreate(&ret,
- "s:driver", "ssh",
"s:path", src->path,
"a:server", &serverprops,
"S:user", username,
qemuBlockStorageSourceGetFileProps(virStorageSourcePtr src,
bool onlytarget)
{
- const char *driver = "file";
const char *iomode = NULL;
const char *prManagerAlias = NULL;
virJSONValuePtr ret = NULL;
- if (virStorageSourceIsBlockLocal(src)) {
- if (src->hostcdrom)
- driver = "host_cdrom";
- else
- driver = "host_device";
- }
-
if (!onlytarget) {
if (src->pr)
prManagerAlias = src->pr->mgralias;
}
ignore_value(virJSONValueObjectCreate(&ret,
- "s:driver", driver,
"s:filename", src->path,
"S:aio", iomode,
"S:pr-manager", prManagerAlias,
{
int actualType = virStorageSourceGetActualType(src);
VIR_AUTOPTR(virJSONValue) fileprops = NULL;
+ const char *driver = NULL;
switch ((virStorageType)actualType) {
case VIR_STORAGE_TYPE_BLOCK:
case VIR_STORAGE_TYPE_FILE:
+ if (virStorageSourceIsBlockLocal(src)) {
+ if (src->hostcdrom)
+ driver = "host_cdrom";
+ else
+ driver = "host_device";
+ } else {
+ driver = "file";
+ }
+
if (!(fileprops = qemuBlockStorageSourceGetFileProps(src, onlytarget)))
return NULL;
break;
case VIR_STORAGE_TYPE_NETWORK:
switch ((virStorageNetProtocol) src->protocol) {
case VIR_STORAGE_NET_PROTOCOL_GLUSTER:
+ driver = "gluster";
if (!(fileprops = qemuBlockStorageSourceGetGlusterProps(src, legacy, onlytarget)))
return NULL;
break;
case VIR_STORAGE_NET_PROTOCOL_VXHS:
+ driver = "vxhs";
if (!(fileprops = qemuBlockStorageSourceGetVxHSProps(src, onlytarget)))
return NULL;
break;
case VIR_STORAGE_NET_PROTOCOL_FTP:
case VIR_STORAGE_NET_PROTOCOL_FTPS:
case VIR_STORAGE_NET_PROTOCOL_TFTP:
+ driver = virStorageNetProtocolTypeToString(src->protocol);
if (!(fileprops = qemuBlockStorageSourceGetCURLProps(src, onlytarget)))
return NULL;
break;
case VIR_STORAGE_NET_PROTOCOL_ISCSI:
+ driver = "iscsi";
if (!(fileprops = qemuBlockStorageSourceGetISCSIProps(src, onlytarget)))
return NULL;
break;
case VIR_STORAGE_NET_PROTOCOL_NBD:
+ driver = "nbd";
if (!(fileprops = qemuBlockStorageSourceGetNBDProps(src, onlytarget)))
return NULL;
break;
case VIR_STORAGE_NET_PROTOCOL_RBD:
+ driver = "rbd";
if (!(fileprops = qemuBlockStorageSourceGetRBDProps(src, onlytarget)))
return NULL;
break;
case VIR_STORAGE_NET_PROTOCOL_SHEEPDOG:
+ driver = "sheepdog";
if (!(fileprops = qemuBlockStorageSourceGetSheepdogProps(src)))
return NULL;
break;
case VIR_STORAGE_NET_PROTOCOL_SSH:
+ driver = "ssh";
if (!(fileprops = qemuBlockStorageSourceGetSshProps(src)))
return NULL;
break;
break;
}
+ if (driver && virJSONValueObjectPrependString(fileprops, "driver", driver) < 0)
+ return NULL;
+
if (!onlytarget) {
if (qemuBlockNodeNameValidate(src->nodestorage) < 0 ||
virJSONValueObjectAdd(fileprops, "S:node-name", src->nodestorage, NULL) < 0)