Line 204... |
Line 204... |
204 |
sub validateTarget {
|
204 |
sub validateTarget {
|
205 |
my ( $remoteServer, $remoteStaging, $remoteTarget, $directory, $checksum ) = @_;
|
205 |
my ( $remoteServer, $remoteStaging, $remoteTarget, $directory, $checksum ) = @_;
|
206 |
my $md5sum = `ssh $remoteServer "find '$remoteStaging/$directory' -type f -exec md5sum \\{\\} \\; | cut -d' ' -f1 | sort | md5sum | cut -d' ' -f1"`;
|
206 |
my $md5sum = `ssh $remoteServer "find '$remoteStaging/$directory' -type f -exec md5sum \\{\\} \\; | cut -d' ' -f1 | sort | md5sum | cut -d' ' -f1"`;
|
207 |
chomp $md5sum;
|
207 |
chomp $md5sum;
|
208 |
if ( $checksum eq $md5sum ) {
|
208 |
if ( $checksum eq $md5sum ) {
|
209 |
if ( defined ( $config{ 'final procedure' } ) ) {
|
- |
|
210 |
my $result = $config{ 'final procedure' }->( $remoteServer, $remoteStaging, $remoteTarget, $directory );
|
- |
|
211 |
&logit( $result ) if ( $result );
|
209 |
&logit( "checksums match" );
|
212 |
} # do the final procedure, if it exist
|
210 |
return 1;
|
213 |
} else {
|
211 |
} else {
|
214 |
&logit( "Invalid checksum moving directory $directory" );
|
212 |
&logit( "Invalid checksum moving directory $directory" );
|
215 |
return 0;
|
213 |
return 0;
|
216 |
}
|
214 |
}
|
217 |
}
|
215 |
}
|
218 |
|
216 |
|
219 |
# simple little logger that records some information
|
217 |
# simple little logger that records some information
|
220 |
sub logit {
|
218 |
sub logit {
|
221 |
my $projectName = shift;
|
219 |
my $projectName = shift;
|
222 |
my $suffix = shift;
|
220 |
my $suffix = shift;
|
- |
|
221 |
$suffix = $config{'log suffix'} unless $suffix;
|
223 |
my $logfile = $config{'local root dir'} . "/$projectName.$suffix";
|
222 |
my $logfile = $config{'local root dir'} . "/$projectName.$suffix";
|
224 |
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
|
223 |
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
|
225 |
my $now = sprintf( "%04d-%02d-%02d %02d:%-2d:%02d", $year+1900, $mon+1, $mday, $hour, $min, $sec );
|
224 |
my $now = sprintf( "%04d-%02d-%02d %02d:%-2d:%02d", $year+1900, $mon+1, $mday, $hour, $min, $sec );
|
226 |
# create the logfile if it doesn't exist and set it to rw by everyone
|
225 |
# create the logfile if it doesn't exist and set it to rw by everyone
|
227 |
unless ( -e $logfile ) {
|
226 |
unless ( -e $logfile ) {
|
Line 328... |
Line 327... |
328 |
&logit( $directory, $config{'log suffix'}, "Error, move aborted" );
|
327 |
&logit( $directory, $config{'log suffix'}, "Error, move aborted" );
|
329 |
&logit( $directory, $config{'error suffix'}, $error );
|
328 |
&logit( $directory, $config{'error suffix'}, $error );
|
330 |
}
|
329 |
}
|
331 |
}
|
330 |
}
|
332 |
|
331 |
|
- |
|
332 |
|
333 |
# done with that, now we need to see if there is anything in the staging area
|
333 |
# done with that, now we need to see if there is anything in the staging area
|
334 |
# that needs to be sent to the remote server
|
334 |
# that needs to be sent to the remote server
|
335 |
`mkdir -p $config{'local staging area'}` unless -d $config{'local staging area'};
|
335 |
`mkdir -p $config{'local staging area'}` unless -d $config{'local staging area'};
|
336 |
opendir( my $dh, $config{'local staging area'} ) or die "Could not read $config{'local staging area'}: $!\n";
|
336 |
opendir( my $dh, $config{'local staging area'} ) or die "Could not read $config{'local staging area'}: $!\n";
|
337 |
my @directories;
|
337 |
my @directories;
|
Line 371... |
Line 371... |
371 |
} else {
|
371 |
} else {
|
372 |
&logit( $dirname, $config{'error suffix'}, "Unable to validate target for $dirname" );
|
372 |
&logit( $dirname, $config{'error suffix'}, "Unable to validate target for $dirname" );
|
373 |
}
|
373 |
}
|
374 |
}
|
374 |
}
|
375 |
|
375 |
|
- |
|
376 |
if ( defined ( $config{ 'final procedure' } ) ) {
|
- |
|
377 |
my $dirs = &runRemoteCommand( $config{'target server'},"ls -p $config{target server}/$config{target staging area} | grep /" );
|
- |
|
378 |
my @dirs = split( "\n", $dirs );
|
- |
|
379 |
foreach my $thisDir ( @dirs ) {
|
- |
|
380 |
my $result = $config{ 'final procedure' }->( $remoteServer, $remoteStaging, $remoteTarget, $directory );
|
- |
|
381 |
&logit( $result ) if ( $result );
|
- |
|
382 |
}
|
- |
|
383 |
} # do the final procedure, if it exist
|
- |
|
384 |
|
- |
|
385 |
|
376 |
|
386 |
|
377 |
1;
|
387 |
1;
|