Subversion Repositories DevTools

Rev

Rev 3847 | Rev 4457 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3847 Rev 4456
Line 82... Line 82...
82
    'tagage'          => {'default'   => '10m'  , 'fmt' => 'period'},
82
    'tagage'          => {'default'   => '10m'  , 'fmt' => 'period'},
83
    'tagListUpdate'   => {'default'   => '1h'   , 'fmt' => 'period'},
83
    'tagListUpdate'   => {'default'   => '1h'   , 'fmt' => 'period'},
84
    'synctime'        => {'default'   => '2h'   , 'fmt' => 'period'},
84
    'synctime'        => {'default'   => '2h'   , 'fmt' => 'period'},
85
    'syncretry'       => {'default'   => '5m'   , 'fmt' => 'period'},
85
    'syncretry'       => {'default'   => '5m'   , 'fmt' => 'period'},
86
    'allProjects'     => {'default'   => 0      , 'fmt' => 'bool'},
86
    'allProjects'     => {'default'   => 0      , 'fmt' => 'bool'},
-
 
87
    'allArchive'      => {'default'   => 0      , 'fmt' => 'bool'},
87
    'project'         => {'mandatory' => 0      , 'fmt' => 'int_list'},
88
    'project'         => {'mandatory' => 0      , 'fmt' => 'int_list'},
88
    'release'         => {'mandatory' => 0      , 'fmt' => 'int_list'},
89
    'release'         => {'mandatory' => 0      , 'fmt' => 'int_list'},
89
    'writewindow'     => {'default'   => '3h'   , 'fmt' => 'period'},
90
    'writewindow'     => {'default'   => '3h'   , 'fmt' => 'period'},
90
    'maxpackages'     => {'default'   => 5      , 'fmt' => 'int'},
91
    'maxpackages'     => {'default'   => 5      , 'fmt' => 'int'},
91
    'deletePackages'  => {'default'   => 0      , 'fmt' => 'bool'},
92
    'deletePackages'  => {'default'   => 0      , 'fmt' => 'bool'},
Line 215... Line 216...
215
        $logger->warn("Transfer session configured as not active")
216
        $logger->warn("Transfer session configured as not active")
216
            unless ( $conf->{'active'} );
217
            unless ( $conf->{'active'} );
217
 
218
 
218
        $logger->warn("Transfer all projects packages")
219
        $logger->warn("Transfer all projects packages")
219
            if ( $conf->{'allProjects'} );
220
            if ( $conf->{'allProjects'} );
-
 
221
        $logger->warn("Transfer entire package archive")
-
 
222
            if ( $conf->{'allArchive'} );
-
 
223
 
220
 
224
 
221
        #
225
        #
222
        #   When config is read force some actions
226
        #   When config is read force some actions
223
        #       - Force tagList to be created
227
        #       - Force tagList to be created
224
        #       - Force release scan
228
        #       - Force release scan
Line 301... Line 305...
301
        $logger->warn("Cannot retrieve package list: $?");
305
        $logger->warn("Cannot retrieve package list: $?");
302
        return;
306
        return;
303
    }
307
    }
304
 
308
 
305
#Utils::DebugDumpData ("remotePkgList", $remotePkgList);
309
#Utils::DebugDumpData ("remotePkgList", $remotePkgList);
306
    
310
   
307
 
-
 
308
    #
311
    #
309
    #   Determine the set of packages in the releases to be transferred
312
    #   Determine the set of packages in the releases to be transferred
310
    #   Examine
-
 
311
    #
313
    # 
312
    my @rlist = getReleaseList();
314
    my $pkgList;
313
    unless ( @rlist )
315
    if ( $conf->{'allArchive'} )
314
    {
316
    {
-
 
317
        #   Examine entire archive
-
 
318
        #
-
 
319
        $pkgList = getArchiveList();
-
 
320
    }
-
 
321
    else
-
 
322
    {
-
 
323
        #   Examine Releases
-
 
324
        #
-
 
325
        my @rlist = getReleaseList();
-
 
326
        unless ( @rlist )
-
 
327
        {
315
        $logger->verbose2("No Releases to Process");
328
            $logger->verbose2("No Releases to Process");
316
        return;
329
            return;
-
 
330
        }
-
 
331
        $pkgList = getPkgList(@rlist);
317
    }
332
    }
318
    my $pkgList = getPkgList(@rlist);
-
 
319
 
333
 
320
    #
334
    #
321
    #   Append extra packages
335
    #   Append extra packages
322
    #   These are packages that are specifically named by the user
336
    #   These are packages that are specifically named by the user
323
    #
337
    #
Line 884... Line 898...
884
    closedir $dh;
898
    closedir $dh;
885
    return @versionList;
899
    return @versionList;
886
}
900
}
887
 
901
 
888
#-------------------------------------------------------------------------------
902
#-------------------------------------------------------------------------------
-
 
903
# Function        : getArchiveList 
-
 
904
#
-
 
905
# Description     : Get the entire set of package versions in the archive
-
 
906
#
-
 
907
# Inputs          : 
-
 
908
#
-
 
909
# Returns         : Ref to a hask of package versions
-
 
910
#
-
 
911
sub getArchiveList
-
 
912
{
-
 
913
    my $pkgDir = $conf->{'dpkg_archive'};
-
 
914
    my %archiveList;
-
 
915
    my $dh;
-
 
916
    my @pkgList;
-
 
917
 
-
 
918
    unless (opendir($dh, $pkgDir))
-
 
919
    {
-
 
920
        $logger->warn ("Can't opendir $pkgDir: $!");
-
 
921
        return \%archiveList;
-
 
922
    }
-
 
923
 
-
 
924
    #
-
 
925
    #   Process each entry
-
 
926
    #   Ignore those that start with a .
-
 
927
    #   Ignore files
-
 
928
    #
-
 
929
    while (my $pkgName = readdir($dh) )
-
 
930
    {
-
 
931
        next if ( $pkgName =~ m~^\.~ );
-
 
932
        my $file = catfile($pkgDir, $pkgName);
-
 
933
 
-
 
934
        next unless ( -d $file );
-
 
935
        $logger->verbose3("getArchiveList: $pkgName");
-
 
936
        push @pkgList, $pkgName;
-
 
937
    }
-
 
938
    closedir $dh;
-
 
939
 
-
 
940
    #   Now get the package versions
-
 
941
    #       Sort for pretty display
-
 
942
    foreach my $pname (sort @pkgList)
-
 
943
    {
-
 
944
        foreach my $pver (getPackageVersions($pname))
-
 
945
        {
-
 
946
            $archiveList{$pname}{$pver} = 1;
-
 
947
        }
-
 
948
    }
-
 
949
 
-
 
950
    return \%archiveList;
-
 
951
}
-
 
952
 
-
 
953
#-------------------------------------------------------------------------------
889
# Function        : maintainTagList
954
# Function        : maintainTagList
890
#
955
#
891
# Description     : Maintain a data structure for the maintenance of the
956
# Description     : Maintain a data structure for the maintenance of the
892
#                   tags directory
957
#                   tags directory
893
#
958
#
Line 1062... Line 1127...
1062
        $logger->warn("transferPackage:Package not found: $pname, $pver");
1127
        $logger->warn("transferPackage:Package not found: $pname, $pver");
1063
        return $rv;
1128
        return $rv;
1064
    }
1129
    }
1065
 
1130
 
1066
    #
1131
    #
1067
    #   Create the process piple to transfer the package
1132
    #   Create the process pipe to transfer the package
1068
    #   Tar the directory and pipe the result through a ssh session to
1133
    #   Tar the directory and pipe the result through a ssh session to
1069
    #   the target machine
1134
    #   the target machine
1070
    #   $tar -czf - -C "$dpkg/${pname}/${pver}" . |  ssh  ... "./receive_package pname pver"
1135
    #   $tar -czf - -C "$dpkg/${pname}/${pver}" . |  ssh  ... "./receive_package pname pver"
1071
    #
1136
    #
1072
    my $ph;
1137
    my $ph;