Changeset 5


Ignore:
Timestamp:
11/18/10 23:29:45 (14 years ago)
Author:
nanardon
Message:
  • reverse sort of rpms to add new rpm before removing old
  • trap error
Location:
web/trunk
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • web/trunk/lib/Sophie/Base.pm

    r4 r5  
    2525       { 
    2626           AutoCommit => 0, 
     27           PrintError => 1, 
    2728       } 
    2829   );  
  • web/trunk/lib/Sophie/Base/Result/Medias.pm

    r2 r5  
    66 
    77__PACKAGE__->table('d_media'); 
    8 __PACKAGE__->add_columns(qw/d_media_key label comment group_label d_arch/); 
     8__PACKAGE__->add_columns( 
     9    qw/d_media_key label comment group_label d_arch dist_label/ 
     10); 
    911__PACKAGE__->set_primary_key('d_media_key'); 
    1012__PACKAGE__->belongs_to(Arch => 'Sophie::Base::Result::Arch', 'd_arch'); 
  • web/trunk/lib/Sophie/Base/RpmsPath.pm

    r4 r5  
    7070    } 
    7171 
    72     foreach my $rpm (sort keys %list) { 
     72    foreach my $rpm (sort { $b cmp $a } keys %list) { 
    7373        if ($localrpms->{$rpm} && $baserpms->{$rpm}) { 
    7474            # nothing to do 
     
    109109    my ($self, $rpm) = @_; 
    110110 
    111     my $header = RPM4::Header->new($self->path . '/' . $rpm) or do { 
     111    my $header; 
     112    eval { 
     113        $header = RPM4::Header->new($self->path . '/' . $rpm)  
     114    }; 
     115    $header or do { 
    112116        warn "Cannot read " . $self->path . '/' . $rpm; 
    113117        return; 
     
    128132    my $tmp = File::Temp->new( UNLINK => 1, SUFFIX => '.hdr' ); 
    129133    unlink($tmp->filename); 
    130     $header->write($tmp); 
     134    $header->write($tmp, 0); 
    131135    seek($tmp, 0, 0); 
    132136    my $string = ''; 
  • web/trunk/lib/Sophie/Controller/Distrib.pm

    r4 r5  
    1818 
    1919sub list :XMLRPC { 
    20     my ( $self, $c, $distribution, $release ) = @_; 
    21     $c->session->{toto} = 1;  
     20    my ( $self, $c, $distrib, $release, $arch ) = @_; 
     21 
     22    my $distribution; 
     23    if (ref $distrib) { 
     24        ($distribution, $release, $arch) = ( 
     25            $distrib->{distribution}, 
     26            $distrib->{release}, 
     27            $distrib->{arch}, 
     28        ); 
     29    } else { 
     30        $distribution = $distrib; 
     31    } 
     32 
    2233    my $rs = $c->model('Base')->resultset('Distribution'); 
    2334    if (!$distribution) { 
     
    3142    } 
    3243    $rs = $rs->search(version => $release)->search_related('Arch'); 
    33     @{$c->stash->{xmlrpc}} = map { $_->arch } $rs->all; 
     44    if (!$arch) { 
     45        @{$c->stash->{xmlrpc}} = map { $_->arch } $rs->all; 
     46        return; 
     47    } 
     48    $rs = $rs->search(arch => $arch)->search_related('Medias'); 
     49    @{$c->stash->{xmlrpc}} = map { $_->label } $rs->all; 
     50 
    3451} 
    3552 
    3653sub struct :XMLRPC { 
    37     my ( $self, $c, $distribution, $release, $arch ) = @_; 
     54    my ( $self, $c, $distrib, $release, $arch ) = @_; 
     55 
     56    my $distribution; 
     57    if (ref $distrib) { 
     58        ($distribution, $release, $arch) = ( 
     59            $distrib->{distribution}, 
     60            $distrib->{release}, 
     61            $distrib->{arch}, 
     62        ); 
     63    } else { 
     64        $distribution = $distrib; 
     65    } 
     66 
    3867    my $rs = $c->model('Base')->resultset('Distribution') 
    3968        ->search(name => $distribution) 
     
    4372    @{$c->stash->{xmlrpc}} = map {  
    4473        {  
     74            dist_label => $_->dist_label, 
    4575            label => $_->label, 
    4676            group_label => $_->group_label, 
     
    79109    my ( $self, $c, $distribution, $release, $arch ) = @_; 
    80110    $c->stash->{distrib} = [ $distribution, $release, $arch ]; 
    81     warn @{$c->req->args}; 
    82111} 
    83112 
     
    143172} 
    144173 
     174sub list_rpms :Chained('distrib_view') PathPart('rpms') { 
     175    my ( $self, $c ) = @_; 
     176    $c->forward('rpms', $c->stash->{distrib}); 
     177} 
     178 
     179sub list_srpms :Chained('distrib_view') PathPart('srpms') { 
     180    my ( $self, $c ) = @_; 
     181    $c->forward('srpms',    $c->stash->{distrib}); 
     182} 
     183 
     184sub srpm_by_name :Chained('distrib_view') PathPart('srpms/by-name') Args(1) { 
     185} 
     186sub rpm_by_name :Chained('distrib_view') PathPart('rpms/by-name') Args(1) { 
     187} 
     188sub rpm_by_pkid :Chained('distrib_view') PathPart('rpms/by-pkgid') Args(1) { 
     189} 
     190 
    145191sub media_rpms : XMLRPC { 
    146     my ( $self, $c, $media_key ) = @_; 
     192    my ( $self, $c, $distribution, $release, $arch, $media ) = @_; 
    147193    @{$c->stash->{rpm}} = map { 
    148194            {  
     
    152198        } 
    153199        $c->model('Base') 
    154         ->resultset('Medias')->search({ d_media_key => $media_key }) 
     200        ->resultset('Distribution')->search({ name => $distribution }) 
     201        ->search_related('Release', { version => $release }) 
     202        ->search_related('Arch',    { arch => $arch }) 
     203        ->search_related('Medias', { label => $media }) 
    155204        ->search_related('MediasPaths') 
    156205        ->search_related('Paths') 
     
    160209} 
    161210 
    162  
    163 sub list_rpms :Chained('distrib_view') PathPart('rpms') { 
    164     my ( $self, $c ) = @_; 
    165     $c->forward('rpms',    $c->stash->{distrib}); 
    166 } 
    167  
    168 sub list_srpms :Chained('distrib_view') PathPart('srpms') { 
    169     my ( $self, $c ) = @_; 
    170     $c->forward('srpms',    $c->stash->{distrib}); 
    171 } 
    172  
    173 sub srpm_by_name :Chained('distrib_view') PathPart('srpms/by-name') Args(1) { 
    174 } 
    175 sub rpm_by_name :Chained('distrib_view') PathPart('rpms/by-name') Args(1) { 
    176 } 
    177 sub rpm_by_pkid :Chained('distrib_view') PathPart('rpms/by-pkgid') Args(1) { 
    178 } 
    179  
    180211sub _media_list_rpms :Chained('distrib_view') PathPart('media') CaptureArgs(1) { 
    181212    my ( $self, $c, $media ) = @_; 
     
    185216sub media_list_rpms :Chained('_media_list_rpms') PathPart('') { 
    186217    my ( $self, $c ) = @_; 
    187     $c->forward('media_rpms', [ $c->stash->{media} ]); 
     218    $c->forward('media_rpms', [ @{$c->stash->{distrib}}, $c->stash->{media} ]); 
    188219} 
    189220sub media_rpm_byname :Chained('_media_list_rpms') PathPart('rpms/by_name') { 
Note: See TracChangeset for help on using the changeset viewer.