Created
November 3, 2011 00:03
-
-
Save awead/1335364 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ---------------------------------------------------------------------------- | |
# Name: sendFiles | |
# Desc: Since this process for sending files from the access and preservation | |
# folders is pretty much the same, I created a subroutine to do it. | |
# Inputs: local source directory, remote directory, filename | |
# Outputs: Errors, if any | |
# ---------------------------------------------------------------------------- | |
sub sendFiles { | |
my ($srcDir, $remoteSrcDir, $file) = @_; | |
my @errors; | |
my $src = Path::Class::File->new($srcDir, $file); | |
# Create MD5 sum | |
DRA::logger("Creating MD5 sum for $file ...", $mdssTransferLog); | |
my ($md5file, $error) = DRA::createMD5($src, $file); | |
if ($error) { | |
DRA::logger("Failed!", $mdssTransferLog); | |
my $message = "MD5 creation failed: $error"; | |
push @errors, $message; | |
} | |
else { | |
DRA::logger("done.", $mdssTransferLog); | |
} | |
# Send MD5 sum to MDSS | |
my $md5src = $file . ".md5"; | |
my $md5path = Path::Class::File->new($srcDir, $md5src); | |
my $md5dest = Path::Class::File->new($remoteSrcDir, $md5src); | |
DRA::logger("Sending MD5 file $md5src ...", $mdssTransferLog); | |
my $put_err1 = DRA::hsiPut( | |
{ | |
source => $md5path, | |
dest => $md5dest, | |
hsi => $hsi, | |
opts => $hsiOptLine, | |
ports => $hsiPorts, | |
keytab => $keytabFile, | |
} | |
); | |
if ($put_err1) { | |
DRA::logger("Failed!", $mdssTransferLog); | |
my $message = "Failed to send file: $!"; | |
push @errors, $message; | |
} | |
else { | |
DRA::logger("done.", $mdssTransferLog); | |
} | |
# Send file to MDSS | |
my $dest = Path::Class::File->new($remoteSrcDir, $file); | |
DRA::logger("Sending $file ...", $mdssTransferLog); | |
my $put_err2 = DRA::hsiPut( | |
{ | |
source => $src, | |
dest => $dest, | |
hsi => $hsi, | |
opts => $hsiOptLine, | |
ports => $hsiPorts, | |
keytab => $keytabFile, | |
} | |
); | |
if ($put_err2) { | |
DRA::logger("Failed!", $mdssTransferLog); | |
my $message = "Failed to send file: $!"; | |
push @errors, $message; | |
} | |
else { | |
DRA::logger("done.", $mdssTransferLog); | |
} | |
# Check transfer | |
DRA::logger("Verifying ...", $mdssTransferLog); | |
my $check_err = DRA::hsiCheck( | |
{ | |
file => $file, | |
path => $remoteSrcDir, | |
hsi => $hsi, | |
opts => $hsiOptLine, | |
ports => $hsiPorts, | |
temp => $tempDir, | |
keytab => $keytabFile, | |
} | |
); | |
if ($check_err) { | |
DRA::logger("Failed!", $mdssTransferLog); | |
my $message = "Verification failed: $!"; | |
push @errors, $message; | |
} | |
else { | |
DRA::logger("Passed!", $mdssTransferLog); | |
} | |
# Return any errors | |
if (@errors) { | |
my $line = join "\n", @errors; | |
return $line; | |
} | |
else { | |
return 0; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment