@@ -274,20 +274,16 @@ impl ResourceDiscovery for CommandDiscovery {
274
274
275
275
fn list_available_resources ( & mut self , type_name_filter : & str , adapter_name_filter : & str ) -> Result < BTreeMap < String , Vec < DscResource > > , DscError > {
276
276
277
- trace ! ( "Listing resources with type_name_filter/adapter_name_filter: {type_name_filter}/{adapter_name_filter}" ) ;
278
-
279
- self . discover_resources ( type_name_filter) ?;
280
-
281
- if !adapter_name_filter. is_empty ( ) {
282
- self . discover_adapted_resources ( type_name_filter, adapter_name_filter) ?;
283
- }
284
-
277
+ trace ! ( "Listing resources with type_name_filter '{type_name_filter}' and adapter_name_filter '{adapter_name_filter}'" ) ;
285
278
let mut resources = BTreeMap :: < String , Vec < DscResource > > :: new ( ) ;
286
279
287
280
if adapter_name_filter. is_empty ( ) {
281
+ self . discover_resources ( type_name_filter) ?;
288
282
resources. append ( & mut self . resources ) ;
289
283
resources. append ( & mut self . adapters ) ;
290
284
} else {
285
+ self . discover_resources ( "*" ) ?;
286
+ self . discover_adapted_resources ( type_name_filter, adapter_name_filter) ?;
291
287
resources. append ( & mut self . adapted_resources ) ;
292
288
}
293
289
@@ -353,8 +349,22 @@ fn insert_resource(resources: &mut BTreeMap<String, Vec<DscResource>>, resource:
353
349
// compare the resource versions and insert newest to oldest using semver
354
350
let mut insert_index = resource_versions. len ( ) ;
355
351
for ( index, resource_instance) in resource_versions. iter ( ) . enumerate ( ) {
356
- let resource_instance_version = Version :: parse ( & resource_instance. version ) ?;
357
- let resource_version = Version :: parse ( & resource. version ) ?;
352
+ let resource_instance_version = match Version :: parse ( & resource_instance. version ) {
353
+ Ok ( v) => v,
354
+ Err ( err) => {
355
+ // write as info since PowerShell resources tend to have invalid semver
356
+ info ! ( "Resource '{}' has invalid version: {err}" , resource_instance. type_name) ;
357
+ continue ;
358
+ } ,
359
+ } ;
360
+ let resource_version = match Version :: parse ( & resource. version ) {
361
+ Ok ( v) => v,
362
+ Err ( err) => {
363
+ // write as info since PowerShell resources tend to have invalid semver
364
+ info ! ( "Resource '{}' has invalid version: {err}" , resource. type_name) ;
365
+ continue ;
366
+ } ,
367
+ } ;
358
368
// if the version already exists, we skip
359
369
if resource_instance_version == resource_version {
360
370
return Ok ( ( ) ) ;
0 commit comments