diff options
author | Toby Vincent <tobyv13@gmail.com> | 2022-02-20 21:44:07 -0600 |
---|---|---|
committer | Toby Vincent <tobyv13@gmail.com> | 2022-02-20 21:44:07 -0600 |
commit | 3e9dbb4b3464acccb5a0d51a0d73592068f0f100 (patch) | |
tree | b3d0b02498f2fc1d8fbfc025cd2b6ce6c93c1968 /zoned | |
parent | d28b7c80bd0f6ebeb47c2af53daa6e9cf049d298 (diff) |
refactor: clean up filter function
Diffstat (limited to 'zoned')
-rw-r--r-- | zoned/src/api.rs | 22 |
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 |