mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-22 22:13:18 +00:00
virsh: expose virDomainGetFSInfo
Add a "domfsinfo" command that shows a list of filesystems info mounted in the guest. For example: virsh # domfsinfo vm1 Mountpoint Name Type Target ------------------------------------------------------------------- / sda1 ext4 hdc /opt dm-2 vfat vda,vdb /mnt/test sdb1 xfs sda Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama@hds.com>
This commit is contained in:
parent
733b56a4b9
commit
fadfcd9164
@ -12225,6 +12225,70 @@ cmdDomFSThaw(vshControl *ctl, const vshCmd *cmd)
|
|||||||
return ret >= 0;
|
return ret >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const vshCmdInfo info_domfsinfo[] = {
|
||||||
|
{.name = "help",
|
||||||
|
.data = N_("Get information of domain's mounted filesystems.")
|
||||||
|
},
|
||||||
|
{.name = "desc",
|
||||||
|
.data = N_("Get information of domain's mounted filesystems.")
|
||||||
|
},
|
||||||
|
{.name = NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static const vshCmdOptDef opts_domfsinfo[] = {
|
||||||
|
{.name = "domain",
|
||||||
|
.type = VSH_OT_DATA,
|
||||||
|
.flags = VSH_OFLAG_REQ,
|
||||||
|
.help = N_("domain name, id or uuid")
|
||||||
|
},
|
||||||
|
{.name = NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
static bool
|
||||||
|
cmdDomFSInfo(vshControl *ctl, const vshCmd *cmd)
|
||||||
|
{
|
||||||
|
virDomainPtr dom = NULL;
|
||||||
|
int ret = -1;
|
||||||
|
size_t i, j;
|
||||||
|
virDomainFSInfoPtr *info;
|
||||||
|
|
||||||
|
if (!(dom = vshCommandOptDomain(ctl, cmd, NULL)))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
ret = virDomainGetFSInfo(dom, &info, 0);
|
||||||
|
if (ret < 0) {
|
||||||
|
vshError(ctl, _("Unable to get filesystem information"));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
if (ret == 0) {
|
||||||
|
vshError(ctl, _("No filesystems are mounted in the domain"));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info) {
|
||||||
|
vshPrintExtra(ctl, "%-36s %-8s %-8s %s\n",
|
||||||
|
_("Mountpoint"), _("Name"), _("Type"), _("Target"));
|
||||||
|
vshPrintExtra(ctl, "-------------------------------------------------------------------\n");
|
||||||
|
for (i = 0; i < ret; i++) {
|
||||||
|
vshPrintExtra(ctl, "%-36s %-8s %-8s ",
|
||||||
|
info[i]->mountpoint, info[i]->name, info[i]->fstype);
|
||||||
|
for (j = 0; j < info[i]->ndevAlias; j++) {
|
||||||
|
vshPrintExtra(ctl, "%s", info[i]->devAlias[j]);
|
||||||
|
if (j != info[i]->ndevAlias - 1)
|
||||||
|
vshPrint(ctl, ",");
|
||||||
|
}
|
||||||
|
vshPrint(ctl, "\n");
|
||||||
|
|
||||||
|
virDomainFSInfoFree(info[i]);
|
||||||
|
}
|
||||||
|
VIR_FREE(info);
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
virDomainFree(dom);
|
||||||
|
return ret >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
const vshCmdDef domManagementCmds[] = {
|
const vshCmdDef domManagementCmds[] = {
|
||||||
{.name = "attach-device",
|
{.name = "attach-device",
|
||||||
.handler = cmdAttachDevice,
|
.handler = cmdAttachDevice,
|
||||||
@ -12384,6 +12448,12 @@ const vshCmdDef domManagementCmds[] = {
|
|||||||
.info = info_domfsthaw,
|
.info = info_domfsthaw,
|
||||||
.flags = 0
|
.flags = 0
|
||||||
},
|
},
|
||||||
|
{.name = "domfsinfo",
|
||||||
|
.handler = cmdDomFSInfo,
|
||||||
|
.opts = opts_domfsinfo,
|
||||||
|
.info = info_domfsinfo,
|
||||||
|
.flags = 0
|
||||||
|
},
|
||||||
{.name = "domfstrim",
|
{.name = "domfstrim",
|
||||||
.handler = cmdDomFSTrim,
|
.handler = cmdDomFSTrim,
|
||||||
.opts = opts_domfstrim,
|
.opts = opts_domfstrim,
|
||||||
|
@ -1146,6 +1146,15 @@ be selected using the B<type> parameter (e.g. "vnc", "spice", "rdp"). If
|
|||||||
I<--include-password> is specified, the SPICE channel password will be
|
I<--include-password> is specified, the SPICE channel password will be
|
||||||
included in the URI.
|
included in the URI.
|
||||||
|
|
||||||
|
=item B<domfsinfo> I<domain>
|
||||||
|
|
||||||
|
Show a list of mounted filesystems within the running domain. The list contains
|
||||||
|
mountpoints, names of a mounted device in the guest, filesystem types, and
|
||||||
|
unique target names used in the domain XML (<target dev='name'/>).
|
||||||
|
|
||||||
|
Note that this command requires a guest agent configured and running in the
|
||||||
|
domain's guest OS.
|
||||||
|
|
||||||
=item B<domfsfreeze> I<domain> [[I<--mountpoint>] B<mountpoint>...]
|
=item B<domfsfreeze> I<domain> [[I<--mountpoint>] B<mountpoint>...]
|
||||||
|
|
||||||
Freeze mounted filesystems within a running domain to prepare for consistent
|
Freeze mounted filesystems within a running domain to prepare for consistent
|
||||||
|
Loading…
Reference in New Issue
Block a user