@@ -311,13 +311,9 @@ impl Configurator {
311311 for resource in resources {
312312 progress. set_resource ( & resource. name , & resource. resource_type ) ;
313313 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 ;
321317 }
322318 let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
323319 return Err ( DscError :: ResourceNotFound ( resource. resource_type ) ) ;
@@ -395,13 +391,9 @@ impl Configurator {
395391 for resource in resources {
396392 progress. set_resource ( & resource. name , & resource. resource_type ) ;
397393 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 ;
405397 }
406398 let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
407399 return Err ( DscError :: ResourceNotFound ( resource. resource_type ) ) ;
@@ -551,13 +543,9 @@ impl Configurator {
551543 for resource in resources {
552544 progress. set_resource ( & resource. name , & resource. resource_type ) ;
553545 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 ;
561549 }
562550 let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
563551 return Err ( DscError :: ResourceNotFound ( resource. resource_type ) ) ;
@@ -632,13 +620,9 @@ impl Configurator {
632620 for resource in & resources {
633621 progress. set_resource ( & resource. name , & resource. resource_type ) ;
634622 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 ;
642626 }
643627 let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
644628 return Err ( DscError :: ResourceNotFound ( resource. resource_type . clone ( ) ) ) ;
@@ -674,6 +658,17 @@ impl Configurator {
674658 Ok ( result)
675659 }
676660
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+
677672 /// Set the mounted path for the configuration.
678673 ///
679674 /// # Arguments
0 commit comments