allow for configuring whisk apihost via optional environment variable (#268)
diff --git a/provider/consumer.py b/provider/consumer.py
index f9aaef2..3819072 100644
--- a/provider/consumer.py
+++ b/provider/consumer.py
@@ -31,6 +31,7 @@
from datetime import datetime
from datetimeutils import secondsSince
from multiprocessing import Process, Manager
+from urlparse import urlparse
local_dev = os.getenv('LOCAL_DEV', 'False')
payload_limit = int(os.getenv('PAYLOAD_LIMIT', 900000))
@@ -127,7 +128,7 @@
self.trigger = trigger
self.isMessageHub = params["isMessageHub"]
- self.triggerURL = params["triggerURL"]
+ self.triggerURL = self.__triggerURL(params["triggerURL"])
self.brokers = params["brokers"]
self.topic = params["topic"]
@@ -203,6 +204,20 @@
def secondsSinceLastPoll(self):
return secondsSince(self.lastPoll())
+ def __triggerURL(self, originalURL):
+ apiHost = os.getenv('API_HOST')
+
+ if apiHost is not None:
+ logging.info('[{}] Environment variable defined for API_HOST. Overriding host value defined for trigger in DB with {}'.format(self.trigger, apiHost))
+ parsed = urlparse(originalURL)
+ parts = parsed.netloc.split('@')
+ auth = parts[0]
+ newURL = parsed._replace(netloc='{}@{}'.format(auth, apiHost))
+
+ return newURL.geturl()
+ else:
+ return originalURL
+
def run(self):
try:
self.consumer = self.__createConsumer()