Skip to content

Commit 1aad988

Browse files
committed
Add Squelch to cdp_client
Signed-off-by: rsuplina <rsuplina@cloudera.com>
1 parent 8073015 commit 1aad988

File tree

1 file changed

+31
-9
lines changed

1 file changed

+31
-9
lines changed

plugins/module_utils/cdp_client.py

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

426434
class 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

Comments
 (0)