diff options
author | Richard Jones <rjones@redhat.com> | 2009-04-07 10:25:46 +0100 |
---|---|---|
committer | Richard Jones <rjones@redhat.com> | 2009-04-07 10:25:46 +0100 |
commit | 6085137e65cb63aaf725207f2929a571d1149420 (patch) | |
tree | 95b1346a4be550a8c18c8123986fe549390618a0 /fish | |
parent | 7ea56c8d0bca01a602df8e87e52d90c5b44e2cc2 (diff) | |
download | libguestfs-6085137e65cb63aaf725207f2929a571d1149420.tar.gz libguestfs-6085137e65cb63aaf725207f2929a571d1149420.tar.xz libguestfs-6085137e65cb63aaf725207f2929a571d1149420.zip |
Implement simple lvs/vgs/pvs commands.
Diffstat (limited to 'fish')
-rw-r--r-- | fish/cmds.c | 72 |
1 files changed, 69 insertions, 3 deletions
diff --git a/fish/cmds.c b/fish/cmds.c index dc951e34..1035b67f 100644 --- a/fish/cmds.c +++ b/fish/cmds.c @@ -36,11 +36,14 @@ void list_commands (void) printf ("%-20s %s\n", "list-partitions", "list the partitions"); printf ("%-20s %s\n", "ll", "list the files in a directory (long format)"); printf ("%-20s %s\n", "ls", "list the files in a directory"); + printf ("%-20s %s\n", "lvs", "list the LVM logical volumes (LVs)"); printf ("%-20s %s\n", "lvs-full", "list the LVM logical volumes (LVs)"); printf ("%-20s %s\n", "mount", "mount a guest disk at a position in the filesystem"); + printf ("%-20s %s\n", "pvs", "list the LVM physical volumes (PVs)"); printf ("%-20s %s\n", "pvs-full", "list the LVM physical volumes (PVs)"); printf ("%-20s %s\n", "sync", "sync disks, writes are flushed through to the disk image"); printf ("%-20s %s\n", "touch", "update file timestamps or create a new file"); + printf ("%-20s %s\n", "vgs", "list the LVM volume groups (VGs)"); printf ("%-20s %s\n", "vgs-full", "list the LVM volume groups (VGs)"); printf (" Use -h <cmd> / help <cmd> to show detailed help for a command.\n"); } @@ -71,14 +74,23 @@ void display_command (const char *cmd) if (strcasecmp (cmd, "list_partitions") == 0 || strcasecmp (cmd, "list-partitions") == 0) pod2text ("list-partitions - list the partitions", " list-partitions\n\nList all the partitions detected on all block devices.\n\nThe full partition device names are returned, eg. C</dev/sda1>\n\nThis does not return logical volumes. For that you will need to\ncall C<guestfs_lvs>."); else + if (strcasecmp (cmd, "pvs") == 0) + pod2text ("pvs - list the LVM physical volumes (PVs)", " pvs\n\nList all the physical volumes detected. This is the equivalent\nof the L<pvs(8)> command.\n\nThis returns a list of just the device names that contain\nPVs (eg. C</dev/sda2>).\n\nSee also C<guestfs_pvs_full>."); + else + if (strcasecmp (cmd, "vgs") == 0) + pod2text ("vgs - list the LVM volume groups (VGs)", " vgs\n\nList all the volumes groups detected. This is the equivalent\nof the L<vgs(8)> command.\n\nThis returns a list of just the volume group names that were\ndetected (eg. C<VolGroup00>).\n\nSee also C<guestfs_vgs_full>."); + else + if (strcasecmp (cmd, "lvs") == 0) + pod2text ("lvs - list the LVM logical volumes (LVs)", " lvs\n\nList all the logical volumes detected. This is the equivalent\nof the L<lvs(8)> command.\n\nThis returns a list of the logical volume device names\n(eg. C</dev/VolGroup00/LogVol00>).\n\nSee also C<guestfs_lvs_full>."); + else if (strcasecmp (cmd, "pvs_full") == 0 || strcasecmp (cmd, "pvs-full") == 0) - pod2text ("pvs-full - list the LVM physical volumes (PVs)", " pvs-full\n\nList all the physical volumes detected. This is the equivalent\nof the L<pvs(8)> command."); + pod2text ("pvs-full - list the LVM physical volumes (PVs)", " pvs-full\n\nList all the physical volumes detected. This is the equivalent\nof the L<pvs(8)> command. The \"full\" version includes all fields."); else if (strcasecmp (cmd, "vgs_full") == 0 || strcasecmp (cmd, "vgs-full") == 0) - pod2text ("vgs-full - list the LVM volume groups (VGs)", " vgs-full\n\nList all the volumes groups detected. This is the equivalent\nof the L<vgs(8)> command."); + pod2text ("vgs-full - list the LVM volume groups (VGs)", " vgs-full\n\nList all the volumes groups detected. This is the equivalent\nof the L<vgs(8)> command. The \"full\" version includes all fields."); else if (strcasecmp (cmd, "lvs_full") == 0 || strcasecmp (cmd, "lvs-full") == 0) - pod2text ("lvs-full - list the LVM logical volumes (LVs)", " lvs-full\n\nList all the logical volumes detected. This is the equivalent\nof the L<lvs(8)> command."); + pod2text ("lvs-full - list the LVM logical volumes (LVs)", " lvs-full\n\nList all the logical volumes detected. This is the equivalent\nof the L<lvs(8)> command. The \"full\" version includes all fields."); else display_builtin_command (cmd); } @@ -308,6 +320,51 @@ static int run_list_partitions (const char *cmd, int argc, char *argv[]) return 0; } +static int run_pvs (const char *cmd, int argc, char *argv[]) +{ + char **r; + if (argc != 0) { + fprintf (stderr, "%s should have 0 parameter(s)\n", cmd); + fprintf (stderr, "type 'help %s' for help on %s\n", cmd, cmd); + return -1; + } + r = guestfs_pvs (g); + if (r == NULL) return -1; + print_strings (r); + free_strings (r); + return 0; +} + +static int run_vgs (const char *cmd, int argc, char *argv[]) +{ + char **r; + if (argc != 0) { + fprintf (stderr, "%s should have 0 parameter(s)\n", cmd); + fprintf (stderr, "type 'help %s' for help on %s\n", cmd, cmd); + return -1; + } + r = guestfs_vgs (g); + if (r == NULL) return -1; + print_strings (r); + free_strings (r); + return 0; +} + +static int run_lvs (const char *cmd, int argc, char *argv[]) +{ + char **r; + if (argc != 0) { + fprintf (stderr, "%s should have 0 parameter(s)\n", cmd); + fprintf (stderr, "type 'help %s' for help on %s\n", cmd, cmd); + return -1; + } + r = guestfs_lvs (g); + if (r == NULL) return -1; + print_strings (r); + free_strings (r); + return 0; +} + static int run_pvs_full (const char *cmd, int argc, char *argv[]) { struct guestfs_lvm_pv_list *r; @@ -379,6 +436,15 @@ int run_action (const char *cmd, int argc, char *argv[]) if (strcasecmp (cmd, "list_partitions") == 0 || strcasecmp (cmd, "list-partitions") == 0) return run_list_partitions (cmd, argc, argv); else + if (strcasecmp (cmd, "pvs") == 0) + return run_pvs (cmd, argc, argv); + else + if (strcasecmp (cmd, "vgs") == 0) + return run_vgs (cmd, argc, argv); + else + if (strcasecmp (cmd, "lvs") == 0) + return run_lvs (cmd, argc, argv); + else if (strcasecmp (cmd, "pvs_full") == 0 || strcasecmp (cmd, "pvs-full") == 0) return run_pvs_full (cmd, argc, argv); else |