@@ -311,6 +311,14 @@ 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
+ }
321
+ }
314
322
let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
315
323
return Err ( DscError :: ResourceNotFound ( resource. resource_type ) ) ;
316
324
} ;
@@ -387,6 +395,14 @@ impl Configurator {
387
395
for resource in resources {
388
396
progress. set_resource ( & resource. name , & resource. resource_type ) ;
389
397
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
+ }
405
+ }
390
406
let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
391
407
return Err ( DscError :: ResourceNotFound ( resource. resource_type ) ) ;
392
408
} ;
@@ -535,6 +551,14 @@ impl Configurator {
535
551
for resource in resources {
536
552
progress. set_resource ( & resource. name , & resource. resource_type ) ;
537
553
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
+ }
561
+ }
538
562
let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
539
563
return Err ( DscError :: ResourceNotFound ( resource. resource_type ) ) ;
540
564
} ;
@@ -608,6 +632,14 @@ impl Configurator {
608
632
for resource in & resources {
609
633
progress. set_resource ( & resource. name , & resource. resource_type ) ;
610
634
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
+ }
642
+ }
611
643
let Some ( dsc_resource) = discovery. find_resource ( & resource. resource_type ) else {
612
644
return Err ( DscError :: ResourceNotFound ( resource. resource_type . clone ( ) ) ) ;
613
645
} ;
0 commit comments