@@ -60,7 +60,7 @@ def __init__(self, credential, endpoint, custom_key_values={}):
6060
6161 self .requests_kwargs .update ({"params" : self .params })
6262 self .pagination = Pagination ()
63- next_page_url_key = endpoint .get ("next_page_url_key" , "" ). split ( '.' )
63+ next_page_url_key = endpoint .get ("next_page_url_key" , "" )
6464 top_key = endpoint .get ("top_key" )
6565 skip_key = endpoint .get ("skip_key" )
6666 pagination_type = endpoint .get ("pagination_type" , "na" )
@@ -87,14 +87,21 @@ def __init__(self, credential, endpoint, custom_key_values={}):
8787 key_value_body = endpoint .get ("key_value_body" , {})
8888 self .requests_kwargs .update ({"json" : get_dku_key_values (key_value_body )})
8989 self .metadata = {}
90+ self .call_number = 0
9091
9192 def set_login (self , credential ):
9293 login_type = credential .get ("login_type" , "no_auth" )
9394 if login_type == "basic_login" :
94- self .username = credential .get ("username" , "" )
95- self .password = credential .get ("password" , "" )
96- self .auth = (self .username , self .password )
97- self .requests_kwargs .update ({"auth" : self .auth })
95+ username = credential .get ("username" , "" )
96+ password = credential .get ("password" , "" )
97+ auth = (username , password )
98+ self .requests_kwargs .update ({"auth" : auth })
99+ if login_type == "ntlm" :
100+ from requests_ntlm import HttpNtlmAuth
101+ username = credential .get ("username" , "" )
102+ password = credential .get ("password" , "" )
103+ auth = HttpNtlmAuth (username , password )
104+ self .requests_kwargs .update ({"auth" : auth })
98105 if login_type == "bearer_token" :
99106 token = credential .get ("token" , "" )
100107 bearer_template = credential .get ("bearer_template" , "Bearer {{token}}" )
@@ -119,8 +126,9 @@ def request(self, method, url, can_raise_exeption=True, **kwargs):
119126 kwargs = template_dict (kwargs , ** self .presets_variables )
120127 if self .loop_detector .is_stuck_in_loop (url , kwargs .get ("params" , {}), kwargs .get ("headers" , {})):
121128 raise RestAPIClientError ("The api-connect plugin is stuck in a loop. Please check the pagination parameters." )
129+ request_start_time = time .time ()
130+ self .time_last_request = request_start_time
122131 try :
123- request_start_time = time .time ()
124132 response = self .request_with_redirect_retry (method , url , ** kwargs )
125133 request_finish_time = time .time ()
126134 except Exception as err :
@@ -131,7 +139,6 @@ def request(self, method, url, can_raise_exeption=True, **kwargs):
131139 else :
132140 return {"error" : error_message }
133141 self .set_metadata ("request_duration" , request_finish_time - request_start_time )
134- self .time_last_request = time .time ()
135142 self .set_metadata ("status_code" , response .status_code )
136143 self .set_metadata ("response_headers" , "{}" .format (response .headers ))
137144 if response .status_code >= 400 :
@@ -167,6 +174,8 @@ def paginated_api_call(self, can_raise_exeption=True):
167174 params = self .requests_kwargs .get ("params" )
168175 params .update (pagination_params )
169176 self .requests_kwargs .update ({"params" : params })
177+ self .call_number = self .call_number + 1
178+ logger .info ("API call number #{}" .format (self .call_number ))
170179 return self .request (self .http_method , self .pagination .get_next_page_url (), can_raise_exeption , ** self .requests_kwargs )
171180
172181 def empty_json_response (self ):
0 commit comments