35 lines
1.2 KiB
Rust
35 lines
1.2 KiB
Rust
use serde_json::{json, Value};
|
|
|
|
use crate::errors::cli_error_summary_for_category;
|
|
|
|
pub(crate) fn confirmation_required_report(
|
|
command: &str,
|
|
operation: &str,
|
|
target: Value,
|
|
confirm_command: String,
|
|
) -> Value {
|
|
let message = format!("{command} requires --yes before {operation}");
|
|
let next_actions = json!([
|
|
confirm_command,
|
|
"review the command target before confirming",
|
|
"rerun with --json to inspect the safe failure"
|
|
]);
|
|
let mut machine_error = cli_error_summary_for_category("policy", &message);
|
|
if let Some(object) = machine_error.as_object_mut() {
|
|
object.insert("confirmation_required".to_owned(), json!(true));
|
|
object.insert("next_actions".to_owned(), next_actions.clone());
|
|
}
|
|
json!({
|
|
"command": command,
|
|
"status": "confirmation_required",
|
|
"operation": operation,
|
|
"target": target,
|
|
"requires_confirmation": true,
|
|
"confirmation_required": true,
|
|
"explicit_user_action_required": true,
|
|
"coordinator_request_sent": false,
|
|
"safe_failure": true,
|
|
"next_actions": next_actions,
|
|
"machine_error": machine_error,
|
|
})
|
|
}
|