* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox