[libvirt] [PATCH v2 3/6] domain: make port optional for network disks

Paolo Bonzini pbonzini at redhat.com
Thu Mar 21 11:53:51 UTC 2013


Only sheepdog actually required it in the code, and we can use 7000 as the
default---the same value that QEMU uses for the simple "sheepdog:VOLUME"
syntax.  With this change, the schema can be fixed to allow no port.

Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
---
 docs/formatdomain.html.in     | 6 ++++++
 docs/schemas/domaincommon.rng | 8 +++++---
 src/conf/domain_conf.c        | 5 -----
 src/qemu/qemu_command.c       | 3 ++-
 4 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index f17b808..fd33818 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -1700,31 +1700,37 @@
             <th> Protocol </th>
             <th> Meaning </th>
             <th> Number of hosts </th>
+            <th> Default port </th>
           </tr>
           <tr>
             <td> nbd </td>
             <td> a server running nbd-server </td>
             <td> only one </td>
+            <td> 10809 </td>
           </tr>
           <tr>
             <td> iscsi </td>
             <td> an iSCSI server </td>
             <td> only one </td>
+            <td> 3260 </td>
           </tr>
           <tr>
             <td> rbd </td>
             <td> monitor servers of RBD </td>
             <td> one or more </td>
+            <td> 6789 </td>
           </tr>
           <tr>
             <td> sheepdog </td>
             <td> one of the sheepdog servers (default is localhost:7000) </td>
             <td> zero or one </td>
+            <td> 7000 </td>
           </tr>
           <tr>
             <td> gluster </td>
             <td> a server running glusterd daemon </td>
             <td> only one </td>
+            <td> 24007 </td>
           </tr>
         </table>
         gluster supports "tcp", "rdma", "unix" as valid values for the
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index c4e7b7a..4da65f8 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1114,9 +1114,11 @@
                             <ref name="ipAddr"/>
                           </choice>
                         </attribute>
-                        <attribute name="port">
-                          <ref name="unsignedInt"/>
-                        </attribute>
+                        <optional>
+                          <attribute name="port">
+                            <ref name="unsignedInt"/>
+                          </attribute>
+                        </optional>
                       </group>
                       <group>
                         <attribute name="transport">
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index b06cae5..8f76e8e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -4111,11 +4111,6 @@ virDomainDiskDefParseXML(virCapsPtr caps,
                                     goto error;
                                 }
                                 hosts[nhosts - 1].port = virXMLPropString(child, "port");
-                                if (!hosts[nhosts - 1].port) {
-                                    virReportError(VIR_ERR_XML_ERROR,
-                                                   "%s", _("missing port for host"));
-                                    goto error;
-                                }
                             }
                         }
                         child = child->next;
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 313db2c..5422508 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2763,7 +2763,8 @@ qemuBuildDriveStr(virConnectPtr conn ATTRIBUTE_UNUSED,
                 } else {
                     /* only one host is supported now */
                     virBufferAsprintf(&opt, "file=sheepdog:%s:%s:",
-                                      disk->hosts->name, disk->hosts->port);
+                                      disk->hosts->name,
+                                      disk->hosts->port ? disk->hosts->port : "7000");
                     virBufferEscape(&opt, ',', ",", "%s,", disk->src);
                 }
                 break;
-- 
1.8.1.4





More information about the libvir-list mailing list