@@ -258,6 +258,7 @@ def _post(
258258 path : str ,
259259 data : Optional [Dict [str , Any ]] = None ,
260260 json_data : Optional [Dict [str , Any ]] = None ,
261+ squelch : Dict [int , Any ] = {},
261262 ) -> Dict [str , Any ]:
262263 """Execute HTTP POST request."""
263264 pass
@@ -268,12 +269,17 @@ def _put(
268269 path : str ,
269270 data : Optional [Dict [str , Any ]] = None ,
270271 json_data : Optional [Dict [str , Any ]] = None ,
272+ squelch : Optional [Dict [int , Any ]] = {},
271273 ) -> Dict [str , Any ]:
272274 """Execute HTTP PUT request."""
273275 pass
274276
275277 @abc .abstractmethod
276- def _delete (self , path : str ) -> Dict [str , Any ]:
278+ def _delete (
279+ self ,
280+ path : str ,
281+ squelch : Dict [int , Any ] = {},
282+ ) -> Dict [str , Any ]:
277283 """Execute HTTP DELETE request."""
278284 pass
279285
@@ -408,19 +414,21 @@ def post(
408414 path : str ,
409415 data : Optional [Dict [str , Any ]] = None ,
410416 json_data : Optional [Dict [str , Any ]] = None ,
417+ squelch : Dict [int , Any ] = {},
411418 ) -> Dict [str , Any ]:
412- return self .api_client ._post (path , data , json_data )
419+ return self .api_client ._post (path , data , json_data , squelch = squelch )
413420
414421 def put (
415422 self ,
416423 path : str ,
417424 data : Optional [Dict [str , Any ]] = None ,
418425 json_data : Optional [Dict [str , Any ]] = None ,
426+ squelch : Dict [int , Any ] = {},
419427 ) -> Dict [str , Any ]:
420- return self .api_client ._put (path , data , json_data )
428+ return self .api_client ._put (path , data , json_data , squelch = squelch )
421429
422- def delete (self , path : str ) -> Dict [str , Any ]:
423- return self .api_client ._delete (path )
430+ def delete (self , path : str , squelch : Dict [ int , Any ] = {} ) -> Dict [str , Any ]:
431+ return self .api_client ._delete (path , squelch = squelch )
424432
425433
426434class AnsibleCdpClient (RestClient ):
@@ -477,6 +485,7 @@ def _make_request(
477485 data : Optional [Union [Dict [str , Any ], List [Any ]]] = None ,
478486 json_data : Optional [Union [Dict [str , Any ], List [Any ]]] = None ,
479487 max_retries : int = 3 ,
488+ squelch : Optional [Dict [int , Any ]] = None ,
480489 ) -> Any :
481490 """
482491 Make HTTP request with retry logic using Ansible's fetch_url.
@@ -488,6 +497,7 @@ def _make_request(
488497 data: Form data
489498 json_data: JSON data
490499 max_retries: Maximum number of retry attempts
500+ squelch: Dictionary of HTTP status codes to squelch with default return values
491501
492502 Returns:
493503 Response data as dictionary or None for 204 responses
@@ -556,6 +566,12 @@ def _make_request(
556566 if status_code == 403 :
557567 raise CdpError (f"Forbidden access to { path } " , status = 403 )
558568
569+ if status_code in squelch :
570+ self .module .warn (
571+ f"Squelched error { status_code } for { url } " ,
572+ )
573+ return squelch [status_code ]
574+
559575 # Handle success responses
560576 if 200 <= status_code < 300 :
561577 # 204 No Content - return None
@@ -640,19 +656,25 @@ def _post(
640656 path : str ,
641657 data : Optional [Dict [str , Any ]] = None ,
642658 json_data : Optional [Dict [str , Any ]] = None ,
659+ squelch : Dict [int , Any ] = {},
643660 ) -> Dict [str , Any ]:
644661 """Execute HTTP POST request."""
645- return self ._make_request ("POST" , path , data = data , json_data = json_data )
662+ return self ._make_request (
663+ "POST" , path , data = data , json_data = json_data , squelch = squelch
664+ )
646665
647666 def _put (
648667 self ,
649668 path : str ,
650669 data : Optional [Dict [str , Any ]] = None ,
651670 json_data : Optional [Dict [str , Any ]] = None ,
671+ squelch : Dict [int , Any ] = {},
652672 ) -> Dict [str , Any ]:
653673 """Execute HTTP PUT request."""
654- return self ._make_request ("PUT" , path , data = data , json_data = json_data )
674+ return self ._make_request (
675+ "PUT" , path , data = data , json_data = json_data , squelch = squelch
676+ )
655677
656- def _delete (self , path : str ) -> Dict [str , Any ]:
678+ def _delete (self , path : str , squelch : Dict [ int , Any ] = {} ) -> Dict [str , Any ]:
657679 """Execute HTTP DELETE request."""
658- return self ._make_request ("DELETE" , path )
680+ return self ._make_request ("DELETE" , path , squelch = squelch )
0 commit comments