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(a)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 5b4eabe..c590427 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -1692,31 +1692,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 82062a3..b8c4503 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1119,9 +1119,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 b801239..71da694 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -4013,11 +4013,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 59773ec..5d52be5 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -2526,7 +2526,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.2