On 18.10.2013 07:42, Chen Hanxiao wrote:
From: Chen Hanxiao <chenhanxiao(a)cn.fujitsu.com>
Daneil's suggestion about flag <shareable/> and <readonly/> as follow:
- Exclusive read-write. This is the default
- Shared read-write. This is the <shareable/> flag
- Shared read-only. This is the <readonly/> flag
So we should disable config both readonly and shareable
in virsh command to solve the confliction.
For backwards compatibility we keep the code about '<shareable/>'.
In this patch, '--mode' option will have high priority.
If set, it will screen the '--shareable' option.
Signed-off-by: Chen Hanxiao <chenhanxiao(a)cn.fujitsu.com>
---
tools/virsh-domain.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 6d241db..2aed9f9 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -609,7 +609,7 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd)
if (wwn)
virBufferAsprintf(&buf, " <wwn>%s</wwn>\n", wwn);
- if (vshCommandOptBool(cmd, "shareable"))
+ if (!mode && vshCommandOptBool(cmd, "shareable"))
virBufferAddLit(&buf, " <shareable/>\n");
if (straddr) {
So IIUC, it's still possible to use '--mode readonly' and
'--shareable' at the same time (of course, the latter one won't get applied,
but no error is thrown either).
I think, we should make use of '--mode' and '--shareable' exclusive. So we
need something like this:
diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index b75f331..30fadce 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -602,8 +602,13 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd)
if (wwn)
virBufferAsprintf(&buf, " <wwn>%s</wwn>\n", wwn);
- if (vshCommandOptBool(cmd, "shareable"))
+ if (vshCommandOptBool(cmd, "shareable")) {
+ if (mode) {
+ vshError(ctl, "%s", _("--shareable and --mode are mutually
exclusive"));
+ goto cleanup;
+ }
virBufferAddLit(&buf, " <shareable/>\n");
+ }
if (straddr) {
if (str2DiskAddress(straddr, &diskAddr) != 0) {
Michal