src/api2/node/tasks.rs: use api macro for list_tasks
This commit is contained in:
		@ -4,7 +4,7 @@ use std::io::{BufRead, BufReader};
 | 
				
			|||||||
use failure::*;
 | 
					use failure::*;
 | 
				
			||||||
use serde_json::{json, Value};
 | 
					use serde_json::{json, Value};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use proxmox::api::{ApiHandler, ApiMethod, Router, RpcEnvironment};
 | 
					use proxmox::api::{api, ApiHandler, ApiMethod, Router, RpcEnvironment};
 | 
				
			||||||
use proxmox::api::router::SubdirMap;
 | 
					use proxmox::api::router::SubdirMap;
 | 
				
			||||||
use proxmox::api::schema::*;
 | 
					use proxmox::api::schema::*;
 | 
				
			||||||
use proxmox::{identity, list_subdirs_api_method, sortable};
 | 
					use proxmox::{identity, list_subdirs_api_method, sortable};
 | 
				
			||||||
@ -114,6 +114,59 @@ fn stop_task(
 | 
				
			|||||||
    Ok(Value::Null)
 | 
					    Ok(Value::Null)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#[api(
 | 
				
			||||||
 | 
					    input: {
 | 
				
			||||||
 | 
					        properties: {
 | 
				
			||||||
 | 
					            node: {
 | 
				
			||||||
 | 
					                schema: NODE_SCHEMA
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            start: {
 | 
				
			||||||
 | 
					                type: u64,
 | 
				
			||||||
 | 
					                description: "List tasks beginning from this offset.",
 | 
				
			||||||
 | 
					                default: 0,
 | 
				
			||||||
 | 
					                optional: true,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            limit: {
 | 
				
			||||||
 | 
					                type: u64,
 | 
				
			||||||
 | 
					                description: "Only list this amount of tasks.",
 | 
				
			||||||
 | 
					                default: 50,
 | 
				
			||||||
 | 
					                optional: true,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            store: {
 | 
				
			||||||
 | 
					                schema: DATASTORE_SCHEMA,
 | 
				
			||||||
 | 
					                optional: true,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            running: {
 | 
				
			||||||
 | 
					                type: bool,
 | 
				
			||||||
 | 
					                description: "Only list running tasks.",
 | 
				
			||||||
 | 
					                optional: true,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            errors: {
 | 
				
			||||||
 | 
					                type: bool,
 | 
				
			||||||
 | 
					                description: "Only list erroneous tasks.",
 | 
				
			||||||
 | 
					                optional:true,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            userfilter: {
 | 
				
			||||||
 | 
					                optional:true,
 | 
				
			||||||
 | 
					                type: String,
 | 
				
			||||||
 | 
					                description: "Only list tasks from this user.",
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    returns: {
 | 
				
			||||||
 | 
					        description: "A list of tasks.",
 | 
				
			||||||
 | 
					        type: Array,
 | 
				
			||||||
 | 
					        items: {
 | 
				
			||||||
 | 
					            description: "Task properties.",
 | 
				
			||||||
 | 
					            type: Object,
 | 
				
			||||||
 | 
					            properties: {
 | 
				
			||||||
 | 
					                upid: { schema: UPID_SCHEMA },
 | 
				
			||||||
 | 
					                // fixme: add other properties
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					)]
 | 
				
			||||||
 | 
					/// List tasks.
 | 
				
			||||||
fn list_tasks(
 | 
					fn list_tasks(
 | 
				
			||||||
    param: Value,
 | 
					    param: Value,
 | 
				
			||||||
    _info: &ApiMethod,
 | 
					    _info: &ApiMethod,
 | 
				
			||||||
@ -264,29 +317,5 @@ pub const UPID_API_ROUTER: Router = Router::new()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#[sortable]
 | 
					#[sortable]
 | 
				
			||||||
pub const ROUTER: Router = Router::new()
 | 
					pub const ROUTER: Router = Router::new()
 | 
				
			||||||
    .get(
 | 
					    .get(&API_METHOD_LIST_TASKS)
 | 
				
			||||||
        &ApiMethod::new(
 | 
					 | 
				
			||||||
            &ApiHandler::Sync(&list_tasks),
 | 
					 | 
				
			||||||
            &ObjectSchema::new(
 | 
					 | 
				
			||||||
                "List tasks.",
 | 
					 | 
				
			||||||
                &sorted!([
 | 
					 | 
				
			||||||
                    ("node", false, &NODE_SCHEMA),
 | 
					 | 
				
			||||||
                    ("start", true, &IntegerSchema::new("List tasks beginning from this offset.")
 | 
					 | 
				
			||||||
                     .minimum(0)
 | 
					 | 
				
			||||||
                     .default(0)
 | 
					 | 
				
			||||||
                     .schema()
 | 
					 | 
				
			||||||
                    ),
 | 
					 | 
				
			||||||
                    ("limit", true, &IntegerSchema::new("Only list this amount of tasks.")
 | 
					 | 
				
			||||||
                     .minimum(0)
 | 
					 | 
				
			||||||
                     .default(50)
 | 
					 | 
				
			||||||
                     .schema()
 | 
					 | 
				
			||||||
                    ),
 | 
					 | 
				
			||||||
                    ("store", true, &DATASTORE_SCHEMA),
 | 
					 | 
				
			||||||
                    ("running", true, &BooleanSchema::new("Only list running tasks.").schema()),
 | 
					 | 
				
			||||||
                    ("errors", true, &BooleanSchema::new("Only list erroneous tasks.").schema()),
 | 
					 | 
				
			||||||
                    ("userfilter", true, &StringSchema::new("Only list tasks from this user.").schema()),
 | 
					 | 
				
			||||||
                ]),
 | 
					 | 
				
			||||||
            )
 | 
					 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    .match_all("upid", &UPID_API_ROUTER);
 | 
					    .match_all("upid", &UPID_API_ROUTER);
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user