MCPcopy Create free account
hub / github.com/PowerShell/DSC / find_resources

Method find_resources

lib/dsc-lib/src/discovery/mod.rs:147–174  ·  view source on GitHub ↗

Find resources based on the required resource types. # Arguments `required_resource_types` - The required resource types.

(&mut self, required_resource_types: &[DiscoveryFilter], progress_format: ProgressFormat)

Source from the content-addressed store, hash-verified

145 ///
146 /// * `required_resource_types` - The required resource types.
147 pub fn find_resources(&mut self, required_resource_types: &[DiscoveryFilter], progress_format: ProgressFormat) -> Result<(), DscError> {
148 if !self.refresh_cache && !self.resources.is_empty() {
149 // If resources are already discovered, no need to re-discover.
150 return Ok(());
151 }
152
153 let mut command_discovery = CommandDiscovery::new(progress_format);
154 if self.refresh_cache {
155 self.resources.clear();
156 self.extensions.clear();
157 command_discovery.set_discovery_mode(&ResourceDiscoveryMode::DuringDeployment);
158 }
159 let discovery_types: Vec<Box<dyn ResourceDiscovery>> = vec![
160 Box::new(command_discovery),
161 ];
162 for mut discovery_type in discovery_types {
163
164 let discovered_resources = discovery_type.find_resources(required_resource_types)?;
165 for (resource_name, resources) in discovered_resources {
166 self.resources.entry(resource_name).or_default().extend(resources);
167 }
168
169 if let Ok(extensions) = discovery_type.get_extensions() {
170 self.extensions.extend(extensions);
171 }
172 }
173 Ok(())
174 }
175}
176
177/// Check if a resource matches the adapter requirement specified in the filter.

Callers 2

find_resourceMethod · 0.45
validate_configMethod · 0.45

Calls 4

set_discovery_modeMethod · 0.80
newFunction · 0.50
is_emptyMethod · 0.45
get_extensionsMethod · 0.45

Tested by

no test coverage detected