src/bin/proxmox-backup-client.rs: use async fn
This commit is contained in:
		@ -2176,40 +2176,36 @@ fn catalog_mgmt_cli() -> CliCommandMap {
 | 
			
		||||
    }
 | 
			
		||||
)]
 | 
			
		||||
/// List running server tasks for this repo user
 | 
			
		||||
fn task_list(param: Value) -> Result<Value, Error> {
 | 
			
		||||
async fn task_list(param: Value) -> Result<Value, Error> {
 | 
			
		||||
 | 
			
		||||
    async_main(async {
 | 
			
		||||
        let output_format = param["output-format"].as_str().unwrap_or("text").to_owned();
 | 
			
		||||
        let repo = extract_repository_from_value(¶m)?;
 | 
			
		||||
        let client = HttpClient::new(repo.host(), repo.user(), None)?;
 | 
			
		||||
    let output_format = param["output-format"].as_str().unwrap_or("text").to_owned();
 | 
			
		||||
    let repo = extract_repository_from_value(¶m)?;
 | 
			
		||||
    let client = HttpClient::new(repo.host(), repo.user(), None)?;
 | 
			
		||||
 | 
			
		||||
        let limit = param["limit"].as_u64().unwrap_or(50) as usize;
 | 
			
		||||
    let limit = param["limit"].as_u64().unwrap_or(50) as usize;
 | 
			
		||||
 | 
			
		||||
        let args = json!({
 | 
			
		||||
            "running": true,
 | 
			
		||||
            "start": 0,
 | 
			
		||||
            "limit": limit,
 | 
			
		||||
            "userfilter": repo.user(),
 | 
			
		||||
            "store": repo.store(),
 | 
			
		||||
        });
 | 
			
		||||
        let result = client.get("api2/json/nodes/localhost/tasks", Some(args)).await?;
 | 
			
		||||
    let args = json!({
 | 
			
		||||
        "running": true,
 | 
			
		||||
        "start": 0,
 | 
			
		||||
        "limit": limit,
 | 
			
		||||
        "userfilter": repo.user(),
 | 
			
		||||
        "store": repo.store(),
 | 
			
		||||
    });
 | 
			
		||||
    let result = client.get("api2/json/nodes/localhost/tasks", Some(args)).await?;
 | 
			
		||||
 | 
			
		||||
        let data = &result["data"];
 | 
			
		||||
    let data = &result["data"];
 | 
			
		||||
 | 
			
		||||
        if output_format == "text" {
 | 
			
		||||
            for item in data.as_array().unwrap() {
 | 
			
		||||
                println!(
 | 
			
		||||
                    "{} {}",
 | 
			
		||||
                    item["upid"].as_str().unwrap(),
 | 
			
		||||
                    item["status"].as_str().unwrap_or("running"),
 | 
			
		||||
                );
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            format_and_print_result(data, &output_format);
 | 
			
		||||
    if output_format == "text" {
 | 
			
		||||
        for item in data.as_array().unwrap() {
 | 
			
		||||
            println!(
 | 
			
		||||
                "{} {}",
 | 
			
		||||
                item["upid"].as_str().unwrap(),
 | 
			
		||||
                item["status"].as_str().unwrap_or("running"),
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        Ok::<_, Error>(())
 | 
			
		||||
    })?;
 | 
			
		||||
    } else {
 | 
			
		||||
        format_and_print_result(data, &output_format);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Ok(Value::Null)
 | 
			
		||||
}
 | 
			
		||||
@ -2228,18 +2224,14 @@ fn task_list(param: Value) -> Result<Value, Error> {
 | 
			
		||||
    }
 | 
			
		||||
)]
 | 
			
		||||
/// Display the task log.
 | 
			
		||||
fn task_log(param: Value) -> Result<Value, Error> {
 | 
			
		||||
async fn task_log(param: Value) -> Result<Value, Error> {
 | 
			
		||||
 | 
			
		||||
    async_main(async {
 | 
			
		||||
        let repo = extract_repository_from_value(¶m)?;
 | 
			
		||||
        let upid =  tools::required_string_param(¶m, "upid")?;
 | 
			
		||||
    let repo = extract_repository_from_value(¶m)?;
 | 
			
		||||
    let upid =  tools::required_string_param(¶m, "upid")?;
 | 
			
		||||
 | 
			
		||||
        let client = HttpClient::new(repo.host(), repo.user(), None)?;
 | 
			
		||||
    let client = HttpClient::new(repo.host(), repo.user(), None)?;
 | 
			
		||||
 | 
			
		||||
        display_task_log(client, upid, true).await?;
 | 
			
		||||
 | 
			
		||||
        Ok::<_, Error>(())
 | 
			
		||||
    })?;
 | 
			
		||||
    display_task_log(client, upid, true).await?;
 | 
			
		||||
 | 
			
		||||
    Ok(Value::Null)
 | 
			
		||||
}
 | 
			
		||||
@ -2258,19 +2250,15 @@ fn task_log(param: Value) -> Result<Value, Error> {
 | 
			
		||||
    }
 | 
			
		||||
)]
 | 
			
		||||
/// Try to stop a specific task.
 | 
			
		||||
fn task_stop(param: Value) -> Result<Value, Error> {
 | 
			
		||||
async fn task_stop(param: Value) -> Result<Value, Error> {
 | 
			
		||||
 | 
			
		||||
    async_main(async {
 | 
			
		||||
        let repo = extract_repository_from_value(¶m)?;
 | 
			
		||||
        let upid_str =  tools::required_string_param(¶m, "upid")?;
 | 
			
		||||
    let repo = extract_repository_from_value(¶m)?;
 | 
			
		||||
    let upid_str =  tools::required_string_param(¶m, "upid")?;
 | 
			
		||||
 | 
			
		||||
        let mut client = HttpClient::new(repo.host(), repo.user(), None)?;
 | 
			
		||||
    let mut client = HttpClient::new(repo.host(), repo.user(), None)?;
 | 
			
		||||
 | 
			
		||||
        let path = format!("api2/json/nodes/localhost/tasks/{}", upid_str);
 | 
			
		||||
        let _ = client.delete(&path, None).await?;
 | 
			
		||||
 | 
			
		||||
        Ok::<_, Error>(())
 | 
			
		||||
    })?;
 | 
			
		||||
    let path = format!("api2/json/nodes/localhost/tasks/{}", upid_str);
 | 
			
		||||
    let _ = client.delete(&path, None).await?;
 | 
			
		||||
 | 
			
		||||
    Ok(Value::Null)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user