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 0839096065 Fix incorrect display of delivery services for an ORG
server (#7957)
0839096065 is described below
commit 08390960654ae569b1ca1b2b95e758865f79a5fe
Author: Rima Shah <[email protected]>
AuthorDate: Wed Mar 6 12:35:18 2024 -0700
Fix incorrect display of delivery services for an ORG server (#7957)
* Fix incorrect display of delivery services for an ORG server
add changelog
code review
---------
Co-authored-by: Srijeet Chatterjee <[email protected]>
* Updated changelog
---------
Co-authored-by: Chatterjee, Srijeet <[email protected]>
---
CHANGELOG.md | 3 ++-
.../api/v3/servers_id_deliveryservices_test.go | 3 +--
.../api/v4/servers_id_deliveryservices_test.go | 3 +--
.../api/v5/servers_id_deliveryservices_test.go | 3 +--
.../deliveryservice/servers/servers.go | 24 +++++++++++++++-------
5 files changed, 22 insertions(+), 14 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 06da5e9e70..caded33850 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -17,6 +17,7 @@ The format is based on [Keep a
Changelog](http://keepachangelog.com/en/1.0.0/).
- Updated Go version to 1.22.0
### Fixed
+- [#7957](https://github.com/apache/trafficcontrol/pull/7957) *Traffic Ops*
Fix the incorrect display of delivery services assigned to ORG servers.
- [#7917](https://github.com/apache/trafficcontrol/pull/7917) *Traffic Ops*
Removed `Alerts` field from struct `ProfileExportResponse`.
- [#7918](https://github.com/apache/trafficcontrol/pull/7918) *Traffic Portal*
Fixed topology link under DS-Servers tables page
- [#7846](https://github.com/apache/trafficcontrol/pull/7846) *Traffic Portal*
Increase State character limit
@@ -25,7 +26,7 @@ The format is based on [Keep a
Changelog](http://keepachangelog.com/en/1.0.0/).
- [#7832](https://github.com/apache/trafficcontrol/pull/7832) *t3c* Removed
Perl dependency
- [#7841](https://github.com/apache/trafficcontrol/pull/7841) *Postinstall*
Removed Perl implementation and Python 2.x support
-## [8.0.0] - 2023-09-20
+## [8.0.0] - 2024-01-30
### Added
- [#7672](https://github.com/apache/trafficcontrol/pull/7672) *Traffic Control
Health Client*: Added peer monitor flag while using `strategies.yaml`.
- [#7609](https://github.com/apache/trafficcontrol/pull/7609) *Traffic
Portal*: Added Scope Query Param to SSO login.
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 9dd2f45d03..93c5b376d5 100644
--- a/traffic_ops/testing/api/v3/servers_id_deliveryservices_test.go
+++ b/traffic_ops/testing/api/v3/servers_id_deliveryservices_test.go
@@ -90,9 +90,8 @@ func TestServersIDDeliveryServices(t *testing.T) {
GetServerID(t,
"denver-mso-org-01")(),
[]int{
GetDeliveryServiceId(t, "ds-top")(),
-
GetDeliveryServiceId(t, "ds-top-req-cap2")(),
},
- 2)),
+ 1)),
},
"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 87b7e45060..9949eb2a31 100644
--- a/traffic_ops/testing/api/v4/servers_id_deliveryservices_test.go
+++ b/traffic_ops/testing/api/v4/servers_id_deliveryservices_test.go
@@ -92,9 +92,8 @@ func TestServersIDDeliveryServices(t *testing.T) {
totest.GetServerID(t,
TOSession, "denver-mso-org-01")(),
[]int{
totest.GetDeliveryServiceId(t, TOSession, "ds-top")(),
-
totest.GetDeliveryServiceId(t, TOSession, "ds-top-req-cap2")(),
},
- 2)),
+ 1)),
},
"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 2cae5f3018..4b6f10e3bf 100644
--- a/traffic_ops/testing/api/v5/servers_id_deliveryservices_test.go
+++ b/traffic_ops/testing/api/v5/servers_id_deliveryservices_test.go
@@ -91,9 +91,8 @@ func TestServersIDDeliveryServices(t *testing.T) {
GetServerID(t,
"denver-mso-org-01")(),
[]int{
GetDeliveryServiceId(t, "ds-top")(),
-
GetDeliveryServiceId(t, "ds-top-req-cap2")(),
},
- 2)),
+ 1)),
},
"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 1b14e0a930..6eaedd3d04 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/servers/servers.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/servers/servers.go
@@ -944,9 +944,20 @@ func (dss *TODSSDeliveryService) Read(h http.Header,
useIMS bool) ([]interface{}
where = "WHERE "
}
- where += `
+ serverID, _ := strconv.Atoi(params["id"])
+ serverInfo, exists, err := dbhelpers.GetServerInfo(serverID, tx)
+ if err != nil {
+ return nil, nil, err, http.StatusInternalServerError, nil
+ }
+ if !exists {
+ return nil, fmt.Errorf("server with ID %d doesn't exist",
serverID), nil, http.StatusNotFound, nil
+ }
+ if serverInfo.Type == tc.OriginTypeName {
+ where += `ds.id in (SELECT deliveryservice FROM
deliveryservice_server WHERE server = :server)`
+ } else {
+ where += `
(ds.id in (
- SELECT deliveryService FROM deliveryservice_server WHERE server =
:server
+ SELECT deliveryservice FROM deliveryservice_server WHERE server =
:server
) OR ds.id in (
SELECT d.id FROM deliveryservice d
JOIN cdn c ON d.cdn_id = c.id
@@ -960,16 +971,15 @@ func (dss *TODSSDeliveryService) Read(h http.Header,
useIMS bool) ([]interface{}
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)
-OR
-(SELECT COALESCE(ARRAY_AGG(ssc.server_capability), '{}')
-FROM server_server_capability ssc
-WHERE ssc."server" = :server)
+(SELECT COALESCE(ARRAY_AGG(ssc.server_capability), '{}')
+FROM server_server_capability ssc
+WHERE ssc."server" = :server)
@>
(
SELECT COALESCE(ds.required_capabilities, '{}')
)))
`
+ }
tenantIDs, err := tenant.GetUserTenantIDListTx(tx, user.TenantID)
if err != nil {