You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by zr...@apache.org on 2020/11/11 00:36:33 UTC
[trafficcontrol] branch master updated: Exclude ORG_LOC cachegroups
from topology-based DS req. cap. validation (#5270)
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 3564c96 Exclude ORG_LOC cachegroups from topology-based DS req. cap. validation (#5270)
3564c96 is described below
commit 3564c9654d4cd5f27f72d591e9197c4882d953a3
Author: Rawlin Peters <ra...@apache.org>
AuthorDate: Tue Nov 10 17:29:00 2020 -0700
Exclude ORG_LOC cachegroups from topology-based DS req. cap. validation (#5270)
Server capabilities do not apply to ORG servers (origins), so the
validation needs to exclude them.
---
traffic_ops/testing/api/v3/tc-fixtures.json | 8 ++++++--
.../deliveryservice/deliveryservices_required_capabilities.go | 2 +-
traffic_ops/traffic_ops_golang/topology/topologies.go | 2 +-
3 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/traffic_ops/testing/api/v3/tc-fixtures.json b/traffic_ops/testing/api/v3/tc-fixtures.json
index 688ab8b..30c811f 100644
--- a/traffic_ops/testing/api/v3/tc-fixtures.json
+++ b/traffic_ops/testing/api/v3/tc-fixtures.json
@@ -4218,12 +4218,16 @@
"description": "a topology",
"nodes": [
{
- "cachegroup": "dtrc1",
+ "cachegroup": "multiOriginCachegroup",
"parents": []
},
{
- "cachegroup": "dtrc2",
+ "cachegroup": "dtrc1",
"parents": [0]
+ },
+ {
+ "cachegroup": "dtrc2",
+ "parents": [1]
}
]
}
diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservices_required_capabilities.go b/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservices_required_capabilities.go
index 2e75315..e45e071 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservices_required_capabilities.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/deliveryservices_required_capabilities.go
@@ -343,7 +343,6 @@ func (rc *RequiredCapability) checkServerCap() (error, error, int) {
// EnsureTopologyBasedRequiredCapabilities ensures that at least one server per cachegroup
// in this delivery service's topology has this delivery service's required capabilities.
func EnsureTopologyBasedRequiredCapabilities(tx *sql.Tx, dsID int, topology string, requiredCapabilities []string) (error, error, int) {
- // language=sql
q := `
SELECT
s.id,
@@ -357,6 +356,7 @@ JOIN topology_cachegroup tc ON tc.cachegroup = c.name
WHERE
s.cdn_id = (SELECT cdn_id FROM deliveryservice WHERE id = $1)
AND tc.topology = $2
+ AND c.type != (SELECT id FROM type WHERE name = '` + tc.CacheGroupOriginTypeName + `')
GROUP BY s.id, s.cdn_id, c.name
`
rows, err := tx.Query(q, dsID, topology)
diff --git a/traffic_ops/traffic_ops_golang/topology/topologies.go b/traffic_ops/traffic_ops_golang/topology/topologies.go
index 383a689..bf77b01 100644
--- a/traffic_ops/traffic_ops_golang/topology/topologies.go
+++ b/traffic_ops/traffic_ops_golang/topology/topologies.go
@@ -328,7 +328,6 @@ func (topology TOTopology) validateDSRequiredCapabilities() error {
for cdn := range cdnMap {
CDNs = append(CDNs, cdn)
}
- // language=sql
q := `
SELECT
s.id,
@@ -341,6 +340,7 @@ JOIN cachegroup c ON c.id = s.cachegroup
WHERE
c.name = ANY($1)
AND s.cdn_id = ANY($2)
+ AND c.type != (SELECT id FROM type WHERE name = '` + tc.CacheGroupOriginTypeName + `')
GROUP BY s.id, s.cdn_id, c.name
`
rows, err := tx.Query(q, pq.Array(cachegroups), pq.Array(CDNs))