On 2013年03月21日 19:53, Paolo Bonzini wrote:
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 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;
ACK