#!/usr/bin/perl -w use Linux::LVM; use JSON; my $what = $ARGV[0]; open STDERR, '>/dev/null'; my $json; if ($what eq "volumes"){ foreach my $group (get_volume_group_list()){ my %lvs = get_logical_volume_information($group); foreach my $lv (keys %lvs){ push @{$json->{data}}, { "{#LVMVOL}" => "/dev/$group/$lv" }; } } } elsif ($what eq "snapshots"){ foreach my $group (get_volume_group_list()){ my %lvs = get_logical_volume_information($group); foreach my $lv (keys %lvs){ if (defined $lvs{$lv}->{allocated_to_snapshot}){ push @{$json->{data}}, { "{#LVMSNAP}" => "/dev/$group/$lv" }; } } } } elsif ($what eq "groups"){ foreach my $group (get_volume_group_list()){ push @{$json->{data}}, { "{#LVMGRP}" => $group }; } } else{ print <<"EOF"; Usage: $0 [volumes|snapshots|groups] EOF } print to_json($json); exit(0);