Try to connect to NGC.
(api_key, retry=0)
| 292 | |
| 293 | |
| 294 | def _get_ngc_token(api_key, retry=0): |
| 295 | """Try to connect to NGC.""" |
| 296 | url = "https://authn.nvidia.com/token?service=ngc" |
| 297 | headers = {"Accept": "application/json", "Authorization": "ApiKey " + api_key} |
| 298 | if has_requests: |
| 299 | response = requests.get(url, headers=headers) |
| 300 | if not response.ok: |
| 301 | # retry 3 times, if failed, raise an error. |
| 302 | if retry < 3: |
| 303 | logger.info(f"Retrying {retry} time(s) to GET {url}.") |
| 304 | return _get_ngc_token(url, retry + 1) |
| 305 | raise RuntimeError("NGC API response is not ok. Failed to get token.") |
| 306 | else: |
| 307 | token = response.json()["token"] |
| 308 | return token |
| 309 | |
| 310 | |
| 311 | def _examine_monai_version(monai_version: str) -> tuple[bool, str]: |