Subversion Repositories DevTools

Rev

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

Rev 7389 Rev 7394
Line 101... Line 101...
101
    filtered => 0,                      # Packages filtered out
101
    filtered => 0,                      # Packages filtered out
102
    missing  => 0,                      # Packages missing
102
    missing  => 0,                      # Packages missing
103
    transfer => 0,                      # Packages to transfer
103
    transfer => 0,                      # Packages to transfer
104
    writable => 0,                      # Packages still writable - thus not transferred
104
    writable => 0,                      # Packages still writable - thus not transferred
105
    tagCount => 0,                      # Packages tagged to be transferred
105
    tagCount => 0,                      # Packages tagged to be transferred
-
 
106
    tagDelCount => 0,                   # Packages tagged to be deleted
106
                                        #
107
                                        #
107
                                        # Expected from the Target 
108
                                        # Expected from the Target 
108
#   Target.Hostname => '',              # Target Hostname
109
#   Target.Hostname => '',              # Target Hostname
109
#   Target.avail    => 0,               # Information from 'df' 1Kblocks 
110
#   Target.avail    => 0,               # Information from 'df' 1Kblocks 
110
#   Target.pcent    => 0,
111
#   Target.pcent    => 0,
Line 157... Line 158...
157
    'packageFilter'   => {'default'   => undef  , 'fmt' => 'text'},
158
    'packageFilter'   => {'default'   => undef  , 'fmt' => 'text'},
158
    'active'          => {'default'   => 1      , 'fmt' => 'bool'},
159
    'active'          => {'default'   => 1      , 'fmt' => 'bool'},
159
    'debug'           => {'default'   => 0      , 'fmt' => 'bool'},                 # Log to screen
160
    'debug'           => {'default'   => 0      , 'fmt' => 'bool'},                 # Log to screen
160
    'txdetail'        => {'default'   => 0      , 'fmt' => 'bool'},
161
    'txdetail'        => {'default'   => 0      , 'fmt' => 'bool'},
161
    'noTransfers'     => {'default'   => 0      , 'fmt' => 'bool'},                 # Debugging option to prevent transfers
162
    'noTransfers'     => {'default'   => 0      , 'fmt' => 'bool'},                 # Debugging option to prevent transfers
-
 
163
    'maxTarZips'      => {'default'   => 5      , 'fmt' => 'int'},
162
 
164
 
163
    #
165
    #
164
    #   Transfer via ssh
166
    #   Transfer via ssh
165
    #   Cannot be used in conjunction with S3Bucket
167
    #   Cannot be used in conjunction with S3Bucket
166
    #    
168
    #    
Line 1099... Line 1101...
1099
    my $txcount = $conf->{maxpackages};
1101
    my $txcount = $conf->{maxpackages};
1100
 
1102
 
1101
    #
1103
    #
1102
    #   Transfer packages that we have identified
1104
    #   Transfer packages that we have identified
1103
    #
1105
    #
1104
    send_pkgs:
-
 
1105
    while ( (my ($pname, $pvers)) = each %{$needPkgList} )
1106
    while ( (my ($pname, $pvers)) = each %{$needPkgList} )
1106
    {
1107
    {
1107
        while ( (my ($pver, $pdata) ) = each %{$pvers} )
1108
        while ( (my ($pver, $pdata) ) = each %{$pvers} )
1108
        {
1109
        {
1109
            if ( --$txcount <= 0 )
-
 
1110
            {
-
 
1111
                $logger->warn("Max transfer count exceeded: $needPkgListCount transfer remaining");
-
 
1112
                $lastReleaseScan = 0;
-
 
1113
                last send_pkgs;
-
 
1114
            }
-
 
1115
 
-
 
1116
            if ( readConfig() )
-
 
1117
            {
-
 
1118
                $logger->warn("Config file changed");
-
 
1119
                $txcount = 0;
-
 
1120
                last send_pkgs;
-
 
1121
            }
-
 
1122
 
-
 
1123
            transferPackage ($pname, $pver);
1110
            tagForTransfer($pname, $pver);
1124
            $needPkgListCount--;
1111
            $needPkgListCount--;
1125
            reapChildren();
-
 
1126
        }
1112
        }
1127
    }
1113
    }
1128
 
1114
 
1129
    #
1115
    #
1130
    #   Delete packages that have been identified as excess
1116
    #   Delete packages that have been identified as excess
1131
    #
1117
    #
1132
    delete_pkgs:
-
 
1133
    while ( (my ($pname, $pvers)) = each %{$excessPkgList} )
1118
    while ( (my ($pname, $pvers)) = each %{$excessPkgList} )
1134
    {
1119
    {
1135
        while ( (my ($pver, $pdata) ) = each %{$pvers} )
1120
        while ( (my ($pver, $pdata) ) = each %{$pvers} )
1136
        {
1121
        {
-
 
1122
            tagForDelete ($pname, $pver, $pdata);
1137
            if ( --$txcount <= 0 )
1123
            $excessPkgListCount--;
-
 
1124
        }
-
 
1125
    }
-
 
1126
 
-
 
1127
    #
-
 
1128
    #   Need to transmission remove tags for packages that don't need any more
-
 
1129
    #   ie: Tags that have since been made unnessesary
-
 
1130
    #
-
 
1131
    my $taggedPackages = getTaggedPackages();
-
 
1132
    if ($taggedPackages) {
-
 
1133
        #
-
 
1134
        #   Mark entries thay we still need
-
 
1135
        #
-
 
1136
        foreach my $pname ( keys %{$pkgList} )
-
 
1137
        {
-
 
1138
            foreach my $pver ( keys %{$pkgList->{$pname}} )
1138
            {
1139
            {
1139
                $logger->warn("Max transfer count exceeded: $excessPkgListCount deletion remaining");
1140
                if (exists $taggedPackages->{$pname}{$pver}) {
1140
                $lastReleaseScan = 0;
1141
                    $taggedPackages->{$pname}{$pver} = 1;
1141
                last delete_pkgs;
1142
                }
1142
            }
1143
            }
-
 
1144
        }
1143
 
1145
 
1144
            if ( readConfig() )
-
 
1145
            {
1146
        #
-
 
1147
        #   Sweep out entries that we don't need any more
-
 
1148
        foreach my $pname ( keys %{$taggedPackages} ) {
-
 
1149
            foreach my $pver ( keys %{$taggedPackages->{$pname}} ) {
1146
                $logger->warn("Config file changed");
1150
                unless ($taggedPackages->{$pname}{$pver}) {
-
 
1151
$logger->verbose("Untag: $pname $pver");
1147
                $txcount = 0;
1152
                    unTagForTransfer($pname, $pver);
1148
                last delete_pkgs;
1153
                }
1149
            }
1154
            }
1150
            
-
 
1151
            deletePackage ($pname, $pver, $pdata);
-
 
1152
            $excessPkgListCount--;
-
 
1153
            reapChildren();
-
 
1154
        }
1155
        }
1155
    }
-
 
1156
 
1156
 
-
 
1157
    }
-
 
1158
       
1157
    #
1159
    #
1158
    #   Send package list to the target
1160
    #   Send package list to the target
1159
    #
1161
    #
1160
    sendPackageList ($pkgList);
1162
    sendPackageList ($pkgList);
1161
 
1163
 
Line 1167... Line 1169...
1167
    $tagDirTime = 0;
1169
    $tagDirTime = 0;
1168
    $releaseScanMode = 0;
1170
    $releaseScanMode = 0;
1169
}
1171
}
1170
 
1172
 
1171
#-------------------------------------------------------------------------------
1173
#-------------------------------------------------------------------------------
-
 
1174
# Function        : tagForTransfer  
-
 
1175
#
-
 
1176
# Description     : Tag a package to be transferred
-
 
1177
#
-
 
1178
# Inputs          : $pname
-
 
1179
#                   $pvers 
-
 
1180
#
-
 
1181
# Returns         : 
-
 
1182
#
-
 
1183
sub tagForTransfer
-
 
1184
{
-
 
1185
    my ($pname, $pver) = @_;
-
 
1186
    my $tag = "$pname::$pver";
-
 
1187
    my $myTag =  catfile($conf->{'tagdir'} , $tag);
-
 
1188
    unless (-f $myTag ) {
-
 
1189
        $logger->verbose2("tagForTransfer: $pname, $pver");
-
 
1190
        Utils::TouchFile($conf, $myTag);
-
 
1191
    }
-
 
1192
    unlink 'DELD::' . $myTag;
-
 
1193
    unlink 'DELF::' . $myTag;
-
 
1194
}
-
 
1195
 
-
 
1196
#-------------------------------------------------------------------------------
-
 
1197
# Function        : unTagForTransfer  
-
 
1198
#
-
 
1199
# Description     : Un Tag a package to be transferred
-
 
1200
#
-
 
1201
# Inputs          : $pname
-
 
1202
#                   $pvers 
-
 
1203
#
-
 
1204
# Returns         : 
-
 
1205
#
-
 
1206
sub unTagForTransfer
-
 
1207
{
-
 
1208
    my ($pname, $pver) = @_;
-
 
1209
    my $tag = "$pname::$pver";
-
 
1210
    my $myTag =  catfile($conf->{'tagdir'} , $tag);
-
 
1211
    if (-f $myTag ) {
-
 
1212
        $logger->verbose2("UnTagForTransfer: $pname, $pver");
-
 
1213
        unlink($myTag);
-
 
1214
    }
-
 
1215
}
-
 
1216
 
-
 
1217
#-------------------------------------------------------------------------------
-
 
1218
# Function        : tagForDelete  
-
 
1219
#
-
 
1220
# Description     : Tag a package to be transferred
-
 
1221
#                   Generate tags of the form 
-
 
1222
#                       DELD::pname::pver   - Delayed Delete
-
 
1223
#                       DELF::pname::pver   - Forced Delete
-
 
1224
#
-
 
1225
# Inputs          : $pname
-
 
1226
#                   $pver
-
 
1227
#                   $pdata  - Type of delete
-
 
1228
#
-
 
1229
# Returns         : 
-
 
1230
#
-
 
1231
sub tagForDelete
-
 
1232
{
-
 
1233
    my ($pname, $pver, $pdata) = @_;
-
 
1234
    my $tag = "$pname::$pver";
-
 
1235
    my $myTag =  catfile($conf->{'tagdir'} , $tag);
-
 
1236
    my $delType = $pdata->{FORCEDELETE}  ? 'D' : 'F';
-
 
1237
    my $myDelTag =  'DEL' . $delType . '::' . $myTag;
-
 
1238
 
-
 
1239
    unless (-f $myDelTag ) {
-
 
1240
        $logger->verbose2("tagForDelete: $pname, $pver");
-
 
1241
        Utils::TouchFile($conf, $myDelTag);
-
 
1242
    }
-
 
1243
    unlink $myTag;
-
 
1244
}
-
 
1245
 
-
 
1246
#-------------------------------------------------------------------------------
-
 
1247
# Function        : getTaggedPackages  
-
 
1248
#
-
 
1249
# Description     : Determine the tagged packages 
-
 
1250
#
-
 
1251
# Inputs          : None
-
 
1252
#
-
 
1253
# Returns         : Returns a pointer to a hash of tagged packages of the form
-
 
1254
#
-
 
1255
sub getTaggedPackages
-
 
1256
{
-
 
1257
    my $taggedPackages = {};
-
 
1258
    foreach ( glob ("$conf->{'tagdir'}/*::*")) 
-
 
1259
    {
-
 
1260
        next if m~/DEL.::~;
-
 
1261
        m~.*/(.*)::(.*)~;
-
 
1262
        $taggedPackages->{$1}{$2} = 0;
-
 
1263
    }
-
 
1264
    return $taggedPackages; 
-
 
1265
}
-
 
1266
 
-
 
1267
 
-
 
1268
#-------------------------------------------------------------------------------
1172
# Function        : sendPackageList
1269
# Function        : sendPackageList
1173
#
1270
#
1174
# Description     : Transfer package list to the target
1271
# Description     : Transfer package list to the target
1175
#
1272
#
1176
# Inputs          : $pkgList            - Ref to hash of package names and versions
1273
# Inputs          : $pkgList            - Ref to hash of package names and versions
Line 1533... Line 1630...
1533
 
1630
 
1534
    #
1631
    #
1535
    #   Get list of things
1632
    #   Get list of things
1536
    #
1633
    #
1537
    my %config;
1634
    my %config;
1538
    if ($conf->{'allArchive'} )
-
 
-
 
1635
 
1539
    {
1636
    #
1540
        $config{allArchive} = 1
1637
    #   Is Tag Processing active
1541
    }
-
 
1542
    elsif ($conf->{'allProjects'} )
1638
    #   Can configure blat to disable tag sync
1543
    {
1639
    #
1544
        $config{allProjects} = 1;
1640
    if ( $conf->{'tagMaxPackages'} > 0 )
1545
    }
-
 
1546
    else
-
 
1547
    {
1641
    {
-
 
1642
 
-
 
1643
        if ($conf->{'allArchive'} )
-
 
1644
        {
-
 
1645
            $config{allArchive} = 1
-
 
1646
        }
-
 
1647
        elsif ($conf->{'allProjects'} )
-
 
1648
        {
-
 
1649
            $config{allProjects} = 1;
-
 
1650
        }
-
 
1651
        else
-
 
1652
        {
1548
        %{$config{projects}} = map { $_ => 1 } @projectList;
1653
            %{$config{projects}} = map { $_ => 1 } @projectList;
1549
        %{$config{releases}} = map { $_ => 1 } getReleaseList();
1654
            %{$config{releases}} = map { $_ => 1 } getReleaseList();
-
 
1655
        }
-
 
1656
    } else {
-
 
1657
        $config{disableTagTx} = 1
1550
    }
1658
    }
1551
 
1659
 
1552
    #
1660
    #
1553
    #   Save data
1661
    #   Save data
1554
    #
1662
    #
Line 1573... Line 1681...
1573
# Function        : processTags
1681
# Function        : processTags
1574
#
1682
#
1575
# Description     : Process tags and send marked package versions to the target
1683
# Description     : Process tags and send marked package versions to the target
1576
#                       Determine if new tags are present
1684
#                       Determine if new tags are present
1577
#                       Process each tag
1685
#                       Process each tag
-
 
1686
#                       
-
 
1687
#                       Two types of tag
-
 
1688
#                           Transfer Requests
-
 
1689
#                           Delete Request
-
 
1690
#                       Send packages before deleting packages    
1578
#
1691
#
1579
# Inputs          : None
1692
# Inputs          : None
1580
#
1693
#
1581
# Returns         : Nothing
1694
# Returns         : Nothing
1582
#
1695
#
1583
sub processTags
1696
sub processTags
1584
{
1697
{
1585
 
1698
 
1586
    #
1699
    #
1587
    #   Is Tag Processing active
-
 
1588
    #   Can configure blat to disable tag sync
-
 
1589
    #
-
 
1590
    if ( $conf->{'tagMaxPackages'} == 0 )
-
 
1591
    {
-
 
1592
        $logger->verbose2("processTags disabled");
-
 
1593
        return;
-
 
1594
    }
-
 
1595
 
-
 
1596
    #
-
 
1597
    #   Determine if new tags are present by examining the time
1700
    #   Determine if new tags are present by examining the time
1598
    #   that the directory was last modified.
1701
    #   that the directory was last modified.
1599
    #
1702
    #
1600
    #   Allow for a forced scan to catch packages that did not transfer
1703
    #   Allow for a forced scan to catch packages that did not transfer
1601
    #   on the first attempt
1704
    #   on the first attempt
1602
    #
1705
    #
1603
    my $tagCount = 0;
1706
    my $tagCount = 0;
-
 
1707
    my $delCount = 0;
-
 
1708
 
1604
    my ($mtime) = Utils::mtime($conf->{'tagdir'} );
1709
    my ($mtime) = Utils::mtime($conf->{'tagdir'} );
1605
    if ( ($mtime > $tagDirTime) || ($now > ($lastDirScan + $conf->{'forcedirscan'})) )
1710
    if ( ($mtime > $tagDirTime) || ($now > ($lastDirScan + $conf->{'forcedirscan'})) )
1606
    {
1711
    {
1607
        $logger->verbose2("processTags: ",$conf->{'tagdir'}, $mtime - $tagDirTime, $now - $lastDirScan);
1712
        $logger->verbose2("processTags: ",$conf->{'tagdir'}, $mtime - $tagDirTime, $now - $lastDirScan);
1608
        $tagDirTime = $mtime;
1713
        $tagDirTime = $mtime;
1609
        $lastDirScan = $now;
1714
        $lastDirScan = $now;
1610
        my $txcount = $conf->{'tagMaxPackages'};
1715
        my $txcount = $conf->{'tagMaxPackages'};
1611
 
1716
 
1612
 
-
 
1613
        my $dh;
1717
        my $dh;
1614
        unless (opendir($dh, $conf->{'tagdir'}))
1718
        unless (opendir($dh, $conf->{'tagdir'}))
1615
        {
1719
        {
1616
            $logger->warn ("can't opendir $conf->{'tagdir'}: $!");
1720
            $logger->warn ("can't opendir $conf->{'tagdir'}: $!");
1617
            return;
1721
            return;
Line 1620... Line 1724...
1620
        #
1724
        #
1621
        #   Process each entry
1725
        #   Process each entry
1622
        #   Ignore those that start with a .
1726
        #   Ignore those that start with a .
1623
        #
1727
        #
1624
        my %tagPkgList;
1728
        my %tagPkgList;
-
 
1729
        my %deleteTags;
1625
        while (my $tag = readdir($dh) )
1730
        while (my $tag = readdir($dh) )
1626
        {
1731
        {
1627
            next if ( $tag =~ m~^\.~ );
1732
            next if ( $tag =~ m~^\.~ );
1628
            my $file = "$conf->{'tagdir'}/$tag";
1733
            my $file = "$conf->{'tagdir'}/$tag";
1629
            $logger->verbose3("processTags: $file");
1734
            $logger->verbose3("processTags: $file");
1630
 
1735
 
1631
            next unless ( -f $file );
1736
            next unless ( -f $file );
1632
            next if ( $tag  eq 'ReleaseList' );
1737
            next if ( $tag  eq 'ReleaseList' );
1633
 
1738
 
-
 
1739
            if ( $tag  =~ m~^DEL(.)::(.+)::(.+)~) {
-
 
1740
                $deleteTags {$2}{$3}{file} = $file;
-
 
1741
                $deleteTags {$2}{$3}{mode} = $1 eq 'F' ? 1 : 0;
-
 
1742
                $delCount++;
-
 
1743
            }
-
 
1744
 
1634
            if ( $tag =~ m~(.+)::(.+)~  )
1745
            if ( $tag =~ m~(.+)::(.+)~  )
1635
            {
1746
            {
1636
                my $package = $1;
-
 
1637
                my $version = $2;
1747
                $tagPkgList{$1}{$2} = $file;
1638
                $tagCount++;
1748
                $tagCount++;
1639
                $tagPkgList{$package}{$version} = $file;
-
 
1640
            }
1749
            }
1641
        }
1750
        }
1642
        $statistics{tagCount} = $tagCount;
1751
        $statistics{tagCount} = $tagCount;
-
 
1752
        $statistics{tagDelCount} = $delCount;
1643
        closedir $dh;
1753
        closedir $dh;
1644
 
1754
 
1645
        #
1755
        #
-
 
1756
        #   Process delete requests after all transfers have occured
-
 
1757
        #   
-
 
1758
        unless ($tagCount) {
-
 
1759
            delete_pkgs:
-
 
1760
            while ( (my ($pname, $pvers)) = each %deleteTags )
-
 
1761
            {
-
 
1762
                while ( (my ($pver, $pdata) ) = each %{$pvers} )
-
 
1763
                {
-
 
1764
                    if ( --$txcount <= 0 )
-
 
1765
                    {
-
 
1766
                        $logger->warn("Max tag transfer count exceeded: $delCount deletion remaining");
-
 
1767
                        $tagDirTime = 0;
-
 
1768
                        last delete_pkgs;
-
 
1769
                    }
-
 
1770
 
-
 
1771
                    if ( readConfig() )
-
 
1772
                    {
-
 
1773
                        $logger->warn("Config file changed");
-
 
1774
                        $txcount = 0;
-
 
1775
                        $tagDirTime = 0;
-
 
1776
                        last delete_pkgs;
-
 
1777
                    }
-
 
1778
                    
-
 
1779
                    deletePackage ($pname, $pver, $pdata->{mode});
-
 
1780
                    unlink $pdata->{file};
-
 
1781
                    $delCount--;
-
 
1782
                    reapChildren();
-
 
1783
                }
-
 
1784
            }
-
 
1785
        }
-
 
1786
 
-
 
1787
        #
1646
        #   Process the packages located in the tags area
1788
        #   Process the packages located in the tags area
1647
        #
1789
        #
1648
        send_tags:
1790
        send_tags:
1649
        while ( (my ($package, $pvers)) = each %{tagPkgList} )
1791
        while ( (my ($package, $pvers)) = each %{tagPkgList} )
1650
        {
1792
        {
1651
            while ( (my ($version, $file) ) = each %{$pvers} )
1793
            while ( (my ($version, $file) ) = each %{$pvers} )
1652
            {
1794
            {
1653
                if ( --$txcount <= 0 )
1795
                if ( --$txcount <= 0 )
1654
                {
1796
                {
1655
                    $logger->warn("Max tag transfer count exceeded: $tagCount transfer remaining");
1797
                    $logger->warn("Max tag transfer count exceeded: $tagCount transfer remaining");
-
 
1798
                    $logger->warn("Max tag transfer count exceeded: $delCount deletion remaining");
1656
                    $tagDirTime = 0;
1799
                    $tagDirTime = 0;
1657
                    last send_tags;
1800
                    last send_tags;
1658
                }
1801
                }
1659
 
1802
 
1660
                if ( readConfig() )
1803
                if ( readConfig() )
Line 1751... Line 1894...
1751
        }
1894
        }
1752
        LogTxError ($?);
1895
        LogTxError ($?);
1753
    }
1896
    }
1754
}
1897
}
1755
 
1898
 
-
 
1899
#-------------------------------------------------------------------------------
-
 
1900
# Function        : calcZipRequests 
-
 
1901
#
-
 
1902
# Description     : Determine the number of packages that I need that have
-
 
1903
#                   outstanding ZIP requests
-
 
1904
#                   
-
 
1905
#                   Purpose is to limit the number of ZIP requests that are
-
 
1906
#                   outstanding at any one time to reduce disc space
-
 
1907
#                   
-
 
1908
#                   ie: Iff there 1000 outstanding transfers, we don't need to zip all
-
 
1909
#                   of the packages right now.
-
 
1910
#
-
 
1911
# Inputs          : 
-
 
1912
#
-
 
1913
# Returns         : 
-
 
1914
#
-
 
1915
#
-
 
1916
sub calcZipRequests
-
 
1917
{
-
 
1918
    my $zipRequests = 0;
-
 
1919
 
-
 
1920
    $conf->{'tagdir'} =~ m~^(.*)/~;
-
 
1921
    my $tagRoot = $1;
-
 
1922
 
-
 
1923
    my $dh;
-
 
1924
    if ( opendir($dh, $conf->{'tagdir'}) )
-
 
1925
    {
-
 
1926
        while (my $tag = readdir($dh) )
-
 
1927
        {
-
 
1928
            next if ( $tag =~ m~^\.~ );
-
 
1929
            my $file = "$conf->{'tagdir'}/$tag";
-
 
1930
            $logger->verbose3("calcZipRequests: $file");
-
 
1931
 
-
 
1932
            next unless ( -f $file );
-
 
1933
            next if ( $tag  eq 'ReleaseList' );
-
 
1934
            next if ( $tag =~ m~^DEL(.)::~);
-
 
1935
 
-
 
1936
            my $zipTag = catfile($tagRoot, 'tarZip', $tag);
-
 
1937
            if (-f $zipTag ) {
-
 
1938
                $zipRequests++;
-
 
1939
            }
-
 
1940
        }
-
 
1941
        closedir $dh;
-
 
1942
    }
-
 
1943
    $logger->verbose("zipRequests: $zipRequests");
-
 
1944
    return $zipRequests;
-
 
1945
}
-
 
1946
 
1756
 
1947
 
1757
#-------------------------------------------------------------------------------
1948
#-------------------------------------------------------------------------------
1758
# Function        : transferPackage
1949
# Function        : transferPackage
1759
#
1950
#
1760
# Description     : Transfer specified package to target system
1951
# Description     : Transfer specified package to target system
Line 1816... Line 2007...
1816
 
2007
 
1817
    my $tzdir = catfile( $conf->{'dpkg_archive'} , '.dpkg_archive', 'tarStore' );
2008
    my $tzdir = catfile( $conf->{'dpkg_archive'} , '.dpkg_archive', 'tarStore' );
1818
    my $tzfile = $pname . '__' . $pver . '.tgz';
2009
    my $tzfile = $pname . '__' . $pver . '.tgz';
1819
    my $tzpath = catfile($tzdir, $tzfile);
2010
    my $tzpath = catfile($tzdir, $tzfile);
1820
    unless (-f $tzpath) {
2011
    unless (-f $tzpath) {
1821
        $logger->verbose("transferPackage: tarZip not found - $tzpath");
2012
        $logger->verbose("transferPackage: tarZip not found - $tzfile");
1822
 
2013
 
1823
        $conf->{'tagdir'} =~ m~^(.*)/~;
2014
        $conf->{'tagdir'} =~ m~^(.*)/~;
1824
        my $tagRoot = $1;
2015
        my $tagRoot = $1;
1825
        my $tag = "$pname::$pver";
2016
        my $tag = "$pname::$pver";
1826
        my $zipTag = catfile($tagRoot, 'tarZip', $tag);
2017
        my $zipTag = catfile($tagRoot, 'tarZip', $tag);
1827
        my $myTag =  catfile($conf->{'tagdir'} , $tag);
2018
        my $myTag =  catfile($conf->{'tagdir'} , $tag);
1828
 
2019
 
1829
        $logger->logmsg("transferPackage. Request Zip: @_") unless ( -f $zipTag && -f $myTag );
2020
        $logger->logmsg("transferPackage. Request Zip: @_") unless ( -f $zipTag && -f $myTag );
1830
 
-
 
1831
        Utils::TouchFile($conf, $myTag) unless -f $myTag;
2021
        Utils::TouchFile($conf, $myTag) unless -f $myTag;
-
 
2022
 
-
 
2023
        unless (-f $zipTag) {
-
 
2024
            if (calcZipRequests() < $conf->{maxTarZips} ) {
1832
        Utils::TouchFile($conf, $zipTag) unless -f $zipTag;
2025
                Utils::TouchFile($conf, $zipTag);
-
 
2026
            } else {
-
 
2027
                $logger->verbose("transferPackage: Max outstanding tarZip Requests");
-
 
2028
            }
-
 
2029
        }
1833
        return 0;
2030
        return 0;
1834
    }
2031
    }
1835
 
2032
 
1836
 
2033
 
1837
    ###########################################################################
2034
    ###########################################################################
Line 2005... Line 2202...
2005
#
2202
#
2006
# Description     : Delete specified package to target system
2203
# Description     : Delete specified package to target system
2007
#
2204
#
2008
# Inputs          : $pname          - Name of the package
2205
# Inputs          : $pname          - Name of the package
2009
#                   $pver           - Package version
2206
#                   $pver           - Package version
2010
#                   $pdata          - Hash of extra data
2207
#                   $mode           - 1 ForcedDelete 0: Tag for delayed Delete
2011
#
2208
#
2012
# Returns         : true    - Package deleted
2209
# Returns         : true    - Package deleted
2013
#                   false   - Package not deleted
2210
#                   false   - Package not deleted
2014
#
2211
#
2015
sub deletePackage
2212
sub deletePackage
2016
{
2213
{
2017
    my ($pname, $pver, $pdata ) = @_;
2214
    my ($pname, $pver, $mode ) = @_;
2018
    my $rv = 0;
2215
    my $rv = 0;
2019
    my $cmdRv = 0;
2216
    my $cmdRv = 0;
2020
    $logger->logmsg("deletePackage: $pname, $pver");
2217
    $logger->logmsg("deletePackage: $pname, $pver");
2021
 
2218
 
2022
    if ($isS3Target) {
2219
    if ($isS3Target) {
Line 2041... Line 2238...
2041
        #   Create the process pipe to delete the package
2238
        #   Create the process pipe to delete the package
2042
        #   ssh  ... "./delete_package ${rx_opts} \"$pname\" \"$pver\""
2239
        #   ssh  ... "./delete_package ${rx_opts} \"$pname\" \"$pver\""
2043
        #
2240
        #
2044
        unless ($conf->{'noTransfers'}) {
2241
        unless ($conf->{'noTransfers'}) {
2045
            my $ph;
2242
            my $ph;
2046
            my $flags = $pdata->{FORCEDELETE}  ? '' : ' -T';
2243
            my $flags = $mode  ? '-T' : '';
2047
            my $tgt_cmd = "$conf->{'bindir'}/delete_package $flags \"$pname\" \"$pver\"";
2244
            my $tgt_cmd = "$conf->{'bindir'}/delete_package $flags \"$pname\" \"$pver\"";
2048
            my $ssh_cmd = sshCmd($tgt_cmd);
2245
            my $ssh_cmd = sshCmd($tgt_cmd);
2049
 
2246
 
2050
            $logger->verbose2("deletePackage:tgt_cmd:$tgt_cmd");
2247
            $logger->verbose2("deletePackage:tgt_cmd:$tgt_cmd");
2051
            $logger->verbose2("deletePackage:ssh_cmd:$ssh_cmd");
2248
            $logger->verbose2("deletePackage:ssh_cmd:$ssh_cmd");