@@ -19,16 +19,20 @@ class DopplerClient(object):
1919 def __init__ (self , doppler_endpoint : str , proxy : str , verify_ssl : bool , credentials_manager : CredentialManager ):
2020 self .proxy_host = None
2121 self .proxy_port = None
22+ self .proxy_auth = None
2223 self .ws_doppler_endpoint = doppler_endpoint
2324 self .http_doppler_endpoint = re .sub ("^ws" , "http" , doppler_endpoint )
2425 self .verify_ssl = verify_ssl
2526 self .credentials_manager = credentials_manager
2627 if proxy is not None and len (proxy ) > 0 :
27- proxy_domain = urlparse (proxy ).netloc
28- idx = proxy_domain .find (":" )
29- if 0 < idx < len (proxy_domain ) - 2 :
30- self .proxy_host = proxy_domain [:idx ]
31- self .proxy_port = int (proxy_domain [idx + 1 :])
28+ proxy_parsed = urlparse (proxy )
29+ self .proxy_host = proxy_parsed .hostname
30+ if proxy_parsed .port is not None :
31+ self .proxy_port = proxy_parsed .port
32+ else :
33+ self .proxy_port = 443 if proxy_parsed .scheme == "https" else 80
34+ if proxy_parsed .username is not None and proxy_parsed .password is not None :
35+ self .proxy_auth = (proxy_parsed .username , proxy_parsed .password )
3236
3337 def recent_logs (self , app_guid : str ) -> EnvelopeStream :
3438 url = "%s/apps/%s/recentlogs" % (self .http_doppler_endpoint , app_guid )
@@ -46,6 +50,7 @@ def stream_logs(self, app_guid: str) -> EnvelopeStream:
4650 verify_ssl = self .verify_ssl ,
4751 proxy_host = self .proxy_host ,
4852 proxy_port = self .proxy_port ,
53+ proxy_auth = self .proxy_auth ,
4954 ) as websocket :
5055 for message in websocket :
5156 yield DopplerClient ._parse_envelope (message )
0 commit comments