aboutsummaryrefslogtreecommitdiffstats
path: root/zoned
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-02-20 21:44:07 -0600
committerToby Vincent <tobyv13@gmail.com>2022-02-20 21:44:07 -0600
commit3e9dbb4b3464acccb5a0d51a0d73592068f0f100 (patch)
treeb3d0b02498f2fc1d8fbfc025cd2b6ce6c93c1968 /zoned
parentd28b7c80bd0f6ebeb47c2af53daa6e9cf049d298 (diff)
refactor: clean up filter function
Diffstat (limited to 'zoned')
-rw-r--r--zoned/src/api.rs22
1 files changed, 5 insertions, 17 deletions
diff --git a/zoned/src/api.rs b/zoned/src/api.rs
index 5a00467..64c466b 100644
--- a/zoned/src/api.rs
+++ b/zoned/src/api.rs
@@ -5,8 +5,7 @@ use rocket_okapi::{
settings::UrlObject,
swagger_ui::{make_swagger_ui, SwaggerUIConfig},
};
-use tracing::warn;
-use zone_core::{Container, PartialEqOrDefault};
+use zone_core::Container;
use zone_zfs::ZFS;
use crate::{Config, Error, Result};
@@ -25,22 +24,11 @@ pub fn test_endpoint(zfs: &State<zone_zfs::ZFS>) -> Json<String> {
/// Returns a list of containers based on the query.
#[openapi(tag = "Container")]
#[get("/container/list?<container..>")]
-pub fn container_list(container: Container) -> Json<Vec<Container>> {
+pub fn container_list(container: Container) -> Result<Json<Vec<Container>>> {
zone_nspawn::get_containers()
- .unwrap_or_else(|err| {
- warn!("Invalid nspawn container found: {}", err);
- Default::default()
- })
- .into_iter()
- .map(|c| {
- c.try_into().unwrap_or_else(|err| {
- warn!("Invalid nspawn container found: {}", err);
- Default::default()
- })
- })
- .filter(|c| container.eq_or_default(c))
- .collect::<Vec<Container>>()
- .into()
+ .map(|v| container.filter_from(v))
+ .map(Json::from)
+ .map_err(Error::from)
}
/// Create container