git.delta.rocks / jrsonnet / refs/commits / 98314cfacdde

difftreelog

source

crates/fleet-base/src/primops.rs1.2 KiBsourcehistory
1use std::collections::HashMap;2use std::sync::{Arc, Mutex};34use nix_eval::{NativeFn, Value};56use crate::fleetdata::{FleetData, FleetSecrets};78#[derive(thiserror::Error, Debug)]9enum Error {}1011struct Parts {12	encrypted: Vec<String>,13	public: Vec<String>,14}1516trait SecretsBackend {17	fn has_shared(&self, name: &str);18	fn has_host(&self, host: &str, name: &str);19	fn shared_parts(&self, name: &str) -> Parts;20	fn host_parts(&self, host: &str, name: &str) -> Parts;21}2223struct FsSecretsBackend {}2425pub fn init_primops(secrets: Arc<Mutex<FleetData>>) {26	NativeFn::new(27		c"fleet_ensure_host_secret",28		c"Ensure secret existence for a host, regenerating it in case of some mismatch",29		[c"host", c"secret", c"generator"],30		|[host, secret, generator]| {31			todo!("ensure secret");32			Ok(Value::new_attrs(HashMap::from_iter([(33				"raw",34				Value::new_str("rawData"),35			)])))36		},37	)38	.register();39	NativeFn::new(40		c"fleet_ensure_host_secret",41		c"Ensure secret existence for a host, regenerating it in case of some mismatch",42		[c"host", c"secret", c"generator"],43		|[host, secret, generator]| {44			todo!("ensure secret");45			Ok(Value::new_attrs(HashMap::from_iter([(46				"raw",47				Value::new_str("rawData"),48			)])))49		},50	)51	.register();52}