@@ -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__ :
@@ -788,8 +789,11 @@ def auth_login(self, args):
788789 provide a username for the account.
789790 --password=<password>
790791 provide a password for the account.
792+ --ssl-verify=false
793+ disables SSL certificate verification for API requests
791794 """
792795 controller = args ['<controller>' ]
796+ ssl_verify = True
793797 if not urlparse .urlparse (controller ).scheme :
794798 controller = "http://{}" .format (controller )
795799 username = args .get ('--username' )
@@ -799,15 +803,20 @@ def auth_login(self, args):
799803 password = args .get ('--password' )
800804 if not password :
801805 password = getpass ('password: ' )
806+ ssl_option = args .get ('--ssl-verify' )
807+ if ssl_option == 'false' :
808+ ssl_verify = False
802809 url = urlparse .urljoin (controller , '/v1/auth/login/' )
803810 payload = {'username' : username , 'password' : password }
804811 # post credentials to the login URL
805- response = self ._session .post (url , data = payload , allow_redirects = False )
812+ response = self ._session .post (url , data = payload , allow_redirects = False ,
813+ verify = ssl_verify )
806814 if response .status_code == requests .codes .ok :
807815 # retrieve and save the API token for future requests
808816 self ._settings ['controller' ] = controller
809817 self ._settings ['username' ] = username
810818 self ._settings ['token' ] = response .json ()['token' ]
819+ self ._settings ['ssl_verify' ] = ssl_verify
811820 self ._settings .save ()
812821 self ._logger .info ("Logged in as {}" .format (username ))
813822 return username
@@ -820,9 +829,8 @@ def auth_logout(self, args):
820829
821830 Usage: deis auth:logout
822831 """
823- self ._settings ['controller' ] = None
824- self ._settings ['username' ] = None
825- self ._settings ['token' ] = None
832+ for i in ['controller' , 'username' , 'token' , 'ssl_verify' ]:
833+ self ._settings [i ] = None
826834 self ._settings .save ()
827835 self ._logger .info ('Logged out' )
828836
0 commit comments