* [pdm-devel] [PATCH datacenter-manager 1/2] server: api: resources: implement remote match for template @ 2025-09-10 13:22 Dominik Csapak 2025-09-10 13:22 ` [pdm-devel] [PATCH datacenter-manager 2/2] server: api: resources: improve search when searching for remotes Dominik Csapak 2025-09-10 15:12 ` [pdm-devel] applied: [PATCH datacenter-manager 1/2] server: api: resources: implement remote match for template Thomas Lamprecht 0 siblings, 2 replies; 3+ messages in thread From: Dominik Csapak @ 2025-09-10 13:22 UTC (permalink / raw) To: pdm-devel this was a leftover `todo!()`, a remote has no concept of a template so return false if a remote should be filtered by that category. Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> --- server/src/api/resources.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/api/resources.rs b/server/src/api/resources.rs index dcdf0ea..db705b8 100644 --- a/server/src/api/resources.rs +++ b/server/src/api/resources.rs @@ -125,7 +125,7 @@ fn remote_matches_search_term(remote_name: &str, online: Option<bool>, term: &Se Some(false) => category.matches("offline", &term.value), None => true, }, - MatchCategory::Template => todo!(), + MatchCategory::Template => false, }, Some(Err(_)) => false, None => remote_name.contains(&term.value) || "remote".starts_with(&term.value), -- 2.47.3 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
* [pdm-devel] [PATCH datacenter-manager 2/2] server: api: resources: improve search when searching for remotes 2025-09-10 13:22 [pdm-devel] [PATCH datacenter-manager 1/2] server: api: resources: implement remote match for template Dominik Csapak @ 2025-09-10 13:22 ` Dominik Csapak 2025-09-10 15:12 ` [pdm-devel] applied: [PATCH datacenter-manager 1/2] server: api: resources: implement remote match for template Thomas Lamprecht 1 sibling, 0 replies; 3+ messages in thread From: Dominik Csapak @ 2025-09-10 13:22 UTC (permalink / raw) To: pdm-devel currently, 'remote:foo' marks the filter as 'remote_only' so subresources will never be returned. This leads to some awkward searches that intuitively should work, for example: '+remote:foo type:qemu' to look for all vms on a specific remote by making the 'remote' category not 'remote only', and giving the remote name to the resource filter, we can make that query above work without problems. This makes the search with remote names much more intuitive Signed-off-by: Dominik Csapak <d.csapak@proxmox.com> --- i noticed this while trying to search for a vm on a specific remote, which is a rather common use-case IMO server/src/api/resources.rs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/server/src/api/resources.rs b/server/src/api/resources.rs index db705b8..6385fdc 100644 --- a/server/src/api/resources.rs +++ b/server/src/api/resources.rs @@ -91,7 +91,11 @@ impl MatchCategory { } // returns None if we can't decide if it matches, currently only for the `Remote` category` -fn resource_matches_search_term(resource: &Resource, term: &SearchTerm) -> Option<bool> { +fn resource_matches_search_term( + remote_name: &str, + resource: &Resource, + term: &SearchTerm, +) -> Option<bool> { let matches = match term.category.as_deref().map(|c| c.parse::<MatchCategory>()) { Some(Ok(category)) => match category { MatchCategory::Type => category.matches(resource.resource_type().as_str(), &term.value), @@ -105,7 +109,7 @@ fn resource_matches_search_term(resource: &Resource, term: &SearchTerm) -> Optio } _ => false, }, - MatchCategory::Remote => return None, // this has to be checked beforehand + MatchCategory::Remote => category.matches(remote_name, &term.value), }, Some(Err(_)) => false, None => resource.name().contains(&term.value) || resource.id().contains(&term.value), @@ -185,13 +189,6 @@ fn is_remotes_only(filters: &Search) -> bool { optional_terms += 1; } match term.category.as_deref() { - Some("remote") => { - if !term.is_optional() { - is_required = true; - } else { - optional_matches += 1; - } - } Some("type") if "remote".starts_with(&term.value) => { if !term.is_optional() { is_required = true; @@ -268,7 +265,7 @@ pub(crate) async fn get_resources_impl( filter.matches(|filter| { // if we get can't decide if it matches, don't filter it out - resource_matches_search_term(resource, filter).unwrap_or(true) + resource_matches_search_term(&remote_name, resource, filter).unwrap_or(true) }) }); } -- 2.47.3 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
* [pdm-devel] applied: [PATCH datacenter-manager 1/2] server: api: resources: implement remote match for template 2025-09-10 13:22 [pdm-devel] [PATCH datacenter-manager 1/2] server: api: resources: implement remote match for template Dominik Csapak 2025-09-10 13:22 ` [pdm-devel] [PATCH datacenter-manager 2/2] server: api: resources: improve search when searching for remotes Dominik Csapak @ 2025-09-10 15:12 ` Thomas Lamprecht 1 sibling, 0 replies; 3+ messages in thread From: Thomas Lamprecht @ 2025-09-10 15:12 UTC (permalink / raw) To: pdm-devel, Dominik Csapak On Wed, 10 Sep 2025 15:22:55 +0200, Dominik Csapak wrote: > this was a leftover `todo!()`, a remote has no concept of a template so return > false if a remote should be filtered by that category. > > Applied, thanks! [1/2] server: api: resources: implement remote match for template commit: 2ee2e944d0250ff2d1bf57a114654bd295bdbc9c [2/2] server: api: resources: improve search when searching for remotes commit: 636fd9522d028d301032091d9c2aef68f53e3d05 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-09-10 15:13 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-09-10 13:22 [pdm-devel] [PATCH datacenter-manager 1/2] server: api: resources: implement remote match for template Dominik Csapak 2025-09-10 13:22 ` [pdm-devel] [PATCH datacenter-manager 2/2] server: api: resources: improve search when searching for remotes Dominik Csapak 2025-09-10 15:12 ` [pdm-devel] applied: [PATCH datacenter-manager 1/2] server: api: resources: implement remote match for template Thomas Lamprecht
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.