@@ -7,9 +7,7 @@ use camino::Utf8PathBuf;
7
7
use clap:: Parser ;
8
8
use fn_error_context:: context;
9
9
use ostree:: gio;
10
- use ostree_container:: store:: LayeredImageState ;
11
10
use ostree_container:: store:: PrepareResult ;
12
- use ostree_container:: OstreeImageReference ;
13
11
use ostree_ext:: container as ostree_container;
14
12
use ostree_ext:: container:: SignatureSource ;
15
13
use ostree_ext:: keyfileext:: KeyFileExt ;
@@ -214,57 +212,6 @@ pub(crate) async fn get_locked_sysroot() -> Result<ostree_ext::sysroot::SysrootL
214
212
Ok ( sysroot)
215
213
}
216
214
217
- /// Wrapper for pulling a container image, wiring up status output.
218
- async fn new_importer (
219
- repo : & ostree:: Repo ,
220
- imgref : & ostree_container:: OstreeImageReference ,
221
- ) -> Result < ostree_container:: store:: ImageImporter > {
222
- let config = Default :: default ( ) ;
223
- let mut imp = ostree_container:: store:: ImageImporter :: new ( repo, imgref, config) . await ?;
224
- imp. require_bootable ( ) ;
225
- Ok ( imp)
226
- }
227
-
228
- /// Wrapper for pulling a container image, wiring up status output.
229
- #[ context( "Pulling" ) ]
230
- async fn pull (
231
- repo : & ostree:: Repo ,
232
- imgref : & ImageReference ,
233
- quiet : bool ,
234
- ) -> Result < Box < LayeredImageState > > {
235
- let imgref = & OstreeImageReference :: from ( imgref. clone ( ) ) ;
236
- let mut imp = new_importer ( repo, imgref) . await ?;
237
- let prep = match imp. prepare ( ) . await ? {
238
- PrepareResult :: AlreadyPresent ( c) => {
239
- println ! ( "No changes in {} => {}" , imgref, c. manifest_digest) ;
240
- return Ok ( c) ;
241
- }
242
- PrepareResult :: Ready ( p) => p,
243
- } ;
244
- if let Some ( warning) = prep. deprecated_warning ( ) {
245
- ostree_ext:: cli:: print_deprecated_warning ( warning) . await ;
246
- }
247
- ostree_ext:: cli:: print_layer_status ( & prep) ;
248
- let printer = ( !quiet) . then ( || {
249
- let layer_progress = imp. request_progress ( ) ;
250
- let layer_byte_progress = imp. request_layer_progress ( ) ;
251
- tokio:: task:: spawn ( async move {
252
- ostree_ext:: cli:: handle_layer_progress_print ( layer_progress, layer_byte_progress) . await
253
- } )
254
- } ) ;
255
- let import = imp. import ( prep) . await ;
256
- if let Some ( printer) = printer {
257
- let _ = printer. await ;
258
- }
259
- let import = import?;
260
- if let Some ( msg) =
261
- ostree_container:: store:: image_filtered_content_warning ( repo, & imgref. imgref ) ?
262
- {
263
- eprintln ! ( "{msg}" )
264
- }
265
- Ok ( import)
266
- }
267
-
268
215
#[ context( "Querying root privilege" ) ]
269
216
pub ( crate ) fn require_root ( ) -> Result < ( ) > {
270
217
let uid = rustix:: process:: getuid ( ) ;
@@ -327,7 +274,7 @@ async fn upgrade(opts: UpgradeOpts) -> Result<()> {
327
274
let mut changed = false ;
328
275
if opts. check {
329
276
let imgref = imgref. clone ( ) . into ( ) ;
330
- let mut imp = new_importer ( repo, & imgref) . await ?;
277
+ let mut imp = crate :: deploy :: new_importer ( repo, & imgref) . await ?;
331
278
match imp. prepare ( ) . await ? {
332
279
PrepareResult :: AlreadyPresent ( _) => {
333
280
println ! ( "No changes in: {}" , imgref) ;
@@ -347,7 +294,7 @@ async fn upgrade(opts: UpgradeOpts) -> Result<()> {
347
294
}
348
295
}
349
296
} else {
350
- let fetched = pull ( & sysroot. repo ( ) , imgref, opts. quiet ) . await ?;
297
+ let fetched = crate :: deploy :: pull ( & sysroot. repo ( ) , imgref, opts. quiet ) . await ?;
351
298
let staged_digest = staged_image. as_ref ( ) . map ( |s| s. image_digest . as_str ( ) ) ;
352
299
let fetched_digest = fetched. manifest_digest . as_str ( ) ;
353
300
tracing:: debug!( "staged: {staged_digest:?}" ) ;
@@ -424,7 +371,7 @@ async fn switch(opts: SwitchOpts) -> Result<()> {
424
371
}
425
372
let new_spec = RequiredHostSpec :: from_spec ( & new_spec) ?;
426
373
427
- let fetched = pull ( repo, & target, opts. quiet ) . await ?;
374
+ let fetched = crate :: deploy :: pull ( repo, & target, opts. quiet ) . await ?;
428
375
429
376
if !opts. retain {
430
377
// By default, we prune the previous ostree ref so it will go away after later upgrades
@@ -467,7 +414,7 @@ async fn edit(opts: EditOpts) -> Result<()> {
467
414
return Ok ( ( ) ) ;
468
415
}
469
416
let new_spec = RequiredHostSpec :: from_spec ( & new_host. spec ) ?;
470
- let fetched = pull ( repo, new_spec. image , opts. quiet ) . await ?;
417
+ let fetched = crate :: deploy :: pull ( repo, new_spec. image , opts. quiet ) . await ?;
471
418
472
419
// TODO gc old layers here
473
420
0 commit comments