From e5224e5490b6f48f334a3c001309cce1b0542e8d Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Sun, 12 Feb 2012 02:00:36 +0100 Subject: [PATCH] remove old dedup code --- lib/CloudStore/dedup.pm | 84 ----------------------------------------- t/dedup.t | 22 ----------- 2 files changed, 106 deletions(-) delete mode 100644 lib/CloudStore/dedup.pm delete mode 100755 t/dedup.t diff --git a/lib/CloudStore/dedup.pm b/lib/CloudStore/dedup.pm deleted file mode 100644 index 04488cd..0000000 --- a/lib/CloudStore/dedup.pm +++ /dev/null @@ -1,84 +0,0 @@ -package CloudStore::dedup; -use warnings; -use strict; -use autodie; - -use CloudStore::JSON; -use File::Path qw(make_path); -use Data::Dump qw(dump); - -sub path_md5 { - my ( $path, $md5 ) = @_; - - my $pool = 'md5'; # FIXME sharding? - mkdir $pool unless -e $pool; - - if ( -e "$pool/$md5" ) { - warn "dedup hit $md5 $path\n"; - my $dedup = $path . '.dedup'; - rename $path, $dedup; - link "$pool/$md5", $path; - unlink $dedup; - } else { - link $path, "$pool/$md5"; - } -} - -sub path_remove { - my $path = shift; - - my $deleted = CloudStore::JSON::file_data( $path ); - - my $md5_path = "md5/$deleted->{md5}"; - - my ( undef, undef, undef, $nlink ) = stat $md5_path; - - warn "path_remove $path $nlink ",dump $deleted; - open(my $fh, '>>', 'var/dedup.log'); - print $fh join(' ', $md5_path, $nlink, @_), $/; - close $fh; -} - -my $empty_md5 = " " x 32; - -sub data { - my $data = shift; - - my $blob = "users/$data->{login}/blob"; - my $path = "$blob/$data->{file}"; - - return if -d $path; - - if ( $data->{file} =~ /^(.+\/)?md5sum$/ ) { - my $dir = $1; - my $imported = 0; - warn "$path import\n"; - open(my $md5sum, '<', $path); - while(<$md5sum>) { - chomp; - my ( $md5, $file ) = split(/\s+/,$_,2); - if ( ! -e "md5/$md5" ) { - warn "MISSING $md5 $file\n"; - next; - } - my $new = "users/$data->{login}/blob/$dir$file"; - if ( ! -e $new ) { - # create path from md5sum file - my $dir = $1 if $new =~ m{^(.+)/[^/]+$}; - make_path $dir unless -d $dir; - $imported += link "md5/$md5", $new; - } else { - path_md5 $new => $md5; - } - } - print "INFO: $path imported $imported files\n"; - } - - if ( $data->{md5} ne $empty_md5 ) { - path_md5 $path => $data->{md5}; - } else { - path_remove $path, $data->{timestamp}; - } -} - -1; diff --git a/t/dedup.t b/t/dedup.t deleted file mode 100755 index 54357e8..0000000 --- a/t/dedup.t +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/perl -use strict; -use warnings; - -use Test::More tests => 3; -use Data::Dump qw(dump); - -use lib 'lib'; - -use_ok 'CloudStore::dedup'; - -my $md5 = "51ce99ec40129bfe1fd11d65b346d15e"; -my $file = "users/test/blob/foo"; - -my $r; - -ok( $r = CloudStore::dedup::path_md5( $file, "test1-$md5" ), 'path_md5' ); -diag dump($r); - -ok( $r = CloudStore::dedup::path_remove( $file ), 'path_remove' ); -diag dump($r); - -- 2.20.1