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()