You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by ra...@apache.org on 2020/11/13 17:56:58 UTC

[trafficcontrol] branch master updated: Fix LetsEncryptDnsChallengeWatcher config location (#5280)

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

rawlin 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 bf10033  Fix LetsEncryptDnsChallengeWatcher config location (#5280)
bf10033 is described below

commit bf100338b405cf3f5e5d0d318f8f7c4772f16115
Author: Steve Hamrick <sh...@users.noreply.github.com>
AuthorDate: Fri Nov 13 10:56:47 2020 -0700

    Fix LetsEncryptDnsChallengeWatcher config location (#5280)
    
    * Fix LE Watcher
    
    * Forgot Changelog
    
    * Use tabs
    
    Co-authored-by: Steve Hamrick <st...@comcast.com>
---
 CHANGELOG.md                                       |  5 ++++-
 .../core/ds/LetsEncryptDnsChallengeWatcher.java    | 26 ++++++++++++++++------
 .../src/main/webapp/WEB-INF/applicationContext.xml | 15 +++++++------
 3 files changed, 31 insertions(+), 15 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 776a79b..0ebce43 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,7 +9,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
 - Added locationByDeepCoverageZone to the `crs/stats/ip/{ip}` endpoint in the Traffic Router API
 
 ### Fixed
-- Fixed #5274 - CDN in a Box's Traffic Vault image failed to build due to Basho's repo responding with 402 Payment Required. The repo has been removed from the image.
+- [#5274](https://github.com/apache/trafficcontrol/issues/5274) - CDN in a Box's Traffic Vault image failed to build due 
+    to Basho's repo responding with 402 Payment Required. The repo has been removed from the image.
+- [#5069](https://github.com/apache/trafficcontrol/issues/5069) - For LetsEncryptDnsChallengerWatcher in Traffic Router,
+    the cr-config location is configurable instead of only looking at `/opt/traffic_router/db/cr-config.json`
 
 ## [5.0.0] - 2020-10-20
 ### Added
diff --git a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/LetsEncryptDnsChallengeWatcher.java b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/LetsEncryptDnsChallengeWatcher.java
index d568085..f009f6a 100644
--- a/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/LetsEncryptDnsChallengeWatcher.java
+++ b/traffic_router/core/src/main/java/com/comcast/cdn/traffic_control/traffic_router/core/ds/LetsEncryptDnsChallengeWatcher.java
@@ -29,6 +29,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.log4j.Logger;
 
 import java.io.*;
+import java.nio.file.Path;
 import java.time.Instant;
 import java.util.HashMap;
 import java.util.List;
@@ -36,13 +37,10 @@ import java.util.List;
 public class LetsEncryptDnsChallengeWatcher extends AbstractResourceWatcher {
     private static final Logger LOGGER = Logger.getLogger(LetsEncryptDnsChallengeWatcher.class);
     public static final String DEFAULT_LE_DNS_CHALLENGE_URL = "https://${toHostname}/api/2.0/letsencrypt/dnsrecords/";
-    private static final String configFile = "/opt/traffic_router/db/cr-config.json";
 
+    private String configFile;
     private ConfigHandler configHandler;
-
-    public void setConfigHandler(final ConfigHandler configHandler) {
-        this.configHandler = configHandler;
-    }
+    private Path databasesDirectory;
 
     public LetsEncryptDnsChallengeWatcher() {
         setDatabaseUrl(DEFAULT_LE_DNS_CHALLENGE_URL);
@@ -134,7 +132,7 @@ public class LetsEncryptDnsChallengeWatcher extends AbstractResourceWatcher {
 
     private String readConfigFile() {
         try {
-            final InputStream is = new FileInputStream(configFile);
+            final InputStream is = new FileInputStream(databasesDirectory.resolve(configFile).toString());
             final BufferedReader buf = new BufferedReader(new InputStreamReader(is));
             String line = buf.readLine();
             final StringBuilder sb = new StringBuilder();
@@ -144,7 +142,7 @@ public class LetsEncryptDnsChallengeWatcher extends AbstractResourceWatcher {
             }
             return sb.toString();
         } catch (Exception e) {
-            LOGGER.error("Could not read cr-config file.");
+            LOGGER.error("Could not read cr-config file " + configFile + ".");
             return null;
         }
     }
@@ -178,4 +176,18 @@ public class LetsEncryptDnsChallengeWatcher extends AbstractResourceWatcher {
         return newStaticDnsEntriesNode;
     }
 
+    public void setConfigHandler(final ConfigHandler configHandler) {
+        this.configHandler = configHandler;
+    }
+    public ConfigHandler getConfigHandler() {
+        return this.configHandler;
+    }
+
+    public void setDatabasesDirectory(final Path databasesDirectory) {
+        this.databasesDirectory = databasesDirectory;
+    }
+
+    public void setConfigFile(final String configFile) {
+        this.configFile = configFile;
+    }
 }
diff --git a/traffic_router/core/src/main/webapp/WEB-INF/applicationContext.xml b/traffic_router/core/src/main/webapp/WEB-INF/applicationContext.xml
index 544cf55..55ef754 100644
--- a/traffic_router/core/src/main/webapp/WEB-INF/applicationContext.xml
+++ b/traffic_router/core/src/main/webapp/WEB-INF/applicationContext.xml
@@ -89,14 +89,15 @@
 		<property name="steeringRegistry" ref="steeringRegistry" />
 	</bean>
 
-    <bean id="letsEncryptDnsChallengeWatcher" class="com.comcast.cdn.traffic_control.traffic_router.core.ds.LetsEncryptDnsChallengeWatcher">
-        <property name="executorService" ref="ScheduledExecutorService" />
-        <property name="databasesDirectory" ref="databasesDir" />
-        <property name="databaseName" value="$[cache.letsencrypt.database:letsencrypt.json]" />
-        <property name="trafficOpsUtils" ref="trafficOpsUtils" />
-        <property name="trafficRouterManager" ref="trafficRouterManager" />
+	<bean id="letsEncryptDnsChallengeWatcher" class="com.comcast.cdn.traffic_control.traffic_router.core.ds.LetsEncryptDnsChallengeWatcher">
+		<property name="executorService" ref="ScheduledExecutorService" />
+		<property name="databasesDirectory" ref="databasesDir" />
+		<property name="databaseName" value="$[cache.letsencrypt.database:letsencrypt.json]" />
+		<property name="trafficOpsUtils" ref="trafficOpsUtils" />
+		<property name="trafficRouterManager" ref="trafficRouterManager" />
 		<property name="pollingInterval" value="60000" />
-        <property name="configHandler" ref="ConfigHandler" />
+		<property name="configFile" value="$[cache.config.json:cr-config.json]" />
+		<property name="configHandler" ref="ConfigHandler" />
 	</bean>
 
 	<bean id="certificatesQueue" class="java.util.concurrent.ArrayBlockingQueue" >