summaryrefslogtreecommitdiffstats
path: root/virt-df/virt_df.ml
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2008-04-15 12:57:58 +0100
committerRichard W.M. Jones <rjones@redhat.com>2008-04-15 12:57:58 +0100
commitbe71668a1a4b6c87da3e82458ca97a199a24aa32 (patch)
treed7670810579f5985bf80de84a3332c5a9be82308 /virt-df/virt_df.ml
parent0c2134a62abc82f2b558e648cdaea22b098d4bc9 (diff)
downloadvirt-top-be71668a1a4b6c87da3e82458ca97a199a24aa32.tar.gz
virt-top-be71668a1a4b6c87da3e82458ca97a199a24aa32.tar.xz
virt-top-be71668a1a4b6c87da3e82458ca97a199a24aa32.zip
Infrastructure to detect filesystems on LVs.
Diffstat (limited to 'virt-df/virt_df.ml')
-rw-r--r--virt-df/virt_df.ml24
1 files changed, 24 insertions, 0 deletions
diff --git a/virt-df/virt_df.ml b/virt-df/virt_df.ml
index b992e1b..1cd0617 100644
--- a/virt-df/virt_df.ml
+++ b/virt-df/virt_df.ml
@@ -81,6 +81,7 @@ type domain = {
dom_name : string; (* Domain name. *)
dom_id : int option; (* Domain ID (if running). *)
dom_disks : disk list; (* Domain disks. *)
+ dom_lv_filesystems : filesystem list; (* Domain LV filesystems. *)
}
and disk = {
(* From the XML ... *)
@@ -220,3 +221,26 @@ let probe_for_pv dev =
eprintf "%s contains a %s PV\n%!" dev#name lvm_name
);
r
+
+let list_lvs lvm_name devs =
+ let _, list_lvs_fn = List.assoc lvm_name !lvm_types in
+ list_lvs_fn devs
+
+(*----------------------------------------------------------------------*)
+
+(* This version by Isaac Trotts. *)
+let group_by ?(cmp = Pervasives.compare) ls =
+ let ls' =
+ List.fold_left
+ (fun acc (day1, x1) ->
+ match acc with
+ [] -> [day1, [x1]]
+ | (day2, ls2) :: acctl ->
+ if cmp day1 day2 = 0
+ then (day1, x1 :: ls2) :: acctl
+ else (day1, [x1]) :: acc)
+ []
+ ls
+ in
+ let ls' = List.rev ls' in
+ List.map (fun (x, xs) -> x, List.rev xs) ls'