This is an automated email from the ASF dual-hosted git repository. cmcfarlen pushed a commit to branch 10.1.x in repository https://gitbox.apache.org/repos/asf/trafficserver.git
commit 2e05d1c4907ccda3d463bbfd0c5ebd25ae0801a3 Author: Jasmine Emanouel <[email protected]> AuthorDate: Mon Mar 24 12:42:43 2025 +1100 Fix logging for origin_server_auth (#12115) * Fix logging for origin_server_auth * Update test * Update origin_server_auth.test.py (cherry picked from commit 359feb7506117826280eb2a83b68d6b968f25cd1) --- plugins/origin_server_auth/origin_server_auth.cc | 31 +++++++++++++--------- .../origin_server_auth/origin_server_auth.test.py | 5 ++-- .../rules/gcp-parse-test.test_input | 31 ---------------------- 3 files changed, 21 insertions(+), 46 deletions(-) diff --git a/plugins/origin_server_auth/origin_server_auth.cc b/plugins/origin_server_auth/origin_server_auth.cc index 7a73c2e7cf..affd975867 100644 --- a/plugins/origin_server_auth/origin_server_auth.cc +++ b/plugins/origin_server_auth/origin_server_auth.cc @@ -230,12 +230,12 @@ public: /* Check mandatory parameters first */ if (versions::gcpv1 == _version && (!_token || !(_token_len > 0))) { Dbg(dbg_ctl, "version = %s; keyid = %s", versionString(), _keyid); - TSWarning("[%s] missing mandatory configs for version: %s in file: %s", PLUGIN_NAME, versionString(), _conf_fname); + TSWarning("[%s] missing mandatory configs for version: %s %s", PLUGIN_NAME, versionString(), _conf_fname); return false; } else if ((versions::awsv2 == _version || versions::awsv4 == _version) && (!_secret || !(_secret_len > 0) || !_keyid || !(_keyid_len > 0))) { Dbg(dbg_ctl, "version = %s; keyid = %s; secret = %s", versionString(), _keyid, _secret); - TSWarning("[%s] missing mandatory configs for version: %s in file: %s", PLUGIN_NAME, versionString(), _conf_fname); + TSWarning("[%s] missing mandatory configs for version: %s %s", PLUGIN_NAME, versionString(), _conf_fname); return false; } @@ -632,7 +632,7 @@ S3Config::parse_config(const std::string &config_fname) } else if (key_str == "expiration") { set_expiration(val_str.c_str()); } else { - TSWarning("[%s] unknown config key: %s in file: %s", PLUGIN_NAME, key_str.c_str(), config_fname.c_str()); + TSWarning("[%s] unknown config key: %s %s", PLUGIN_NAME, key_str.c_str(), config_fname.c_str()); } } } @@ -1097,10 +1097,11 @@ config_reloader(TSCont cont, TSEvent /* event ATS_UNUSED */, void *edata) S3Config *s3 = static_cast<S3Config *>(TSContDataGet(cont)); s3->check_current_action(edata); S3Config *file_config = gConfCache.get(s3->conf_fname()); - std::string config_fname = makeConfigPath(s3->conf_fname()); + std::string config_fname = makeConfigPath(s3->conf_fname() == nullptr ? "" : s3->conf_fname()); if (!file_config || !file_config->valid()) { - TSError("[%s] invalid configuration in file: %s. Check mandatory fields. Scheduling reload", PLUGIN_NAME, config_fname.c_str()); + TSError("[%s] invalid configuration for version: %s %s. Check mandatory fields. Scheduling reload", PLUGIN_NAME, + s3->versionString(), config_fname.c_str()); long delay = 1 << s3->incr_invalid_file_count(); s3->schedule_conf_reload(delay); return TS_ERROR; @@ -1113,18 +1114,20 @@ config_reloader(TSCont cont, TSEvent /* event ATS_UNUSED */, void *edata) } if (s3->expiration() == 0) { - Dbg(dbg_ctl, "disabling auto config reload"); + Dbg(dbg_ctl, "disabling auto config reload for version: %s %s", s3->versionString(), config_fname.c_str()); } else { // auto reload is scheduled to be 5 minutes before the expiration time to get some headroom long time_diff = s3->expiration() - std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count(); if (time_diff > 0) { long delay = cal_reload_delay(time_diff); - TSNote("scheduling config reload with %ld seconds delay for file: %s", delay, config_fname.c_str()); + TSNote("scheduling config reload with %ld seconds delay for version: %s %s", delay, s3->versionString(), + config_fname.c_str()); s3->reset_conf_reload_count(); s3->schedule_conf_reload(delay); } else { - Dbg(dbg_ctl, "config expiration time for file: %s is in the past, re-checking in 1 minute", config_fname.c_str()); + Dbg(dbg_ctl, "config expiration time for version: %s %s is in the past, re-checking in 1 minute", s3->versionString(), + config_fname.c_str()); if (s3->incr_conf_reload_count() % 10 == 0) { TSError("[%s] tried to reload config automatically but failed, please try manual reloading the config file: %s", PLUGIN_NAME, config_fname.c_str()); @@ -1222,27 +1225,29 @@ TSRemapNewInstance(int argc, char *argv[], void **ih, char * /* errbuf ATS_UNUSE s3->copy_changes_from(file_config); } - std::string config_fname = makeConfigPath(s3->conf_fname()); + std::string config_fname = makeConfigPath(s3->conf_fname() == nullptr ? "" : s3->conf_fname()); // Make sure the configuration is valid if (!s3->valid()) { - TSError("[%s] invalid configuration file: %s. Check mandatory fields.", PLUGIN_NAME, config_fname.c_str()); + TSError("[%s] invalid configuration %s. Check mandatory fields.", PLUGIN_NAME, config_fname.c_str()); *ih = nullptr; return TS_ERROR; } if (s3->expiration() == 0) { - Dbg(dbg_ctl, "disabling auto config reload for file: %s", config_fname.c_str()); + Dbg(dbg_ctl, "disabling auto config reload for version: %s %s", s3->versionString(), config_fname.c_str()); } else { // auto reload is scheduled to be 5 minutes before the expiration time to get some headroom long time_diff = s3->expiration() - std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count(); if (time_diff > 0) { long delay = cal_reload_delay(time_diff); - TSNote("[%s] scheduling config reload with %ld seconds delay for file: %s", PLUGIN_NAME, delay, config_fname.c_str()); + TSNote("[%s] scheduling config reload with %ld seconds delay for version: %s %s", PLUGIN_NAME, delay, s3->versionString(), + config_fname.c_str()); s3->reset_conf_reload_count(); s3->schedule_conf_reload(delay); } else { - Dbg(dbg_ctl, "config expiration time for file %s is in the past, re-checking in 1 minute", config_fname.c_str()); + Dbg(dbg_ctl, "config expiration time for version %s %s is in the past, re-checking in 1 minute", s3->versionString(), + config_fname.c_str()); s3->schedule_conf_reload(60); } } diff --git a/tests/gold_tests/pluginTest/origin_server_auth/origin_server_auth.test.py b/tests/gold_tests/pluginTest/origin_server_auth/origin_server_auth.test.py index a884dcc897..5f00768b56 100644 --- a/tests/gold_tests/pluginTest/origin_server_auth/origin_server_auth.test.py +++ b/tests/gold_tests/pluginTest/origin_server_auth/origin_server_auth.test.py @@ -79,7 +79,6 @@ class OriginServerAuthTest: }) self.ts.Setup.CopyAs('rules/v4-parse-test.test_input', Test.RunDirectory) - self.ts.Setup.CopyAs('rules/gcp-parse-test.test_input', Test.RunDirectory) self.ts.Disk.remap_config.AddLine( f'map http://www.example.com/s3-bucket http://127.0.0.1:{self.server.Variables.Port}/s3-bucket \ @@ -89,7 +88,9 @@ class OriginServerAuthTest: self.ts.Disk.remap_config.AddLine( f'map http://www.example.com/gcp http://127.0.0.1:{self.server.Variables.Port}/gcp \ @plugin=origin_server_auth.so \ - @pparam=--config @pparam={Test.RunDirectory}/gcp-parse-test.test_input') + @pparam=--access_key @pparam=1234567 \ + @pparam=--session_token @pparam=hkMsi6/bfHyBKrSeM/H0hoXeyx8z1yZ/mJ0c+B/TqYx=tTJDjnQWtul38Z9iVJjeH1HB4VT2c=2o3yE3o=I9kmFs/lJDR85qWjB8e5asY/WbjyRpbAzmDipQpboIcYnUYg55bxrQFidV/q8gZa5A9MpR3n=op1C0lWjeBqcEJxpevNZxteSQTQfeGsi98Cdf+On=/SINVlKrNhMnmMsDOLMGx1YYt9d4UsRg1jtVrwxL4Vd/F7aHCZySAXKv+1rkhACR023wpa3dhp+xirGJxSO9LWwvcrTdM4xJo4RS8B40tGENOJ1NKixUJxwN/6og58Oft/u==uleR89Ja=7zszK2H7tX3DqmEYNvNDYQh/7VBRe5otghQtPwJzWpXAGk+Vme4hPPM5K6axH2LxipXzRiIV=oxNs0upKNu1FvuzbCQmkQdKQVmXl0344v [...] + @pparam=--version @pparam=gcpv1') def test_s3_origin_remap(self): ''' diff --git a/tests/gold_tests/pluginTest/origin_server_auth/rules/gcp-parse-test.test_input b/tests/gold_tests/pluginTest/origin_server_auth/rules/gcp-parse-test.test_input deleted file mode 100644 index e947a671eb..0000000000 --- a/tests/gold_tests/pluginTest/origin_server_auth/rules/gcp-parse-test.test_input +++ /dev/null @@ -1,31 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Test empty lines - -# Test space in front - access_key=1234567 - -# long line, space behind -session_token=hkMsi6/bfHyBKrSeM/H0hoXeyx8z1yZ/mJ0c+B/TqYx=tTJDjnQWtul38Z9iVJjeH1HB4VT2c=2o3yE3o=I9kmFs/lJDR85qWjB8e5asY/WbjyRpbAzmDipQpboIcYnUYg55bxrQFidV/q8gZa5A9MpR3n=op1C0lWjeBqcEJxpevNZxteSQTQfeGsi98Cdf+On=/SINVlKrNhMnmMsDOLMGx1YYt9d4UsRg1jtVrwxL4Vd/F7aHCZySAXKv+1rkhACR023wpa3dhp+xirGJxSO9LWwvcrTdM4xJo4RS8B40tGENOJ1NKixUJxwN/6og58Oft/u==uleR89Ja=7zszK2H7tX3DqmEYNvNDYQh/7VBRe5otghQtPwJzWpXAGk+Vme4hPPM5K6axH2LxipXzRiIV=oxNs0upKNu1FvuzbCQmkQdKQVmXl0344vngngrgN7wkEfrYtmKwICmpAS0cbW9jdSCl [...] - -version=gcpv1 - -# Test a key without value -virtual_host - -
