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 0676e13  t3c-apply: enable and enhance reload states test (#5964)
0676e13 is described below

commit 0676e136de9e2df70ec028120402961866045473
Author: Brian Olsen <[email protected]>
AuthorDate: Mon Jun 28 16:31:59 2021 -0600

    t3c-apply: enable and enhance reload states test (#5964)
---
 CHANGELOG.md                                      |  1 +
 cache-config/t3c-apply/torequest/torequest.go     | 14 +++++++--
 cache-config/testing/ort-tests/t3c-reload_test.go | 37 +++++++++++------------
 3 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 15db73d..cbf6537 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -49,6 +49,7 @@ The format is based on [Keep a 
Changelog](http://keepachangelog.com/en/1.0.0/).
 - Added a Traffic Monitor integration test framework.
 - Added `traffic_ops/app/db/traffic_vault_migrate` to help with migrating 
Traffic Ops Traffic Vault backends
 - Added a tool at `/traffic_ops/app/db/reencrypt` to re-encrypt the data in 
the Postgres Traffic Vault with a new key.
+- Enhanced ort integration test for reload states
 
 ### Fixed
 - [#5690](https://github.com/apache/trafficcontrol/issues/5690) - Fixed github 
action for added/modified db migration file.
diff --git a/cache-config/t3c-apply/torequest/torequest.go 
b/cache-config/t3c-apply/torequest/torequest.go
index b9beb77..9fbf87b 100644
--- a/cache-config/t3c-apply/torequest/torequest.go
+++ b/cache-config/t3c-apply/torequest/torequest.go
@@ -493,17 +493,19 @@ func (r *TrafficOpsReq) replaceCfgFile(cfg *ConfigFile) 
error {
        r.RemapConfigReload = r.RemapConfigReload ||
                cfg.RemapPluginConfig ||
                cfg.Name == "remap.config" ||
-               strings.HasPrefix(cfg.Name, "url_sig_") ||
-               strings.HasPrefix(cfg.Name, "uri_signing") ||
+               strings.HasPrefix(cfg.Name, "bg_fetch") ||
                strings.HasPrefix(cfg.Name, "hdr_rw_") ||
                strings.HasPrefix(cfg.Name, "regex_remap_") ||
-               strings.HasPrefix(cfg.Name, "bg_fetch") ||
+               strings.HasPrefix(cfg.Name, "set_dscp_") ||
+               strings.HasPrefix(cfg.Name, "url_sig_") ||
+               strings.HasPrefix(cfg.Name, "uri_signing") ||
                strings.HasSuffix(cfg.Name, ".lua")
 
        r.TrafficCtlReload = r.TrafficCtlReload ||
                strings.HasSuffix(cfg.Dir, "trafficserver") ||
                r.RemapConfigReload ||
                cfg.Name == "ssl_multicert.config" ||
+               cfg.Name == "records.config" ||
                (strings.HasSuffix(cfg.Dir, "ssl") && 
strings.HasSuffix(cfg.Name, ".cer")) ||
                (strings.HasSuffix(cfg.Dir, "ssl") && 
strings.HasSuffix(cfg.Name, ".key"))
 
@@ -511,6 +513,8 @@ func (r *TrafficOpsReq) replaceCfgFile(cfg *ConfigFile) 
error {
        r.NtpdRestart = r.NtpdRestart || (cfg.Name == "ntpd.conf")
        r.SysCtlReload = r.SysCtlReload || (cfg.Name == "sysctl.conf")
 
+       log.Debugf("Reload state after %s: remap.config: %t reload: %t restart: 
%t ntpd: %t sysctl: %t", cfg.Name, r.RemapConfigReload, r.TrafficCtlReload, 
r.TrafficServerRestart, r.NtpdRestart, r.SysCtlReload)
+
        log.Debugf("Setting change applied for '%s'\n", cfg.Name)
        return nil
 }
@@ -893,6 +897,10 @@ func (r *TrafficOpsReq) ProcessConfigFiles() 
(UpdateStatus, error) {
                }
        }
 
+       if 0 < len(r.changedFiles) {
+               log.Infof("Final state: remap.config: %t reload: %t restart: %t 
ntpd: %t sysctl: %t", r.RemapConfigReload, r.TrafficCtlReload, 
r.TrafficServerRestart, r.NtpdRestart, r.SysCtlReload)
+       }
+
        if updateStatus != UpdateTropsFailed && changesRequired > 0 {
                return UpdateTropsNeeded, nil
        }
diff --git a/cache-config/testing/ort-tests/t3c-reload_test.go 
b/cache-config/testing/ort-tests/t3c-reload_test.go
index e0d123c..bc26386 100644
--- a/cache-config/testing/ort-tests/t3c-reload_test.go
+++ b/cache-config/testing/ort-tests/t3c-reload_test.go
@@ -15,6 +15,7 @@ package orttest
 */
 
 import (
+       "io/ioutil"
        "os"
        "path/filepath"
        "strings"
@@ -37,7 +38,7 @@ func TestT3cReload(t *testing.T) {
                doTestT3cReloadAnythingInTrafficserverDir(t)
                doTestT3cReloadNoChange(t)
                doTestT3cRevalCallsReload(t)
-
+               doTestT3cReloadState(t)
        })
        t.Logf("------------- End of TestT3cReload ---------------")
 }
@@ -199,7 +200,7 @@ func doTestT3cRevalCallsReload(t *testing.T) {
 }
 
 func doTestT3cReloadState(t *testing.T) {
-       t.Logf("------------- Start doTestT3cReloadReloadState ---------------")
+       t.Logf("------------- Start doTestT3cReloadState ---------------")
 
        cacheHostName := "atlanta-edge-03"
 
@@ -210,18 +211,19 @@ func doTestT3cReloadState(t *testing.T) {
 
        t.Logf("DEBUG TestT3cReload deleting header rewrite")
 
-       var fileNameToRemove string
-
        // delete header rewrite so we know should trigger a remap.config touch 
and reload.
-       fileNameToRemove = filepath.Join(test_config_dir, 
"hdr_rw_first_ds-top.config")
+       fileNameToRemove := filepath.Join(test_config_dir, 
"hdr_rw_first_ds-top.config")
        if err := os.Remove(fileNameToRemove); err != nil {
                t.Fatalf("failed to remove file '" + fileNameToRemove + "': " + 
err.Error())
        }
 
-       // delete storage.config we know should trigger just a reload.
-       fileNameToRemove = filepath.Join(test_config_dir, "storage.config")
-       if err := os.Remove(fileNameToRemove); err != nil {
-               t.Fatalf("failed to remove file '" + fileNameToRemove + "': " + 
err.Error())
+       // create plugin.config to trigger restart directive
+       t.Logf("DEBUG TestT3cReload creating plugin.config")
+       pluginConfigPath := filepath.Join(test_config_dir, "plugin.config")
+       contents := []byte("remap_stats.so")
+       err := ioutil.WriteFile(pluginConfigPath, contents, 0666)
+       if err != nil {
+               t.Fatalf("Unable to create file %s\n", pluginConfigPath)
        }
 
        t.Logf("DEBUG TestT3cReload setting upate flag")
@@ -232,20 +234,15 @@ func doTestT3cReloadState(t *testing.T) {
 
        t.Logf("DEBUG TestT3cReload calling syncds")
        stdOut, _ := t3cUpdateReload(cacheHostName, "syncds")
-       // Ignore the exit code error for now, because the ORT Integration Test 
Framework doesn't currently start ATS.
-       // TODO check err, after running ATS is added to the tests.
-       // if err != nil {
-       //      t.Fatalf("t3c syncds failed: %v\n", err)
-       // }
 
-       t.Logf("DEBUG TestT3cReload looking for reload string")
-       if !strings.Contains(stdOut, `Running 'traffic_ctl config reload' now`) 
{
-               t.Errorf("expected t3c to do a reload after adding a header 
rewrite file, actual: '''%v'''\n", stdOut)
+       t.Logf("DEBUG TestT3cReload looking for reload summary")
+       if !strings.Contains(stdOut, "Final state: remap.config: true reload: 
true restart: true ntpd: false sysctl: false") {
+               t.Errorf("expected t3c Final reload state for remap.config, 
reload and restart, actual: '''%v'''\n", stdOut)
        }
 
-       t.Logf("DEBUG TestT3cReload looking for remap.config reloading string")
-       if !strings.Contains(stdOut, `updated the remap.config for reloading`) {
-               t.Errorf("expected t3c to touch remap.config after adding a 
header rewrite file, actual: '''%v'''\n", stdOut)
+       // remove plugin.config file for next test
+       if err := os.Remove(pluginConfigPath); err != nil {
+               t.Fatalf("failed to remove file '" + pluginConfigPath + "': " + 
err.Error())
        }
 
        t.Logf("------------- End TestT3cReload doTestT3cReloadState 
---------------")

Reply via email to