fix some hash logic errors
Project: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/commit/64916261 Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/tree/64916261 Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/diff/64916261 Branch: refs/heads/master Commit: 64916261e2e7586ca0383e60af4dba331ac37d50 Parents: c1486b2 Author: Derek Gelinas <derek_geli...@cable.comcast.com> Authored: Tue May 23 20:55:48 2017 +0000 Committer: Jeremy Mitchell <mitchell...@gmail.com> Committed: Thu Jun 1 11:09:39 2017 -0600 ---------------------------------------------------------------------- traffic_ops/app/lib/API/Server.pm | 11 +++++------ traffic_ops/app/lib/UI/Server.pm | 5 ++--- 2 files changed, 7 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/64916261/traffic_ops/app/lib/API/Server.pm ---------------------------------------------------------------------- diff --git a/traffic_ops/app/lib/API/Server.pm b/traffic_ops/app/lib/API/Server.pm index 1ffc5ef..70eeefd 100644 --- a/traffic_ops/app/lib/API/Server.pm +++ b/traffic_ops/app/lib/API/Server.pm @@ -967,7 +967,7 @@ sub get_servers_by_phys_loc { return ( $forbidden, $servers ); } - my $servers = $self->db->resultset('Server')->search( { phys_location => $phys_loc_id }, { prefetch => [ 'cdn', 'cachegroup', 'type', 'profile', 'status', 'phys_location' ] } ); + $servers = $self->db->resultset('Server')->search( { phys_location => $phys_loc_id }, { prefetch => [ 'cdn', 'cachegroup', 'type', 'profile', 'status', 'phys_location' ] } ); return ( $forbidden, $servers ); } @@ -997,13 +997,12 @@ sub is_server_valid { my $cdn_mismatch; if ($id) { - my $profile = $self->db->resultset('Profile')->search( { 'me.id' => $params->{profileId}} )->single(); - my $profile_cdn_id = $profile->cdn; - if ( !defined($profile_cdn_id) ) { + my $profile = $self->db->resultset('Profile')->search( { 'me.id' => $params->{profileId}}, { prefetch => ['cdn'] } )->single(); + if ( !defined($profile->cdn) ) { $cdn_mismatch = 1; } - elsif ( $params->{cdnId} != $profile_cdn_id ) { - $cdn_does_not_match = 1; + elsif ( $params->{cdnId} != $profile->cdn->id ) { + $cdn_mismatch = 1; } } http://git-wip-us.apache.org/repos/asf/incubator-trafficcontrol/blob/64916261/traffic_ops/app/lib/UI/Server.pm ---------------------------------------------------------------------- diff --git a/traffic_ops/app/lib/UI/Server.pm b/traffic_ops/app/lib/UI/Server.pm index 3ad625a..c8da0da 100644 --- a/traffic_ops/app/lib/UI/Server.pm +++ b/traffic_ops/app/lib/UI/Server.pm @@ -449,11 +449,10 @@ sub check_server_input { my $profile = $self->db->resultset('Profile')->search( { 'me.id' => $paramHashRef->{'profile'}}, { prefetch => ['cdn'] } )->single(); my $cdn = $self->db->resultset('Cdn')->search( { 'me.id' => $paramHashRef->{'cdn'} } )->single(); - my $profile_cdn = $profile->cdn; - if ( !defined($profile_cdn) ) { + if ( !defined($profile->cdn) ) { $err .= "the " . $paramHashRef->{'profile'} . " profile is not in the " . $cdn->name . " CDN." . $sep; } - if ( $profile_cdn != $cdn->id ) { + elsif ( $profile->cdn->id != $cdn->id ) { $err .= "the " . $paramHashRef->{'profile'} . " profile is not in the " . $cdn->name . " CDN." . $sep; } return $err;