33# Copyright: (c) 2019, Abhijeet Kasurde <akasurde@redhat.com>
44# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
55
6- from __future__ import (absolute_import , division , print_function )
6+ from __future__ import absolute_import , division , print_function
7+
78__metaclass__ = type
89
9- DOCUMENTATION = '''
10+ DOCUMENTATION = """
1011---
1112author: Abhijeet Kasurde (Akasurde)
1213httpapi : vmware
1314short_description: HttpApi Plugin for VMware REST API
1415description:
1516 - This HttpApi plugin provides methods to connect to VMware vCenter over a HTTP(S)-based APIs.
16- '''
17+ """
1718
1819import json
1920
2425from ansible .module_utils .connection import ConnectionError
2526
2627BASE_HEADERS = {
27- ' Content-Type' : ' application/json' ,
28- ' Accept' : ' application/json' ,
28+ " Content-Type" : " application/json" ,
29+ " Accept" : " application/json" ,
2930}
3031
3132
3233class HttpApi (HttpApiBase ):
3334 def login (self , username , password ):
3435 if username and password :
3536 payload = {}
36- url = ' /rest/com/vmware/cis/session'
37+ url = " /rest/com/vmware/cis/session"
3738 response , response_data = self .send_request (url , payload )
3839 else :
39- raise AnsibleConnectionFailure ('Username and password are required for login' )
40+ raise AnsibleConnectionFailure (
41+ "Username and password are required for login"
42+ )
4043
4144 if response == 404 :
4245 raise ConnectionError (response_data )
4346
44- if not response_data .get ('value' ):
45- raise ConnectionError ('Server returned response without token info during connection authentication: %s' % response )
47+ if not response_data .get ("value" ):
48+ raise ConnectionError (
49+ "Server returned response without token info during connection authentication: %s"
50+ % response
51+ )
4652
47- self .connection ._session_uid = "vmware-api-session-id:%s" % response_data ['value' ]
48- self .connection ._token = response_data ['value' ]
53+ self .connection ._session_uid = (
54+ "vmware-api-session-id:%s" % response_data ["value" ]
55+ )
56+ self .connection ._token = response_data ["value" ]
4957
5058 def logout (self ):
51- response , dummy = self .send_request ('/rest/com/vmware/cis/session' , None , method = 'DELETE' )
59+ response , dummy = self .send_request (
60+ "/rest/com/vmware/cis/session" , None , method = "DELETE"
61+ )
5262
5363 def get_session_uid (self ):
5464 return self .connection ._session_uid
5565
5666 def get_session_token (self ):
5767 return self .connection ._token
5868
59- def send_request (self , path , body_params , method = ' POST' ):
60- data = json .dumps (body_params ) if body_params else '{}'
69+ def send_request (self , path , body_params , method = " POST" ):
70+ data = json .dumps (body_params ) if body_params else "{}"
6171
6272 try :
6373 self ._display_request (method = method )
64- response , response_data = self .connection .send (path , data , method = method , headers = BASE_HEADERS , force_basic_auth = True )
74+ response , response_data = self .connection .send (
75+ path ,
76+ data ,
77+ method = method ,
78+ headers = BASE_HEADERS ,
79+ force_basic_auth = True ,
80+ )
6581 response_value = self ._get_response_value (response_data )
6682
6783 return response .getcode (), self ._response_to_json (response_value )
6884 except AnsibleConnectionFailure as e :
69- return 404 , ' Object not found'
85+ return 404 , " Object not found"
7086 except HTTPError as e :
7187 return e .code , json .loads (e .read ())
7288
73- def _display_request (self , method = 'POST' ):
74- self .connection .queue_message ('vvvv' , 'Web Services: %s %s' % (method , self .connection ._url ))
89+ def _display_request (self , method = "POST" ):
90+ self .connection .queue_message (
91+ "vvvv" , "Web Services: %s %s" % (method , self .connection ._url )
92+ )
7593
7694 def _get_response_value (self , response_data ):
7795 return to_text (response_data .getvalue ())
@@ -81,4 +99,4 @@ def _response_to_json(self, response_text):
8199 return json .loads (response_text ) if response_text else {}
82100 # JSONDecodeError only available on Python 3.5+
83101 except ValueError :
84- raise ConnectionError (' Invalid JSON response: %s' % response_text )
102+ raise ConnectionError (" Invalid JSON response: %s" % response_text )
0 commit comments