@@ -88,29 +88,53 @@ def main():
8888 f"{ release } -{ arch } " ,
8989 )
9090
91- # Load product versions using boil
92- result = subprocess .run (
93- ["cargo" , "boil" , "show" , "images" ],
94- cwd = "docker-images" ,
95- capture_output = True ,
96- text = True ,
97- )
98- if result .returncode != 0 :
99- print ("Failed to get product versions:" , result .stderr )
100- sys .exit (1 )
101- product_versions = json .loads (result .stdout )
102-
103- for product_name , versions in product_versions .items ():
104- if product_name in excluded_products :
105- continue
106- for version in versions :
107- product_version = f"{ version } -stackable{ release } "
108- scan_image (
109- secobserve_api_token ,
110- f"{ REGISTRY_URL } /sdp/{ product_name } :{ product_version } -{ arch } " ,
111- product_name ,
112- f"{ product_version } -{ arch } " ,
113- )
91+ # Check if conf.py exists (old format) or use boil (new format)
92+ conf_py_path = "docker-images/conf.py"
93+ if os .path .exists (conf_py_path ):
94+ # Use old conf.py based approach
95+ print ("Using conf.py based configuration" )
96+ from image_tools .args import load_configuration
97+ sys .path .append ("docker-images" )
98+ product_versions_config = load_configuration (conf_py_path )
99+
100+ for product in product_versions_config .products :
101+ product_name : str = product ["name" ]
102+ if product_name in excluded_products :
103+ continue
104+ for version_dict in product .get ("versions" , []):
105+ version : str = version_dict ["product" ]
106+ product_version = f"{ version } -stackable{ release } "
107+ scan_image (
108+ secobserve_api_token ,
109+ f"{ REGISTRY_URL } /sdp/{ product_name } :{ product_version } -{ arch } " ,
110+ product_name ,
111+ f"{ product_version } -{ arch } " ,
112+ )
113+ else :
114+ # Use new boil based approach
115+ print ("Using boil based configuration" )
116+ result = subprocess .run (
117+ ["cargo" , "boil" , "show" , "images" ],
118+ cwd = "docker-images" ,
119+ capture_output = True ,
120+ text = True ,
121+ )
122+ if result .returncode != 0 :
123+ print ("Failed to get product versions:" , result .stderr )
124+ sys .exit (1 )
125+ product_versions = json .loads (result .stdout )
126+
127+ for product_name , versions in product_versions .items ():
128+ if product_name in excluded_products :
129+ continue
130+ for version in versions :
131+ product_version = f"{ version } -stackable{ release } "
132+ scan_image (
133+ secobserve_api_token ,
134+ f"{ REGISTRY_URL } /sdp/{ product_name } :{ product_version } -{ arch } " ,
135+ product_name ,
136+ f"{ product_version } -{ arch } " ,
137+ )
114138
115139
116140def scan_image (
0 commit comments