-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Labels
featureNew feature or requestNew feature or request
Description
Description
Currently, the azure-init main flow in main.rs tightly couples provisioning logic with reporting success or failure to the health endpoint. Specifically:
- On provisioning success,
report_ready()is called immediately. - On provisioning failure,
report_failure()is called immediately. - Configuration load errors trigger
report_failure()inline.
This design makes reporting dependent on provisioning, which limits flexibility for future enhancements such as exposing APIs for report_ready and report_failure.
Problem
- Reporting logic is embedded directly in the main provisioning flow.
- Cannot invoke
report_readyorreport_failureindependently of provisioning. - Harder to support external consumers or APIs that need reporting without full provisioning.
Solution
- Remove inline calls to
report_ready()andreport_failurefrommain.rs. - Update
Provision::provision()to return status without forcing reporting.
Relevant Code
The current coupling occurs in main.rs:
match provision(config, &vm_id, opts).await {
Ok(_) => {
let report_result =
report_ready(&clone_config, &vm_id, None).await;
.....
ExitCode::SUCCESS
}
Err(e) => {
...
let report_result =
report_failure(report_str, &clone_config).await;
....
tracing::error!("Provisioning failed with error: {e:?}");
....
}
}
}Metadata
Metadata
Assignees
Labels
featureNew feature or requestNew feature or request
Type
Projects
Status
Backlog