Skip to content

Commit 41cf9db

Browse files
committed
Show non-longer-supported backend as "UNKNOWN" instead of erroring out.
1 parent 7701c54 commit 41cf9db

File tree

2 files changed

+21
-18
lines changed

2 files changed

+21
-18
lines changed

src/setup/driver.rs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -244,20 +244,21 @@ pub fn check_flow_setup_status(
244244
);
245245

246246
let mut target_resources = Vec::new();
247+
let mut unknown_resources = Vec::new();
247248

248249
let grouped_target_resources = group_resource_states(
249250
desired_state.iter().flat_map(|d| d.targets.iter()),
250251
existing_state.iter().flat_map(|e| e.targets.iter()),
251252
)?;
252253
let registry = executor_factory_registry();
253254
for (resource_id, v) in grouped_target_resources.into_iter() {
254-
let factory = registry.get(&resource_id.target_kind).ok_or_else(|| {
255-
anyhow::anyhow!(
256-
"Target resource type not found: {}",
257-
resource_id.target_kind
258-
)
259-
})?;
260-
255+
let factory = match registry.get(&resource_id.target_kind) {
256+
Some(factory) => factory,
257+
None => {
258+
unknown_resources.push(resource_id.clone());
259+
continue;
260+
}
261+
};
261262
let factory = match factory {
262263
ExecutorFactory::ExportTarget(factory) => factory,
263264
_ => bail!("Unexpected factory type for {}", resource_id.target_kind),
@@ -309,6 +310,7 @@ pub fn check_flow_setup_status(
309310
metadata_change,
310311
tracking_table: tracking_table_change.into_setup_info(),
311312
target_resources,
313+
unknown_resources,
312314
})
313315
}
314316

src/setup/states.rs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ impl<K, S, C: ResourceSetupStatusCheck> std::fmt::Display for ResourceSetupInfo<
274274
Some(SetupChangeType::Invalid) => "INVALID",
275275
None => "USER MANAGED",
276276
};
277-
write!(f, "[ {:^9} ] {}\n\n", status_code, self.description)?;
277+
writeln!(f, "[ {:^9} ] {}", status_code, self.description)?;
278278
if let Some(status_check) = &self.status_check {
279279
let changes = status_check.describe_changes();
280280
if !changes.is_empty() {
@@ -283,9 +283,9 @@ impl<K, S, C: ResourceSetupStatusCheck> std::fmt::Display for ResourceSetupInfo<
283283
for change in changes {
284284
writeln!(f, " - {}", change)?;
285285
}
286+
writeln!(f)?;
286287
}
287288
}
288-
writeln!(f)?;
289289
Ok(())
290290
}
291291
}
@@ -323,6 +323,8 @@ pub struct FlowSetupStatusCheck {
323323
pub target_resources: Vec<
324324
ResourceSetupInfo<ResourceIdentifier, TargetSetupState, Box<dyn ResourceSetupStatusCheck>>,
325325
>,
326+
327+
pub unknown_resources: Vec<ResourceIdentifier>,
326328
}
327329

328330
impl ObjectSetupStatusCheck for FlowSetupStatusCheck {
@@ -383,18 +385,17 @@ impl std::fmt::Display for FormattedFlowSetupStatusCheck<'_> {
383385
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
384386
let flow_ssc = self.1;
385387

386-
write!(
387-
f,
388-
"{} Flow: {}\n\n",
389-
ObjectSetupStatusCode(flow_ssc),
390-
self.0
391-
)?;
388+
write!(f, "{} Flow: {}\n", ObjectSetupStatusCode(flow_ssc), self.0)?;
392389

393390
let mut f = indented(f).with_str(INDENT);
394391
write!(f, "{}", flow_ssc.tracking_table)?;
395392

396393
for target_resource in &flow_ssc.target_resources {
397-
writeln!(f, "{}", target_resource)?;
394+
write!(f, "{}", target_resource)?;
395+
}
396+
397+
for resource in &flow_ssc.unknown_resources {
398+
writeln!(f, "[ UNKNOWN ] {resource}")?;
398399
}
399400

400401
Ok(())
@@ -403,9 +404,9 @@ impl std::fmt::Display for FormattedFlowSetupStatusCheck<'_> {
403404

404405
impl std::fmt::Display for AllSetupStatusCheck {
405406
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
406-
write!(f, "{}", self.metadata_table)?;
407+
writeln!(f, "{}", self.metadata_table)?;
407408
for (flow_name, flow_status) in &self.flows {
408-
write!(
409+
writeln!(
409410
f,
410411
"{}",
411412
FormattedFlowSetupStatusCheck(flow_name, flow_status)

0 commit comments

Comments
 (0)