55
66import re
77from time import sleep
8- from typing import Union
8+ from typing import TYPE_CHECKING , Union
9+
10+ if TYPE_CHECKING :
11+ from ecs_composex .compose .compose_services .service_image import ServiceImage
912
1013from boto3 .session import Session
1114from compose_x_common .compose_x_common import keyisset , set_else_none
2932
3033
3134def initial_scan_retrieval (
32- registry , repository_name , image , image_url , trigger_scan , ecr_session = None
35+ registry , repository_name , image , service_image , trigger_scan , ecr_session = None
3336):
3437 """
3538 Function to retrieve the scan findings from ECR, and if none, can trigger scan
3639
3740 :param str registry:
3841 :param str repository_name:
3942 :param dict image:
40- :param str image_url :
43+ :param ServiceImage service_image :
4144 :param bool trigger_scan:
4245 :param boto3.session.Session ecr_session:
4346 :return: The scan report
@@ -52,17 +55,19 @@ def initial_scan_retrieval(
5255 )
5356 return image_scan_r
5457 except client .exceptions .ScanNotFoundException :
55- LOG .error (f"No scan report found for { image_url } " )
58+ LOG .error (f"No scan report found for { service_image . image_uri } " )
5659 if trigger_scan :
57- LOG .info (f"Triggering scan for { image_url } , trigger_scan={ trigger_scan } " )
60+ LOG .info (
61+ f"Triggering scan for { service_image .image_uri } , trigger_scan={ trigger_scan } "
62+ )
5863 trigger_images_scan (
5964 repo_name = repository_name ,
6065 images_to_scan = [image ],
6166 ecr_session = ecr_session ,
6267 )
6368 else :
6469 LOG .warn (
65- f"No scan was available and scanning not requested for { image_url } . Skipping"
70+ f"No scan was available and scanning not requested for { service_image . image_uri } . Skipping"
6671 )
6772 return None
6873
@@ -102,7 +107,7 @@ def wait_for_scan_report(
102107 registry ,
103108 repository_name ,
104109 image ,
105- image_url ,
110+ image_url : ServiceImage ,
106111 trigger_scan = False ,
107112 ecr_session = None ,
108113) -> dict [str , Union [dict , str ]]:
@@ -111,7 +116,7 @@ def wait_for_scan_report(
111116
112117 :param str registry:
113118 :param str repository_name:
114- :param dict image:
119+ :param image:
115120 :param str image_url::
116121 :param bool trigger_scan:
117122 :param boto3.session.Session ecr_session:
@@ -223,14 +228,15 @@ def validate_the_image_input(the_image):
223228 raise KeyError ("imageDigest must be set in the_image" )
224229
225230
226- def scan_service_image (service , settings , the_image = None ):
231+ def scan_service_image (
232+ service , settings , the_image : ServiceImage = None
233+ ) -> tuple [bool , list [str ]]:
227234 """
228235 Function to review the service definition and evaluate scan if properties defined
229236
230237 :param ecs_composex.common.compose_services.ComposeService service:
231238 :param ecs_composex.common.settings.ComposeXSettings settings: The settings for the execution
232239 :param the_image: The image to use for scanning references.
233- :return:
234240 """
235241 region = None
236242 if validate_input (service ):
0 commit comments