api2/node/tasks: change limit behaviour when it is 0
instead of returning 0 elements (which does not really make sense anyway), change it so that there is no limit anymore (besides usize::MAX) this is technically a breaking change for the api, but i guess no one is using limit=0 for anything sensible anyway Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
parent
fa31f4c54c
commit
e7dd169fdf
|
@ -271,7 +271,7 @@ fn stop_task(
|
||||||
},
|
},
|
||||||
limit: {
|
limit: {
|
||||||
type: u64,
|
type: u64,
|
||||||
description: "Only list this amount of tasks.",
|
description: "Only list this amount of tasks. (0 means no limit)",
|
||||||
default: 50,
|
default: 50,
|
||||||
optional: true,
|
optional: true,
|
||||||
},
|
},
|
||||||
|
@ -328,6 +328,7 @@ pub fn list_tasks(
|
||||||
let store = param["store"].as_str();
|
let store = param["store"].as_str();
|
||||||
|
|
||||||
let list = TaskListInfoIterator::new(running)?;
|
let list = TaskListInfoIterator::new(running)?;
|
||||||
|
let limit = if limit > 0 { limit as usize } else { usize::MAX };
|
||||||
|
|
||||||
let result: Vec<TaskListItem> = list
|
let result: Vec<TaskListItem> = list
|
||||||
.take_while(|info| !info.is_err())
|
.take_while(|info| !info.is_err())
|
||||||
|
@ -372,11 +373,11 @@ pub fn list_tasks(
|
||||||
|
|
||||||
Some(info.into())
|
Some(info.into())
|
||||||
}).skip(start as usize)
|
}).skip(start as usize)
|
||||||
.take(limit as usize)
|
.take(limit)
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
let mut count = result.len() + start as usize;
|
let mut count = result.len() + start as usize;
|
||||||
if result.len() > 0 && result.len() >= limit as usize { // we have a 'virtual' entry as long as we have any new
|
if result.len() > 0 && result.len() >= limit { // we have a 'virtual' entry as long as we have any new
|
||||||
count += 1;
|
count += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue