btrbk: adapted tree action for refactored configuration

pull/30/head
Axel Burri 2015-01-10 16:03:47 +01:00
parent 57f4164ff9
commit 9908ed42f0
1 changed files with 14 additions and 17 deletions

31
btrbk
View File

@ -889,19 +889,14 @@ MAIN:
# #
# print snapshot tree # print snapshot tree
# #
my %info; foreach my $config_vol (@{$config->{VOLUME}})
foreach my $job (@$jobs)
{ {
$info{$job->{sroot}}->{$job->{svol}} = $job; my $sroot = $config_vol->{sroot} || die;
} print "$sroot\n";
foreach my $root (sort keys %info) next unless $vol_info{$sroot};
{ foreach my $config_subvol (@{$config_vol->{SUBVOLUME}})
print "$root\n";
foreach my $job (sort { $a->{svol} cmp $b->{svol} } (values %{$info{$root}}))
{ {
my $sroot = $job->{sroot} || die; my $svol = $config_subvol->{svol} || die;
my $svol = $job->{svol} || die;
next unless $vol_info{$job->{sroot}};
print "|-- $svol\n"; print "|-- $svol\n";
my $sroot_uuid; my $sroot_uuid;
foreach (values $vol_info{$sroot}) { foreach (values $vol_info{$sroot}) {
@ -911,17 +906,19 @@ MAIN:
} }
} }
die unless $sroot_uuid; die unless $sroot_uuid;
foreach (sort { $a->{SUBVOL_PATH} cmp $b->{SUBVOL_PATH} } (values $vol_info{$sroot})) { foreach (sort { $a->{SUBVOL_PATH} cmp $b->{SUBVOL_PATH} } (values $vol_info{$sroot}))
{
next unless($_->{parent_uuid} eq $sroot_uuid); next unless($_->{parent_uuid} eq $sroot_uuid);
# next unless($_->{SUBVOL_PATH} =~ /^$snapdir/); # don't print non-btrbk snapshots # next unless($_->{SUBVOL_PATH} =~ /^$snapdir/); # don't print non-btrbk snapshots
print "| ^-- $_->{SUBVOL_PATH}\n"; print "| ^-- $_->{SUBVOL_PATH}\n";
my $snapshot = $_->{FS_PATH}; my $snapshot = $_->{FS_PATH};
$snapshot =~ s/^.*\///; $snapshot =~ s/^.*\///;
foreach (sort { $a->{droot} cmp $b->{droot} } @$jobs) { foreach my $config_target (@{$config_subvol->{TARGET}})
next unless $vol_info{$_->{droot}}; {
next unless(($_->{sroot} eq $sroot) && ($_->{svol} eq $svol)); my $droot = $config_target->{droot} || die;
my $match = "$_->{droot}/$snapshot"; next unless $vol_info{$droot};
foreach (sort { $a->{FS_PATH} cmp $b->{FS_PATH} } (values $vol_info{$_->{droot}})) { my $match = "$droot/$snapshot";
foreach (sort { $a->{FS_PATH} cmp $b->{FS_PATH} } (values $vol_info{$droot})) {
print "| | |== $_->{FS_PATH}\n" if($_->{FS_PATH} eq $match); print "| | |== $_->{FS_PATH}\n" if($_->{FS_PATH} eq $match);
} }
} }