Changeset 5
- Timestamp:
- 11/18/10 23:29:45 (14 years ago)
- Location:
- web/trunk
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
web/trunk/lib/Sophie/Base.pm
r4 r5 25 25 { 26 26 AutoCommit => 0, 27 PrintError => 1, 27 28 } 28 29 ); -
web/trunk/lib/Sophie/Base/Result/Medias.pm
r2 r5 6 6 7 7 __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 ); 9 11 __PACKAGE__->set_primary_key('d_media_key'); 10 12 __PACKAGE__->belongs_to(Arch => 'Sophie::Base::Result::Arch', 'd_arch'); -
web/trunk/lib/Sophie/Base/RpmsPath.pm
r4 r5 70 70 } 71 71 72 foreach my $rpm (sort keys %list) {72 foreach my $rpm (sort { $b cmp $a } keys %list) { 73 73 if ($localrpms->{$rpm} && $baserpms->{$rpm}) { 74 74 # nothing to do … … 109 109 my ($self, $rpm) = @_; 110 110 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 { 112 116 warn "Cannot read " . $self->path . '/' . $rpm; 113 117 return; … … 128 132 my $tmp = File::Temp->new( UNLINK => 1, SUFFIX => '.hdr' ); 129 133 unlink($tmp->filename); 130 $header->write($tmp );134 $header->write($tmp, 0); 131 135 seek($tmp, 0, 0); 132 136 my $string = ''; -
web/trunk/lib/Sophie/Controller/Distrib.pm
r4 r5 18 18 19 19 sub 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 22 33 my $rs = $c->model('Base')->resultset('Distribution'); 23 34 if (!$distribution) { … … 31 42 } 32 43 $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 34 51 } 35 52 36 53 sub 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 38 67 my $rs = $c->model('Base')->resultset('Distribution') 39 68 ->search(name => $distribution) … … 43 72 @{$c->stash->{xmlrpc}} = map { 44 73 { 74 dist_label => $_->dist_label, 45 75 label => $_->label, 46 76 group_label => $_->group_label, … … 79 109 my ( $self, $c, $distribution, $release, $arch ) = @_; 80 110 $c->stash->{distrib} = [ $distribution, $release, $arch ]; 81 warn @{$c->req->args};82 111 } 83 112 … … 143 172 } 144 173 174 sub list_rpms :Chained('distrib_view') PathPart('rpms') { 175 my ( $self, $c ) = @_; 176 $c->forward('rpms', $c->stash->{distrib}); 177 } 178 179 sub list_srpms :Chained('distrib_view') PathPart('srpms') { 180 my ( $self, $c ) = @_; 181 $c->forward('srpms', $c->stash->{distrib}); 182 } 183 184 sub srpm_by_name :Chained('distrib_view') PathPart('srpms/by-name') Args(1) { 185 } 186 sub rpm_by_name :Chained('distrib_view') PathPart('rpms/by-name') Args(1) { 187 } 188 sub rpm_by_pkid :Chained('distrib_view') PathPart('rpms/by-pkgid') Args(1) { 189 } 190 145 191 sub media_rpms : XMLRPC { 146 my ( $self, $c, $ media_key) = @_;192 my ( $self, $c, $distribution, $release, $arch, $media ) = @_; 147 193 @{$c->stash->{rpm}} = map { 148 194 { … … 152 198 } 153 199 $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 }) 155 204 ->search_related('MediasPaths') 156 205 ->search_related('Paths') … … 160 209 } 161 210 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 180 211 sub _media_list_rpms :Chained('distrib_view') PathPart('media') CaptureArgs(1) { 181 212 my ( $self, $c, $media ) = @_; … … 185 216 sub media_list_rpms :Chained('_media_list_rpms') PathPart('') { 186 217 my ( $self, $c ) = @_; 187 $c->forward('media_rpms', [ $c->stash->{media} ]);218 $c->forward('media_rpms', [ @{$c->stash->{distrib}}, $c->stash->{media} ]); 188 219 } 189 220 sub media_rpm_byname :Chained('_media_list_rpms') PathPart('rpms/by_name') {
Note: See TracChangeset
for help on using the changeset viewer.