Changeset 310
- Timestamp:
- 01/15/11 19:36:11 (13 years ago)
- Location:
- server/trunk/web/lib/Sophie/Controller
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
server/trunk/web/lib/Sophie/Controller/Analysis.pm
r306 r310 71 71 $c->stash->{xmlrpc} = $c->forward( 72 72 '/analysis/solver/find_requirements', 73 [ $c->session->{analyse_dist}, 74 'P', \@deplist, \@folderid ] 73 [ $c->session->{analyse_dist}, \@deplist, \@folderid ] 75 74 ); 76 75 } … … 100 99 101 100 $c->forward('/analysis/solver/find_requirements', 102 [ $distspec, 'P', \@deplist, $pool ]); 101 [ $distspec, \@deplist, $pool ]); 102 } 103 104 sub find_conflicts : XMLRPC { 105 my ($self, $c, $distspec, $id, $pool) = @_; 106 $pool ||= $id; 107 my @provides; 108 foreach my $dep ($c->model('Base::UsersDeps')->search( 109 { 110 pid => [ $id ], 111 deptype => 'C', 112 }, 113 { 114 select => [ 'rpmsenseflag("flags")', 115 qw(depname flags evr deptype) ], 116 as => [ qw'sense depname flags evr deptype' ], 117 } 118 )->all) { 119 $dep->get_column('depname') =~ /^rpmlib\(/ and next; 120 push(@provides, [ 121 $dep->get_column('depname'), 122 $dep->get_column('sense'), 123 $dep->get_column('evr') ]); 124 } 125 my @conflicts; 126 foreach my $dep ($c->model('Base::UsersDeps')->search( 127 { 128 pid => [ $id ], 129 deptype => 'C', 130 }, 131 { 132 select => [ 'rpmsenseflag("flags")', 133 qw(depname flags evr deptype) ], 134 as => [ qw'sense depname flags evr deptype' ], 135 } 136 )->all) { 137 $dep->get_column('depname') =~ /^rpmlib\(/ and next; 138 push(@conflicts, [ 139 $dep->get_column('depname'), 140 $dep->get_column('sense'), 141 $dep->get_column('evr') ]); 142 } 143 144 $c->forward('/analysis/solver/find_conflicts', 145 [ $distspec, \@conflicts, \@provides, $pool ]); 146 } 147 148 sub is_obsoleted : XMLRPC { 149 my ($self, $c, $distspec, $id, $pool) = @_; 150 151 my $pkg = $c->model('Base::UsersRpms')->find( 152 { id => $id } 153 ); 154 155 $c->forward('/analysis/solver/is_obsoleted', 156 [ $distspec, [ [ $pkg->name, '=', $pkg->evr ] ], $pool ] 157 ); 158 } 159 160 sub is_updated : XMLRPC { 161 my ($self, $c, $distspec, $id, $pool) = @_; 162 my $pkg = $c->model('Base::UsersRpms')->find( 163 { id => $id } 164 ); 165 166 $c->forward('/analysis/solver/is_updated', 167 [ $distspec, [ $pkg->name, '>=', $pkg->evr ], $pool ] 168 ); 169 } 170 171 sub files_conflicts : XMLRPC { 172 my ($self, $c, $distspec, $id, $pool) = @_; 173 my @files = 174 map { { $_->get_columns } } 175 grep { $_->dirname } 176 $c->model('Base::UsersFiles')->search( 177 { pid => $id } 178 ); 179 180 $c->forward('/analysis/solver/files_conflicts', 181 [ $distspec, \@files, $pool ] 182 ); 103 183 } 104 184 -
server/trunk/web/lib/Sophie/Controller/Analysis/Solver.pm
r306 r310 28 28 } 29 29 30 sub find_requirements : XMLRPC{30 sub solve_dependencies : Private { 31 31 my ($self, $c, $searchspec, $over, $deplist, $pool) = @_; 32 32 … … 122 122 } 123 123 124 sub parentdir : XMLRPC { 124 sub find_requirements : Private { 125 my ($self, $c, $searchspec, $deplist, $pool) = @_; 126 $c->forward('solve_dependencies', [ $searchspec, 'P', $deplist, $pool ]); 127 } 128 129 sub find_conflicts : Private { 130 my ($self, $c, $searchspec, $conflicts, $provides, $pool) = @_; 131 my $resp = $c->forward('solve_dependencies', [ $searchspec, 'P', $conflicts, $pool ]); 132 my $resc = $c->forward('solve_dependencies', [ $searchspec, 'C', $provides, $pool ]); 133 $c->stash->{xmlrpc} = { 134 pkg => [ @{ $resp->{pkg} }, @{ $resc->{pkg} } ], 135 pool => [ @{ $resp->{pool} }, @{ $resc->{pool} } ], 136 } 137 } 138 139 sub is_obsoleted : Private { 140 my ($self, $c, $searchspec, $deplist, $pool) = @_; 141 $c->forward('solve_dependencies', [ $searchspec, 'O', $deplist, $pool ]); 142 } 143 144 sub is_updated : Private { 145 my ($self, $c, $searchspec, $deplist, $pool) = @_; 146 my $pkgid = $c->forward('/search/rpm/byname', [ $searchspec, @{ $deplist } ]); 147 $c->stash->{xmlrpc} = { 148 pkg => $pkgid, 149 pool => [], 150 } 151 } 152 153 sub files_conflicts : Private { 154 my ($self, $c, $searchspec, $files, $pool) = @_; 155 156 my %fc; 157 my %pkgid; 158 foreach my $file (@{ $files || []}) { 159 my $res = $c->forward('/search/file/byname', 160 [ $searchspec, $file->{dirname} . $file->{basename} ]); 161 foreach (@{ $res }) { 162 if (($_->{md5} || '') eq ($file->{md5} || '')) { 163 next; 164 } 165 push(@{ $fc{$file->{dirname} . $file->{basename}}}, $_->{pkgid}); 166 $pkgid{$_->{pkgid}} = 1; 167 } 168 } 169 $c->stash->{xmlrpc} = { 170 pkg => [ keys %pkgid ], 171 byfile => \%fc, 172 } 173 } 174 175 sub parentdir : Private { 125 176 my ($self, $c, $searchspec, $folder, $pool) = @_; 126 177 -
server/trunk/web/lib/Sophie/Controller/Rpms.pm
r278 r310 565 565 566 566 $c->stash->{xmlrpc} = $c->forward( 567 '/analysis/solver/ find_requirements',567 '/analysis/solver/solve_dependencies', 568 568 [ $dist, 569 569 'P', \@deplist, [] ] -
server/trunk/web/lib/Sophie/Controller/User/Folder.pm
r286 r310 128 128 ? $tags->{Dirnames}{string}[$tags->{Dirindexes}{integer}[$fcount]] 129 129 : ''), 130 mode => $tags->{Filemodes}{integer}[$fcount], 131 md5 => ref $tags->{Filedigests}{string}[$fcount] 132 ? undef 133 : $tags->{Filedigests}{string}[$fcount], 130 134 } 131 135 );
Note: See TracChangeset
for help on using the changeset viewer.