On 12.08.2015 07:45, Peter Krempa wrote:
cmdAttachInterface doesn't support the 'floor' field that
was added in
d7f5c88961b52 but that commit didn't properly reject it from
cmdAttachInterface where it's unused.
---
tools/virsh-domain.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 9f54691..94e7a5c 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -963,8 +963,12 @@ cmdAttachInterface(vshControl *ctl, const vshCmd *cmd)
memset(&inbound, 0, sizeof(inbound));
if (vshParseRateStr(ctl, inboundStr, &inbound) < 0)
goto cleanup;
- if (!inbound.average && !inbound.floor) {
- vshError(ctl, _("either inbound average or floor is mandatory"));
+ if (!inbound.average) {
+ vshError(ctl, _("inbound average is mandatory"));
+ goto cleanup;
+ }
+ if (inbound.floor) {
+ vshError(ctl, _("inbound floor is unsupported yet"));
goto cleanup;
}
}
Ah, it isn't. But it's not limitation of our API (which does support @floor of
course). It's a virsh limitation. So how about instead of you patch have the following
in?
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index a957836..7cd521e 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -1041,12 +1041,16 @@ cmdAttachInterface(vshControl *ctl, const vshCmd *cmd)
if (inboundStr || outboundStr) {
virBufferAddLit(&buf, "<bandwidth>\n");
virBufferAdjustIndent(&buf, 2);
- if (inboundStr && inbound.average > 0) {
- virBufferAsprintf(&buf, "<inbound average='%llu'",
inbound.average);
+ if (inboundStr && (inbound.average || inbound.floor)) {
+ virBufferAddLit(&buf, "<inbound");
+ if (inbound.average > 0)
+ virBufferAsprintf(&buf, " average='%llu'",
inbound.average);
if (inbound.peak > 0)
virBufferAsprintf(&buf, " peak='%llu'",
inbound.peak);
if (inbound.burst > 0)
virBufferAsprintf(&buf, " burst='%llu'",
inbound.burst);
+ if (inbound.floor > 0)
+ virBufferAsprintf(&buf, " floor='%llu'",
inbound.floor);
virBufferAddLit(&buf, "/>\n");
}
if (outboundStr && outbound.average > 0) {
Michal