This is an automated email from the ASF dual-hosted git repository.

rshah pushed a commit to branch 8.0.x
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git

commit 40352c1c92a064779f97253d823d16713d04e3b3
Author: Zach Hoffman <[email protected]>
AuthorDate: Wed Dec 20 13:36:43 2023 -0700

    Limit Delivery Services returned for GET /servers/{id}/deliveryservices to 
ones in the same CDN (#7888)
    
    (cherry picked from commit 26ef01b322f80d6a373654aa78a168ad6cccbdd6)
---
 CHANGELOG.md                                                      | 1 +
 traffic_ops/testing/api/v3/servers_id_deliveryservices_test.go    | 3 +--
 traffic_ops/testing/api/v4/servers_id_deliveryservices_test.go    | 3 +--
 traffic_ops/testing/api/v5/servers_id_deliveryservices_test.go    | 3 +--
 traffic_ops/traffic_ops_golang/deliveryservice/servers/servers.go | 8 +++++---
 5 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ab6cf89e24..86513e14e1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ The format is based on [Keep a 
Changelog](http://keepachangelog.com/en/1.0.0/).
 
 ### Fixed
 - [#7846](https://github.com/apache/trafficcontrol/pull/7846) *Traffic Portal* 
Increase State character limit
+- [#7887](https://github.com/apache/trafficcontrol/pull/7887) *Traffic Ops* 
Limit Delivery Services returned for GET /servers/{id}/deliveryservices to ones 
in the same CDN
 
 ## [8.0.0] - 2023-09-20
 ### Added
diff --git a/traffic_ops/testing/api/v3/servers_id_deliveryservices_test.go 
b/traffic_ops/testing/api/v3/servers_id_deliveryservices_test.go
index 592df8d4da..9dd2f45d03 100644
--- a/traffic_ops/testing/api/v3/servers_id_deliveryservices_test.go
+++ b/traffic_ops/testing/api/v3/servers_id_deliveryservices_test.go
@@ -91,9 +91,8 @@ func TestServersIDDeliveryServices(t *testing.T) {
                                                        []int{
                                                                
GetDeliveryServiceId(t, "ds-top")(),
                                                                
GetDeliveryServiceId(t, "ds-top-req-cap2")(),
-                                                               
GetDeliveryServiceId(t, "ds-forked-topology")(),
                                                        },
-                                                       3)),
+                                                       2)),
                                },
                                "CONFLICT when SERVER NOT IN SAME CDN as 
DELIVERY SERVICE": {
                                        EndpointID:    GetServerID(t, 
"cdn2-test-edge"),
diff --git a/traffic_ops/testing/api/v4/servers_id_deliveryservices_test.go 
b/traffic_ops/testing/api/v4/servers_id_deliveryservices_test.go
index 594fd52aaf..87b7e45060 100644
--- a/traffic_ops/testing/api/v4/servers_id_deliveryservices_test.go
+++ b/traffic_ops/testing/api/v4/servers_id_deliveryservices_test.go
@@ -93,9 +93,8 @@ func TestServersIDDeliveryServices(t *testing.T) {
                                                        []int{
                                                                
totest.GetDeliveryServiceId(t, TOSession, "ds-top")(),
                                                                
totest.GetDeliveryServiceId(t, TOSession, "ds-top-req-cap2")(),
-                                                               
totest.GetDeliveryServiceId(t, TOSession, "ds-forked-topology")(),
                                                        },
-                                                       3)),
+                                                       2)),
                                },
                                "CONFLICT when SERVER NOT IN SAME CDN as 
DELIVERY SERVICE": {
                                        EndpointID:    totest.GetServerID(t, 
TOSession, "cdn2-test-edge"),
diff --git a/traffic_ops/testing/api/v5/servers_id_deliveryservices_test.go 
b/traffic_ops/testing/api/v5/servers_id_deliveryservices_test.go
index 1ab7e5b840..2cae5f3018 100644
--- a/traffic_ops/testing/api/v5/servers_id_deliveryservices_test.go
+++ b/traffic_ops/testing/api/v5/servers_id_deliveryservices_test.go
@@ -92,9 +92,8 @@ func TestServersIDDeliveryServices(t *testing.T) {
                                                        []int{
                                                                
GetDeliveryServiceId(t, "ds-top")(),
                                                                
GetDeliveryServiceId(t, "ds-top-req-cap2")(),
-                                                               
GetDeliveryServiceId(t, "ds-forked-topology")(),
                                                        },
-                                                       3)),
+                                                       2)),
                                },
                                "CONFLICT when SERVER NOT IN SAME CDN as 
DELIVERY SERVICE": {
                                        EndpointID:    GetServerID(t, 
"cdn2-test-edge"),
diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/servers/servers.go 
b/traffic_ops/traffic_ops_golang/deliveryservice/servers/servers.go
index f9b0e7d24a..4db6fe2016 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/servers/servers.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/servers/servers.go
@@ -948,14 +948,16 @@ func (dss *TODSSDeliveryService) Read(h http.Header, 
useIMS bool) ([]interface{}
 (ds.id in (
        SELECT deliveryService FROM deliveryservice_server WHERE server = 
:server
 ) OR ds.id in (
-       SELECT id FROM deliveryservice
-       WHERE topology in (
+       SELECT d.id FROM deliveryservice d
+       JOIN cdn c ON d.cdn_id = c.id
+       WHERE d.topology in (
                SELECT topology FROM topology_cachegroup
                WHERE cachegroup = (
                        SELECT name FROM cachegroup
                        WHERE id = (
                                SELECT cachegroup FROM server WHERE id = :server
-                       ))))) 
+                       )))
+       AND d.cdn_id = (SELECT cdn_id FROM server WHERE id = :server)))
 AND
 (( 
 (SELECT (t.name = 'ORG') FROM type t JOIN server s ON s.type = t.id WHERE s.id 
= :server) 

Reply via email to