virsh: A bit smarter attach-disk

Detects the file type of source path if no "--sourcetype" and
"driver" is specified, instead of always set the disk type as
"block".
This commit is contained in:
Osier Yang 2012-03-15 18:16:52 +08:00
parent 68fd6a3b34
commit 6227a220cc

View File

@ -14428,6 +14428,7 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd)
const char *stype = NULL;
virBuffer buf = VIR_BUFFER_INITIALIZER;
char *xml;
struct stat st;
if (!vshConnectionUsability(ctl, ctl->conn))
goto cleanup;
@ -14458,8 +14459,12 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd)
}
if (!stype) {
if (driver && (STREQ(driver, "file") || STREQ(driver, "tap")))
if (driver && (STREQ(driver, "file") || STREQ(driver, "tap"))) {
isFile = true;
} else {
if (source && !stat(source, &st))
isFile = S_ISREG(st.st_mode) ? true : false;
}
} else if (STREQ(stype, "file")) {
isFile = true;
} else if (STRNEQ(stype, "block")) {