Changeset 99


Ignore:
Timestamp:
12/09/10 05:50:31 (13 years ago)
Author:
nanardon
Message:
  • add rpms/basicinfo to get faster only basic information about a rpm
File:
1 edited

Legend:

Unmodified
Added
Removed
  • server/trunk/web/lib/Sophie/Controller/Rpms.pm

    r98 r99  
    5555} 
    5656 
    57  
    58 sub info : XMLRPCLocal { 
     57sub basicinfo : XMLRPCLocal { 
    5958    my ($self, $c, $pkgid) = @_; 
    6059 
    61     my %info = ( pkgid => $pkgid ); 
    62     foreach (qw(name version release epoch url group size packager 
    63                 url sourcerpm license buildhost 
    64                 arch distribution)) { 
     60    my $rpm = $c->model('base::Rpms')->find( 
     61        { pkgid => $pkgid }, 
     62    ); 
     63    $rpm or return; 
     64    my %info = $rpm->get_columns; 
     65    $info{src} = $info{issrc} ? 1 : 0; 
     66    foreach (qw(version release arch)) { 
    6567        if (my $r = $c->model('base')->resultset('Rpms')->search( 
    6668            { pkgid => $pkgid }, 
     
    7476        } 
    7577    } 
    76     my $rpm = $c->model('base')->resultset('Rpms')->search( 
     78 
     79    return $c->stash->{xmlrpc} = \%info; 
     80} 
     81 
     82 
     83sub info : XMLRPCLocal { 
     84    my ($self, $c, $pkgid) = @_; 
     85 
     86 
     87    my $info = $c->forward('basicinfo', [ $pkgid ]); 
     88    foreach (qw(name epoch url group size packager 
     89                url sourcerpm license buildhost 
     90                distribution)) { 
     91        if (my $r = $c->model('base')->resultset('Rpms')->search( 
    7792            { pkgid => $pkgid }, 
    78         )->next; 
    79     $info{description} = $rpm->description; 
    80     $info{summary} = $rpm->summary; 
    81     $info{src} = $rpm->issrc ? 1 : 0; 
    82     $info{evr} = $rpm->evr; 
    83  
    84     return $c->stash->{xmlrpc} = \%info; 
     93            {  
     94                select => [ qq{rpmquery("header", ?)} ], 
     95                as => [ 'qf' ], 
     96                bind => [ $_ ], 
     97            } 
     98            )->next) {  
     99            $info->{$_} = $r->get_column('qf'); 
     100        } 
     101    } 
     102 
     103    return $c->stash->{xmlrpc} = $info; 
    85104} 
    86105 
Note: See TracChangeset for help on using the changeset viewer.