@@ -311,13 +311,9 @@ impl Configurator {
311
311
for resource in resources {
312
312
progress. set_resource ( & resource. name , & resource. resource_type ) ;
313
313
progress. write_activity ( format ! ( "Get '{}'" , resource. name) . as_str ( ) ) ;
314
- if let Some ( condition) = & resource. condition {
315
- let condition_result = self . statement_parser . parse_and_execute ( condition, & self . context ) ?;
316
- if condition_result != Value :: Bool ( true ) {
317
- info ! ( "{}" , t!( "configure.config_doc.skippingResource" , name = resource. name, condition = condition, result = condition_result) ) ;
318
- progress. write_increment ( 1 ) ;
319
- continue ;
320
- }
314
+ if self . skip_resource ( & resource) ? {
315
+ progress. write_increment ( 1 ) ;
316
+ continue ;
321
317
}
322
318
let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
323
319
return Err ( DscError :: ResourceNotFound ( resource. resource_type ) ) ;
@@ -395,13 +391,9 @@ impl Configurator {
395
391
for resource in resources {
396
392
progress. set_resource ( & resource. name , & resource. resource_type ) ;
397
393
progress. write_activity ( format ! ( "Set '{}'" , resource. name) . as_str ( ) ) ;
398
- if let Some ( condition) = & resource. condition {
399
- let condition_result = self . statement_parser . parse_and_execute ( condition, & self . context ) ?;
400
- if condition_result != Value :: Bool ( true ) {
401
- info ! ( "{}" , t!( "configure.config_doc.skippingResource" , name = resource. name, condition = condition, result = condition_result) ) ;
402
- progress. write_increment ( 1 ) ;
403
- continue ;
404
- }
394
+ if self . skip_resource ( & resource) ? {
395
+ progress. write_increment ( 1 ) ;
396
+ continue ;
405
397
}
406
398
let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
407
399
return Err ( DscError :: ResourceNotFound ( resource. resource_type ) ) ;
@@ -551,13 +543,9 @@ impl Configurator {
551
543
for resource in resources {
552
544
progress. set_resource ( & resource. name , & resource. resource_type ) ;
553
545
progress. write_activity ( format ! ( "Test '{}'" , resource. name) . as_str ( ) ) ;
554
- if let Some ( condition) = & resource. condition {
555
- let condition_result = self . statement_parser . parse_and_execute ( condition, & self . context ) ?;
556
- if condition_result != Value :: Bool ( true ) {
557
- info ! ( "{}" , t!( "configure.config_doc.skippingResource" , name = resource. name, condition = condition, result = condition_result) ) ;
558
- progress. write_increment ( 1 ) ;
559
- continue ;
560
- }
546
+ if self . skip_resource ( & resource) ? {
547
+ progress. write_increment ( 1 ) ;
548
+ continue ;
561
549
}
562
550
let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
563
551
return Err ( DscError :: ResourceNotFound ( resource. resource_type ) ) ;
@@ -632,13 +620,9 @@ impl Configurator {
632
620
for resource in & resources {
633
621
progress. set_resource ( & resource. name , & resource. resource_type ) ;
634
622
progress. write_activity ( format ! ( "Export '{}'" , resource. name) . as_str ( ) ) ;
635
- if let Some ( condition) = & resource. condition {
636
- let condition_result = self . statement_parser . parse_and_execute ( condition, & self . context ) ?;
637
- if condition_result != Value :: Bool ( true ) {
638
- info ! ( "{}" , t!( "configure.config_doc.skippingResource" , name = resource. name, condition = condition, result = condition_result) ) ;
639
- progress. write_increment ( 1 ) ;
640
- continue ;
641
- }
623
+ if self . skip_resource ( resource) ? {
624
+ progress. write_increment ( 1 ) ;
625
+ continue ;
642
626
}
643
627
let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
644
628
return Err ( DscError :: ResourceNotFound ( resource. resource_type . clone ( ) ) ) ;
@@ -674,6 +658,17 @@ impl Configurator {
674
658
Ok ( result)
675
659
}
676
660
661
+ fn skip_resource ( & mut self , resource : & Resource ) -> Result < bool , DscError > {
662
+ if let Some ( condition) = & resource. condition {
663
+ let condition_result = self . statement_parser . parse_and_execute ( condition, & self . context ) ?;
664
+ if condition_result != Value :: Bool ( true ) {
665
+ info ! ( "{}" , t!( "configure.config_doc.skippingResource" , name = resource. name, condition = condition, result = condition_result) ) ;
666
+ return Ok ( true ) ;
667
+ }
668
+ }
669
+ Ok ( false )
670
+ }
671
+
677
672
/// Set the mounted path for the configuration.
678
673
///
679
674
/// # Arguments
0 commit comments