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

rob 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 7a91a324bc t3c/regex_revalidate: remove STALE keyword for default 
rule. (#6865)
7a91a324bc is described below

commit 7a91a324bc83f16b74eaae5d80780a3c05eee240
Author: Brian Olsen <[email protected]>
AuthorDate: Tue May 31 09:47:36 2022 -0600

    t3c/regex_revalidate: remove STALE keyword for default rule. (#6865)
    
    * t3c/regex_revalidate: remove STALE keyword for default rule.
    
    * change type RevalType convention and use
    
    * add STALE check to regression test
---
 CHANGELOG.md                                    |  1 +
 cache-config/testing/ort-tests/t3c-jobs_test.go |  4 ++--
 lib/go-atscfg/regexrevalidatedotconfig.go       | 21 ++++++++++++---------
 lib/go-atscfg/regexrevalidatedotconfig_test.go  |  2 +-
 4 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 532c07e57c..67bdef8de6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -23,6 +23,7 @@ The format is based on [Keep a 
Changelog](http://keepachangelog.com/en/1.0.0/).
 - Added layered profile feature to 4.0 for `GET` /servers/, `POST` /servers/, 
`PUT` /servers/{id} and `DELETE` /servers/{id}.
 - Added a Traffic Ops endpoint and Traffic Portal page to view all CDNi 
configuration update requests and approve or deny.
 - Added layered profile feature to 4.0 for `GET` 
/deliveryservices/{id}/servers/ and /deliveryservices/{id}/servers/eligible.
+- Change to t3c regex_revalidate so that STALE is no longer explicitly added 
for default revalidate rule for ATS version backwards compatibility.
 
 ### Fixed
 - [#6291](https://github.com/apache/trafficcontrol/issues/6291) Prevent 
Traffic Ops from modifying and/or deleting reserved statuses.
diff --git a/cache-config/testing/ort-tests/t3c-jobs_test.go 
b/cache-config/testing/ort-tests/t3c-jobs_test.go
index 980ee67ce3..f0f1c2546f 100644
--- a/cache-config/testing/ort-tests/t3c-jobs_test.go
+++ b/cache-config/testing/ort-tests/t3c-jobs_test.go
@@ -74,8 +74,8 @@ func TestT3CJobs(t *testing.T) {
                        }
                        if strings.Contains(line, "refresh-test") {
                                sawRefresh = true
-                               if !strings.HasSuffix(line, "STALE") {
-                                       t.Errorf("expected 
regex_revalidate.config refresh-test line to contain 'STALE', actual: %s", line)
+                               if strings.HasSuffix(line, "STALE") || 
strings.HasSuffix(line, "MISS") {
+                                       t.Errorf("expected 
regex_revalidate.config refresh-test line to contain no type, actual: %s", line)
                                }
                        }
                        if strings.Contains(line, "refetch-test") {
diff --git a/lib/go-atscfg/regexrevalidatedotconfig.go 
b/lib/go-atscfg/regexrevalidatedotconfig.go
index 86674ad289..6cc11baedb 100644
--- a/lib/go-atscfg/regexrevalidatedotconfig.go
+++ b/lib/go-atscfg/regexrevalidatedotconfig.go
@@ -41,6 +41,12 @@ const DefaultMaxRevalDurationDays = 90
 const JobKeywordPurge = "PURGE"
 const RegexRevalidateMinTTL = time.Hour
 
+type RevalType string
+
+const RevalTypeMiss = RevalType("MISS")
+const RevalTypeStale = RevalType("STALE")
+const RevalTypeDefault = RevalTypeStale
+
 const ContentTypeRegexRevalidateDotConfig = ContentTypeTextASCII
 const LineCommentRegexRevalidateDotConfig = LineCommentHash
 
@@ -110,8 +116,8 @@ func MakeRegexRevalidateDotConfig(
        txt := makeHdrComment(opt.HdrComment)
        for _, job := range cfgJobs {
                txt += job.AssetURL + " " + 
strconv.FormatInt(job.PurgeEnd.Unix(), 10)
-               if job.Type != "" {
-                       txt += " " + job.Type
+               if job.Type != "" && job.Type != RevalTypeDefault {
+                       txt += " " + string(job.Type)
                }
                txt += "\n"
        }
@@ -127,7 +133,7 @@ func MakeRegexRevalidateDotConfig(
 type revalJob struct {
        AssetURL string
        PurgeEnd time.Time
-       Type     string // MISS or STALE (default)
+       Type     RevalType // RevalTypeMiss or RevalTypeStale (default)
 }
 
 type jobsSort []revalJob
@@ -188,21 +194,18 @@ func filterJobs(tcJobs []InvalidationJob, maxReval 
time.Duration, minTTL time.Du
        return newJobs
 }
 
-const MISS = "MISS"
-const STALE = "STALE"
-
 // processRefetch determines the type of Invalidation, returns the 
corresponding jobtype
 // and "cleans" the regex URL for the asset to be invalidated. REFETCH trumps 
REFRESH,
 // whether in the AssetURL or as InvalidationType
-func processRefetch(invalidationType, assetURL string) (string, string) {
+func processRefetch(invalidationType, assetURL string) (RevalType, string) {
 
        if (len(invalidationType) > 0 && invalidationType == tc.REFETCH) || 
strings.HasSuffix(assetURL, RefetchSuffix) {
                assetURL = strings.TrimSuffix(assetURL, RefetchSuffix)
-               return MISS, assetURL
+               return RevalTypeMiss, assetURL
        }
 
        // Default value. Either the InvalidationType == REFRESH
        // or the suffix is ##REFRESH## or neither
        assetURL = strings.TrimSuffix(assetURL, RefreshSuffix)
-       return STALE, assetURL
+       return RevalTypeStale, assetURL
 }
diff --git a/lib/go-atscfg/regexrevalidatedotconfig_test.go 
b/lib/go-atscfg/regexrevalidatedotconfig_test.go
index 1073a93468..a2aea7023e 100644
--- a/lib/go-atscfg/regexrevalidatedotconfig_test.go
+++ b/lib/go-atscfg/regexrevalidatedotconfig_test.go
@@ -122,7 +122,7 @@ func TestMakeRegexRevalidateDotConfig(t *testing.T) {
        if strings.Contains(txt, "##REFETCH##") || !strings.Contains(txt, 
"MISS") {
                t.Errorf("##REFETCH## directive not properly handled '%v'", txt)
        }
-       if strings.Contains(txt, "##REFRESH##") || !strings.Contains(txt, 
"STALE") {
+       if strings.Contains(txt, "##REFRESH##") {
                t.Errorf("##REFRESH## directive not properly handled '%v'", txt)
        }
 }

Reply via email to