On Fri, Jun 10, 2016 at 03:14:52AM +0000, Ashish Mittal wrote:
I tried using “git send-email”, but unfortunately:
(a) Internal firewall blocks git communication to outside world. I was
thinking of using a http based read-only repo, but I guess that would be a
bit older code. Do you know of a http based git repo mirror that I can
reliably use for "git pull” etc?
We have automatically updated mirrors:
https://gitlab.com/libvirt/libvirt
https://github.com/libvirt/libvirt
they should never be more than 60 minutes old
(b) git send-email is not working for me. I am having trouble setting
it
up to forward emails via my official MS Exchange server account.
Ok, if that doesn't work, the usual tip is to use
'git format-patch -1'
which generates a suitable formatted patch file you can copy and
paste into the *body* of the email - just be sure that your email
client doesn't mangle whitespace.
If you must use an attachment, please make sure it gets "text/plain"
not "application/octet-stream".
BTW, we usually recommend people start a new top level mail thread
for each new version of a patch that is posted, and use the git
commit message first line, as the subject of the mail, and include
the version. eg this would be suitable
"[PATCH v2] Enable Veritas OpenFlame functionality"
Here’s the same output from the new test:
127) QEMU XML-2-ARGV disk-drive-network-rbd-no-colon ...
Got expected error:
2016-06-10 00:39:27.543+0000: 607: error : qemuBuildNetworkDriveURI:859 :
unsupported configuration: ':' not allowed in RBD source volume name
'poolname/imagename:rbd_cache=1:rbd_cache_size=67108864:rbd_cache_max_dirty
=0'
OK
128) QEMU XML-2-ARGV disk-drive-network-oflame ...
OK
129) QEMU XML-2-ARGV disk-drive-no-boot ...
OK
From 069fe0bafd526a20c1630d32ff481e33acf0781c Mon Sep 17 00:00:00
2001
From: Ashish Mittal <ashish.mittal(a)veritas.com>
Date: Thu, 9 Jun 2016 19:52:12 -0700
Subject: [PATCH] Bug 1341866 Enable Veritas OpenFlame functionality on RedHat
OSP8 platform
Request to upstream libvirt dependencies for qemu based network block driver from
Veritas.
No need to talk about Red Hat / OSP or the bug number in this
commit message. Just describe what it is that the patch is
doing from a purely technical POV.
Since you're enabling use of new XML,it would be helpful to
include the example <disk> XML snippet in the commit message
for clarity.
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index b5d84e6..162f807 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -497,6 +497,7 @@ qemuNetworkDriveGetPort(int protocol,
return 0;
case VIR_STORAGE_NET_PROTOCOL_RBD:
+ case VIR_STORAGE_NET_PROTOCOL_OFLAME:
case VIR_STORAGE_NET_PROTOCOL_LAST:
case VIR_STORAGE_NET_PROTOCOL_NONE:
/* not applicable */
@@ -894,6 +895,56 @@ qemuBuildNetworkDriveURI(virStorageSourcePtr src,
ret = virBufferContentAndReset(&buf);
break;
+ case VIR_STORAGE_NET_PROTOCOL_OFLAME:
+ if (VIR_ALLOC(uri) < 0)
+ goto cleanup;
+
+ if (src->hosts->transport == VIR_STORAGE_NET_HOST_TRANS_TCP) {
+ if (VIR_STRDUP(uri->scheme,
+ virStorageNetProtocolTypeToString(src->protocol)) <
0)
+ goto cleanup;
+ } else {
+ if (virAsprintf(&uri->scheme, "%s+%s",
+ virStorageNetProtocolTypeToString(src->protocol),
+
virStorageNetHostTransportTypeToString(src->hosts->transport)) < 0)
+ goto cleanup;
+ }
+
+ if (src->path) {
+ if (src->volume) {
+ if (virAsprintf(&uri->path, "/%s%s",
+ src->volume, src->path) < 0)
+ goto cleanup;
+ } else {
+ if (virAsprintf(&uri->path, "%s%s",
+ src->path[0] == '/' ? "" :
"/",
+ src->path) < 0)
+ goto cleanup;
+ }
+ }
+
+ if (src->hosts->socket &&
+ virAsprintf(&uri->query, "socket=%s",
src->hosts->socket) < 0)
+ goto cleanup;
+
+ if (qemuBuildGeneralSecinfoURI(uri, secinfo) < 0)
+ goto cleanup;
+
+ for (i = 0; i < src->nhosts; i++) {
+ if ((uri->port = qemuNetworkDriveGetPort(src->protocol,
src->hosts[i].port)) < 0)
+ goto cleanup;
+
+ if (VIR_STRDUP(uri->server, src->hosts[i].name) < 0)
+ goto cleanup;
+
+ ret = virURIFormat(uri);
+ virBufferEscape(&buf, ',', ",", "%s", ret);
+ virReportError(VIR_ERR_INTERNAL_ERROR,
Your indentation got a little messed up here.
+ _("qemuBuildOFlameString builturi
'%s'"), ret);
+ }
+
+ ret = virBufferContentAndReset(&buf);
+ break;
case VIR_STORAGE_NET_PROTOCOL_LAST:
case VIR_STORAGE_NET_PROTOCOL_NONE:
diff --git
a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-oflame.args
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-oflame.args
new file mode 100644
index 0000000..5083cae
--- /dev/null
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-network-oflame.args
@@ -0,0 +1,24 @@
+-drive
file=oflame://192.168.0.1:9999/%7Beb90327c-8302-4725-9e1b-4e85ed4dc251%7D\
+oflame://172.172.17.56:9999/%7Beb90327c-8302-4725-9e1b-4e85ed4dc251%7D,\
Hmm, unless I'm mis-reading this, there is no separator between
the two URIs you're providing - is there a missing ',' or something
similar.
Slightly off topic for the libvirt list, but I would be pretty surprised
if the QEMU developers accepted patches using this URI syntax for providing
multiple servers.
A similar approach was originally proposed for the glusterfs driver and
the submitter was told to write it a different way, not using the legacy
URI syntax at all, but instead a QAPI based syntax:
https://lists.gnu.org/archive/html/qemu-devel/2016-06/msg04126.html
So the sooner you can submit your QEMU patches to the qemu-devel mailing
list the better, as we'll need to get clarity on the accepted QEMU syntax
in order to proceed further with libvirt patch review.
Broadly speaking I think the patch you've proposed looks pretty much
fine now. I'd have a slight preference for it to be done as two patches.
One patch adds the XML schema, parser changes, etc. The second patch
just does the QEMU driver integration & unit tests.
Regards,
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|