1616
1717__metaclass__ = type
1818
19- try :
20- import requests
21- HAS_REQUESTS = True
22- except ImportError :
23- HAS_REQUESTS = False
24-
2519from ansible_collections .middleware_automation .common .plugins .module_utils .constants import (
2620 QUERY_PAGE_SIZE ,
2721 NEXT_CURSOR_FIELD ,
3630 SEARCH_PARAM_NAME
3731)
3832
33+ import json
3934from ansible .module_utils ._text import to_native
35+ from ansible .module_utils .urls import Request
36+ from ansible .module_utils .six .moves .urllib .parse import urlencode
4037
4138
4239def get_authenticated_session (module , sso_url , validate_certs , client_id , client_secret ):
@@ -48,26 +45,22 @@ def get_authenticated_session(module, sso_url, validate_certs, client_id, client
4845 "grant_type" : "client_credentials" ,
4946 }
5047
51- # Obtain Access Token
52- if HAS_REQUESTS :
53- token_request = requests .post (
54- f"{ sso_url } /auth/realms/redhat-external/protocol/openid-connect/token" ,
55- data = token_request_data , verify = validate_certs )
48+ # Initialize Session
49+ session = Request (validate_certs = validate_certs , headers = {})
5650
5751 try :
58- token_request .raise_for_status ()
52+ token_request = session .post (f"{ sso_url } /auth/realms/redhat-external/protocol/openid-connect/token" , data = urlencode (token_request_data ))
53+
5954 except Exception as err :
6055 module .fail_json (msg = "Error Retrieving SSO Access Token: %s" % (to_native (err )))
6156
62- access_token = token_request .json ( )["access_token" ]
57+ access_token = json . loads ( token_request .read () )["access_token" ]
6358
6459 # Setup Session
65- if HAS_REQUESTS :
66- session = requests .Session ()
67- session .headers = {
68- "Authorization" : f"Bearer { access_token } " ,
69- "Content-Type" : "application/json" ,
70- }
60+ session .headers = {
61+ "Authorization" : f"Bearer { access_token } " ,
62+ "Content-Type" : "application/json" ,
63+ }
7164
7265 return session
7366
@@ -107,10 +100,22 @@ def perform_search(session, url, validate_certs, params=None):
107100
108101 params .update (pagination_params )
109102
110- query_request = session .get (url , params = params , verify = validate_certs )
111- query_request .raise_for_status ()
103+ full_url = []
104+ full_url .append (url )
105+
106+ if len (params ) > 0 :
107+
108+ # Remove None Keys
109+ none_keys = [k for (k , v ) in params .items () if v is None ]
110+ for key in none_keys :
111+ del params [key ]
112+
113+ full_url .append ("?" )
114+ full_url .append (urlencode (params ))
115+
116+ query_request = session .get ("" .join (full_url ))
112117
113- query_result_json = query_request .json ( )
118+ query_result_json = json . loads ( query_request .read () )
114119
115120 results .extend (
116121 query_result_json [RESULTS_FIELD ])
0 commit comments