This is an automated email from the ASF dual-hosted git repository.
zrhoffman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new 26ef01b322 Limit Delivery Services returned for GET
/servers/{id}/deliveryservices to ones in the same CDN (#7888)
26ef01b322 is described below
commit 26ef01b322f80d6a373654aa78a168ad6cccbdd6
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)
---
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 d4d063cef7..aeb8165b36 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -15,6 +15,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)