@@ -185,13 +185,6 @@ async def _find_latest_version(
185
185
raise Ops2debUpdaterError (error )
186
186
187
187
188
- def _blueprint_fetch_urls (blueprint : Blueprint , version : str | None = None ) -> list [str ]:
189
- urls : list [str ] = []
190
- for architecture in blueprint .architectures ():
191
- urls .append (str (blueprint .render_fetch_url (version , architecture )))
192
- return urls
193
-
194
-
195
188
async def _find_latest_versions (
196
189
blueprints : list [Blueprint ],
197
190
) -> tuple [list [LatestRelease ], list [Ops2debError ]]:
@@ -234,7 +227,7 @@ def find_latest_releases(
234
227
releases_by_id : dict [int , LatestRelease ] = {}
235
228
for i , release in enumerate (releases ):
236
229
releases_by_id [i ] = release
237
- for url in _blueprint_fetch_urls ( release .blueprint , release .version ):
230
+ for url in release .blueprint . render_fetch_urls ( release .version ):
238
231
fetcher .add_task (url , data = i )
239
232
results , failures = fetcher .run_tasks ()
240
233
@@ -289,14 +282,35 @@ def _update_configuration(
289
282
return removed_versions
290
283
291
284
292
- def _update_lockfile (
285
+ def _remove_versions_from_lockfile (
293
286
configuration : Resources , release : LatestRelease , removed_versions : list [str ]
294
287
) -> None :
295
288
blueprint = release .blueprint
296
289
lock = configuration .get_blueprint_lock (blueprint )
297
290
for version in removed_versions :
298
- lock .remove (_blueprint_fetch_urls (blueprint , version ))
299
- _blueprint_fetch_urls (blueprint , release .version )
291
+ lock .remove (blueprint .render_fetch_urls (version ))
292
+
293
+
294
+ def _update_configurations (
295
+ resources : Resources , max_versions : int , releases : list [LatestRelease ]
296
+ ) -> list [str ]:
297
+ summary : list [str ] = []
298
+
299
+ for release in releases :
300
+ removed_versions = _update_configuration (resources , release , max_versions )
301
+ if max_versions == 1 :
302
+ lines = [
303
+ f"Update { release .blueprint .name } from "
304
+ f"v{ release .blueprint .version } to v{ release .version } "
305
+ ]
306
+ else :
307
+ lines = [f"Add { release .blueprint .name } v{ release .version } " ]
308
+ for version in removed_versions :
309
+ lines .append (f"Remove { release .blueprint .name } v{ version } " )
310
+ _remove_versions_from_lockfile (resources , release , removed_versions )
311
+ summary .extend (lines )
312
+
313
+ return summary
300
314
301
315
302
316
def update (
@@ -311,21 +325,7 @@ def update(
311
325
logger .title ("Looking for new releases..." )
312
326
releases , errors = find_latest_releases (resources , fetcher , skip_names , only_names )
313
327
314
- summary : list [str ] = []
315
-
316
- for release in releases :
317
- removed_versions = _update_configuration (resources , release , max_versions )
318
- if max_versions == 1 :
319
- line = (
320
- f"Updated { release .blueprint .name } from "
321
- f"{ release .blueprint .version } to { release .version } "
322
- )
323
- else :
324
- line = f"Added { release .blueprint .name } v{ release .version } "
325
- if removed_versions :
326
- line += f" and removed { ', ' .join ([f'v{ v } ' for v in removed_versions ])} "
327
- _update_lockfile (resources , release , removed_versions )
328
- summary .append (line )
328
+ summary = _update_configurations (resources , max_versions , releases )
329
329
330
330
if not releases :
331
331
logger .info ("Did not found any updates" )
0 commit comments