no need to fetch profiles when queuing updates for servers of a cachegroup (for 
a certain cdn)


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/a06c2030
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/a06c2030
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/a06c2030

Branch: refs/heads/master
Commit: a06c20301952127fe050189737d4d08678e67589
Parents: 7b5a66b
Author: Jeremy Mitchell <mitchell...@gmail.com>
Authored: Thu Feb 16 20:01:38 2017 -0700
Committer: Dewayne Richardson <dewr...@apache.org>
Committed: Fri Feb 17 08:33:17 2017 -0700

----------------------------------------------------------------------
 traffic_ops/app/lib/API/Cachegroup.pm | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/a06c2030/traffic_ops/app/lib/API/Cachegroup.pm
----------------------------------------------------------------------
diff --git a/traffic_ops/app/lib/API/Cachegroup.pm 
b/traffic_ops/app/lib/API/Cachegroup.pm
index 2a4a359..d489369 100644
--- a/traffic_ops/app/lib/API/Cachegroup.pm
+++ b/traffic_ops/app/lib/API/Cachegroup.pm
@@ -409,29 +409,20 @@ sub postupdatequeue {
                return $self->alert("action should be queue or dequeue.");
        }
 
-       my @profiles;
-       @profiles = $self->db->resultset('Server')->search(
-               { 'cdn.name' => $cdn },
-               {
-                       prefetch => 'cdn',
-                       select   => 'me.profile',
-                       distinct => 1
-               }
-       )->get_column('profile')->all();
-       my $update = $self->db->resultset('Server')->search(
+       my $servers = $self->db->resultset('Server')->search(
                {
                        -and => [
-                               cachegroup => $id,
-                               profile    => { -in => \@profiles }
+                               cachegroup      => $id,
+                               cdn_id          => $cdn_id
                        ]
                }
        );
 
        my $response;
        my @svrs = ();
-       if ( $update->count() > 0 ) {
-               $update->update( { upd_pending => $setqueue } );
-               my @row = $update->get_column('host_name')->all();
+       if ( $servers->count() > 0 ) {
+               $servers->update( { upd_pending => $setqueue } );
+               my @row = $servers->get_column('host_name')->all();
                foreach my $svr (@row) {
                        push( @svrs, $svr );
                }

Reply via email to