Skip to content

Commit f89d7ba

Browse files
CM-60459-Fallback on V4 upload failure
1 parent d9ce12c commit f89d7ba

2 files changed

Lines changed: 31 additions & 11 deletions

File tree

cycode/cli/apps/scan/code_scanner.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from platform import platform
44
from typing import TYPE_CHECKING, Callable, Optional
55

6+
import requests
67
import typer
78

89
from cycode.cli import consts
@@ -330,9 +331,14 @@ def _perform_scan(
330331
return _perform_scan_sync(cycode_client, zipped_documents, scan_type, scan_parameters, is_git_diff)
331332

332333
if should_use_presigned_upload(scan_type):
333-
return _perform_scan_v4_async(
334-
cycode_client, zipped_documents, scan_type, scan_parameters, is_git_diff, is_commit_range
335-
)
334+
try:
335+
return _perform_scan_v4_async(
336+
cycode_client, zipped_documents, scan_type, scan_parameters, is_git_diff, is_commit_range
337+
)
338+
except requests.exceptions.RequestException:
339+
logger.warning(
340+
'Direct upload to object storage failed. Falling back to upload via Cycode API. '
341+
)
336342

337343
return _perform_scan_async(cycode_client, zipped_documents, scan_type, scan_parameters, is_commit_range)
338344

cycode/cli/apps/scan/commit_range_scanner.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import os
22
from typing import TYPE_CHECKING, Optional
33

4+
import requests
45
import click
56
import typer
67

@@ -152,14 +153,27 @@ def _scan_commit_range_documents(
152153
to_commit_zipped_documents = zip_documents(scan_type, to_documents_to_scan)
153154

154155
if should_use_presigned_upload(scan_type):
155-
scan_result = _perform_commit_range_scan_v4_async(
156-
cycode_client,
157-
from_commit_zipped_documents,
158-
to_commit_zipped_documents,
159-
scan_type,
160-
scan_parameters,
161-
timeout,
162-
)
156+
try:
157+
scan_result = _perform_commit_range_scan_v4_async(
158+
cycode_client,
159+
from_commit_zipped_documents,
160+
to_commit_zipped_documents,
161+
scan_type,
162+
scan_parameters,
163+
timeout,
164+
)
165+
except requests.exceptions.RequestException:
166+
logger.warning(
167+
'Direct upload to object storage failed. Falling back to upload via Cycode API. '
168+
)
169+
scan_result = _perform_commit_range_scan_async(
170+
cycode_client,
171+
from_commit_zipped_documents,
172+
to_commit_zipped_documents,
173+
scan_type,
174+
scan_parameters,
175+
timeout,
176+
)
163177
else:
164178
scan_result = _perform_commit_range_scan_async(
165179
cycode_client,

0 commit comments

Comments
 (0)