
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@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