@@ -390,6 +390,7 @@ def _dispatch(self, method, path, body=None, **kwargs):
390390 func = getattr (self ._session , method .lower ())
391391 controller = self ._settings .get ('controller' )
392392 token = self ._settings .get ('token' )
393+ ssl_verify = self ._settings .get ('ssl_verify' )
393394 if not token :
394395 raise EnvironmentError (
395396 'Could not find token. Use `deis login` or `deis register` to get started.' )
@@ -399,7 +400,7 @@ def _dispatch(self, method, path, body=None, **kwargs):
399400 'X-Deis-Version' : __api_version__ .rsplit ('.' , 1 )[0 ],
400401 'Authorization' : 'token {}' .format (token )
401402 }
402- response = func (url , data = body , headers = headers )
403+ response = func (url , data = body , headers = headers , verify = ssl_verify )
403404 # check for version mismatch
404405 server_api_version = response .headers .get ('X_DEIS_API_VERSION' )
405406 if server_api_version is not None and server_api_version != __api_version__ :
@@ -789,8 +790,11 @@ def auth_login(self, args):
789790 provide a username for the account.
790791 --password=<password>
791792 provide a password for the account.
793+ --ssl-verify=false
794+ disables SSL certificate verification for API requests
792795 """
793796 controller = args ['<controller>' ]
797+ ssl_verify = True
794798 if not urlparse .urlparse (controller ).scheme :
795799 controller = "http://{}" .format (controller )
796800 username = args .get ('--username' )
@@ -800,15 +804,20 @@ def auth_login(self, args):
800804 password = args .get ('--password' )
801805 if not password :
802806 password = getpass ('password: ' )
807+ ssl_option = args .get ('--ssl-verify' )
808+ if ssl_option == 'false' :
809+ ssl_verify = False
803810 url = urlparse .urljoin (controller , '/v1/auth/login/' )
804811 payload = {'username' : username , 'password' : password }
805812 # post credentials to the login URL
806- response = self ._session .post (url , data = payload , allow_redirects = False )
813+ response = self ._session .post (url , data = payload , allow_redirects = False ,
814+ verify = ssl_verify )
807815 if response .status_code == requests .codes .ok :
808816 # retrieve and save the API token for future requests
809817 self ._settings ['controller' ] = controller
810818 self ._settings ['username' ] = username
811819 self ._settings ['token' ] = response .json ()['token' ]
820+ self ._settings ['ssl_verify' ] = ssl_verify
812821 self ._settings .save ()
813822 self ._logger .info ("Logged in as {}" .format (username ))
814823 return username
@@ -821,9 +830,8 @@ def auth_logout(self, args):
821830
822831 Usage: deis auth:logout
823832 """
824- self ._settings ['controller' ] = None
825- self ._settings ['username' ] = None
826- self ._settings ['token' ] = None
833+ for i in ['controller' , 'username' , 'token' , 'ssl_verify' ]:
834+ self ._settings [i ] = None
827835 self ._settings .save ()
828836 self ._logger .info ('Logged out' )
829837
0 commit comments