MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / list_with_selector

Method list_with_selector

crates/openshell-server/src/persistence/sqlite.rs:423–451  ·  view source on GitHub ↗
(
        &self,
        object_type: &str,
        label_selector: &str,
        limit: u32,
        offset: u32,
    )

Source from the content-addressed store, hash-verified

421 Ok(rows.into_iter().map(row_to_object_record).collect())
422 }
423 pub async fn list_with_selector(
424 &self,
425 object_type: &str,
426 label_selector: &str,
427 limit: u32,
428 offset: u32,
429 ) -> PersistenceResult<Vec<ObjectRecord>> {
430 use super::parse_label_selector;
431
432 let required_labels = parse_label_selector(label_selector)?;
433 let all_records = self.list(object_type, u32::MAX, 0).await?;
434
435 let filtered: Vec<ObjectRecord> = all_records
436 .into_iter()
437 .filter(|record| {
438 let labels_json = record.labels.as_deref().unwrap_or("{}");
439 let labels: std::collections::HashMap<String, String> =
440 serde_json::from_str(labels_json).unwrap_or_default();
441
442 required_labels
443 .iter()
444 .all(|(key, value)| labels.get(key).is_some_and(|v| v == value))
445 })
446 .skip(offset as usize)
447 .take(limit as usize)
448 .collect();
449
450 Ok(filtered)
451 }
452 pub async fn put_policy_revision(
453 &self,
454 id: &str,

Callers

nothing calls this directly

Calls 3

parse_label_selectorFunction · 0.85
listMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected