pub trait ConductorHandleT: Send + Sync {
Show 68 methods
fn check_running(&self) -> ConductorResult<()>;
fn initialize_conductor<'async_trait>(
self: Arc<Self>,
admin_configs: Vec<AdminInterfaceConfig>
) -> Pin<Box<dyn Future<Output = ConductorResult<CellStartupErrors>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn add_admin_interfaces<'async_trait>(
self: Arc<Self>,
configs: Vec<AdminInterfaceConfig>
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn add_app_interface<'async_trait>(
self: Arc<Self>,
port: u16
) -> Pin<Box<dyn Future<Output = ConductorResult<u16>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn list_app_interfaces<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorResult<Vec<u16>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn register_dna<'life0, 'async_trait>(
&'life0 self,
dna: DnaFile
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn update_coordinators<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 DnaHash,
coordinator_zomes: CoordinatorZomes,
wasms: Vec<DnaWasm>
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn list_dnas(&self) -> Vec<DnaHash>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
;
fn get_dna_def(&self, hash: &DnaHash) -> Option<DnaDef>;
fn get_dna_file(&self, hash: &DnaHash) -> Option<DnaFile>;
fn get_ribosome(&self, dna_hash: &DnaHash) -> ConductorResult<RealRibosome>;
fn get_entry_def(&self, key: &EntryDefBufferKey) -> Option<EntryDef>;
fn load_dnas<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn dispatch_holochain_p2p_event<'life0, 'async_trait>(
&'life0 self,
event: HolochainP2pEvent
) -> Pin<Box<dyn Future<Output = ConductorApiResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn call_zome<'life0, 'async_trait>(
&'life0 self,
invocation: ZomeCall
) -> Pin<Box<dyn Future<Output = ConductorApiResult<ZomeCallResult>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn call_zome_with_workspace<'life0, 'async_trait>(
&'life0 self,
invocation: ZomeCall,
workspace_lock: SourceChainWorkspace
) -> Pin<Box<dyn Future<Output = ConductorApiResult<ZomeCallResult>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn get_arbitrary_admin_websocket_port(&self) -> Option<u16>;
fn get_queue_consumer_workflows(&self) -> QueueConsumerMap;
fn get_config(&self) -> &ConductorConfig;
fn take_shutdown_handle(&self) -> Option<JoinHandle<TaskManagerResult>>;
fn shutdown(&self);
fn keystore(&self) -> &MetaLairClient;
fn holochain_p2p(&self) -> &HolochainP2pRef;
fn prune_p2p_agents_db<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn create_clone_cell<'async_trait>(
self: Arc<Self>,
payload: CreateCloneCellPayload
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledCell>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn destroy_clone_cell<'async_trait>(
self: Arc<Self>,
cell_id: CellId
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn install_app<'async_trait>(
self: Arc<Self>,
installed_app_id: InstalledAppId,
cell_data_with_proofs: Vec<(InstalledCell, Option<MembraneProof>)>
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn install_app_bundle<'async_trait>(
self: Arc<Self>,
payload: InstallAppBundlePayload
) -> Pin<Box<dyn Future<Output = ConductorResult<StoppedApp>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn uninstall_app<'life0, 'async_trait>(
self: Arc<Self>,
app: &'life0 InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn reconcile_app_status_with_cell_status<'life0, 'async_trait>(
&'life0 self,
app_ids: Option<HashSet<InstalledAppId>>
) -> Pin<Box<dyn Future<Output = ConductorResult<AppStatusFx>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn reconcile_cell_status_with_app_status<'async_trait>(
self: Arc<Self>
) -> Pin<Box<dyn Future<Output = ConductorResult<CellStartupErrors>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn enable_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<(InstalledApp, CellStartupErrors)>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn disable_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId,
reason: DisabledAppReason
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledApp>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn start_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledApp>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn start_scheduler<'async_trait>(
self: Arc<Self>,
interval_period: Duration
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where
Self: 'async_trait;
fn dispatch_scheduled_fns<'async_trait>(
self: Arc<Self>
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where
Self: 'async_trait;
fn post_commit_permit<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<OwnedPermit<PostCommitArgs>, SendError<()>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn pause_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId,
reason: PausedAppReason
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledApp>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn list_cell_ids(&self, filter: Option<CellStatus>) -> Vec<CellId>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
;
fn list_running_apps<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorResult<Vec<InstalledAppId>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn list_apps<'life0, 'async_trait>(
&'life0 self,
status_filter: Option<AppStatusFilter>
) -> Pin<Box<dyn Future<Output = ConductorResult<Vec<InstalledAppInfo>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn list_running_apps_for_required_cell_id<'life0, 'life1, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId
) -> Pin<Box<dyn Future<Output = ConductorResult<HashSet<InstalledAppId>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn find_cell_with_role_alongside_cell<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId,
role_id: &'life2 AppRoleId
) -> Pin<Box<dyn Future<Output = ConductorResult<Option<CellId>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait;
fn list_running_apps_for_required_dna_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
dna_hash: &'life1 DnaHash
) -> Pin<Box<dyn Future<Output = ConductorResult<HashSet<InstalledAppId>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn dump_cell_state<'life0, 'life1, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId
) -> Pin<Box<dyn Future<Output = ConductorApiResult<String>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn dump_full_cell_state<'life0, 'life1, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId,
dht_ops_cursor: Option<u64>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<FullStateDump>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn dump_network_metrics<'life0, 'async_trait>(
&'life0 self,
dna_hash: Option<DnaHash>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<String>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn signal_broadcaster<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = SignalBroadcaster> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn get_app_info<'life0, 'life1, 'async_trait>(
&'life0 self,
installed_app_id: &'life1 InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<Option<InstalledAppInfo>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn add_agent_infos<'life0, 'async_trait>(
&'life0 self,
agent_infos: Vec<AgentInfoSigned>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn get_agent_infos<'life0, 'async_trait>(
&'life0 self,
cell_id: Option<CellId>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<Vec<AgentInfoSigned>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn print_setup(&self);
fn remove_cells<'life0, 'life1, 'async_trait>(
&'life0 self,
cell_ids: &'life1 [CellId]
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn graft_records_onto_source_chain<'async_trait>(
self: Arc<Self>,
cell_id: CellId,
validate: bool,
records: Vec<Record>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<()>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn get_authored_db(
&self,
cell_id: &DnaHash
) -> ConductorApiResult<DbWrite<DbKindAuthored>>;
fn get_dht_db(
&self,
cell_id: &DnaHash
) -> ConductorApiResult<DbWrite<DbKindDht>>;
fn get_dht_db_cache(
&self,
cell_id: &DnaHash
) -> ConductorApiResult<DhtDbQueryCache>;
fn get_cache_db(
&self,
cell_id: &CellId
) -> ConductorApiResult<DbWrite<DbKindCache>>;
fn get_p2p_db(&self, space: &DnaHash) -> DbWrite<DbKindP2pAgents>;
fn get_p2p_metrics_db(&self, space: &DnaHash) -> DbWrite<DbKindP2pMetrics>;
fn get_spaces(&self) -> Spaces;
fn get_cell_triggers(
&self,
cell_id: &CellId
) -> ConductorApiResult<QueueTriggers>;
fn get_state_from_handle<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorApiResult<ConductorState>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn add_test_app_interface<'life0, 'async_trait>(
&'life0 self,
id: AppInterfaceId
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn dev_settings(&self) -> DevSettings;
fn update_dev_settings(&self, delta: DevSettingsDelta);
fn update_cell_status(&self, cell_ids: &[CellId], status: CellStatus);
fn transition_app_status<'life0, 'async_trait>(
&'life0 self,
app_id: InstalledAppId,
transition: AppStatusTransition
) -> Pin<Box<dyn Future<Output = ConductorResult<(InstalledApp, AppStatusFx)>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
}
Expand description
Base trait for ConductorHandle
Required Methods
sourcefn check_running(&self) -> ConductorResult<()>
fn check_running(&self) -> ConductorResult<()>
Returns error if conductor is shutting down
sourcefn initialize_conductor<'async_trait>(
self: Arc<Self>,
admin_configs: Vec<AdminInterfaceConfig>
) -> Pin<Box<dyn Future<Output = ConductorResult<CellStartupErrors>> + Send + 'async_trait>>where
Self: 'async_trait,
fn initialize_conductor<'async_trait>(
self: Arc<Self>,
admin_configs: Vec<AdminInterfaceConfig>
) -> Pin<Box<dyn Future<Output = ConductorResult<CellStartupErrors>> + Send + 'async_trait>>where
Self: 'async_trait,
Initialize the task manager, add admin interfaces from config, start up app interfaces from db, and register all tasks.
This requires a concrete ConductorHandle to be passed into the interface tasks. This is a bit weird to do, but it was the only way around having a circular reference in the types.
Never use a ConductorHandle for different Conductor here!
sourcefn add_admin_interfaces<'async_trait>(
self: Arc<Self>,
configs: Vec<AdminInterfaceConfig>
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
fn add_admin_interfaces<'async_trait>(
self: Arc<Self>,
configs: Vec<AdminInterfaceConfig>
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
Add a collection of admin interfaces from config
sourcefn add_app_interface<'async_trait>(
self: Arc<Self>,
port: u16
) -> Pin<Box<dyn Future<Output = ConductorResult<u16>> + Send + 'async_trait>>where
Self: 'async_trait,
fn add_app_interface<'async_trait>(
self: Arc<Self>,
port: u16
) -> Pin<Box<dyn Future<Output = ConductorResult<u16>> + Send + 'async_trait>>where
Self: 'async_trait,
Add an app interface
sourcefn list_app_interfaces<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorResult<Vec<u16>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn list_app_interfaces<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorResult<Vec<u16>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
List the app interfaces currently installed.
sourcefn register_dna<'life0, 'async_trait>(
&'life0 self,
dna: DnaFile
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn register_dna<'life0, 'async_trait>(
&'life0 self,
dna: DnaFile
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Install a DnaFile
in this Conductor
sourcefn update_coordinators<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 DnaHash,
coordinator_zomes: CoordinatorZomes,
wasms: Vec<DnaWasm>
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn update_coordinators<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 DnaHash,
coordinator_zomes: CoordinatorZomes,
wasms: Vec<DnaWasm>
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Update coordinator zomes on an existing dna.
Get the list of hashes of installed Dnas in this Conductor
sourcefn get_dna_def(&self, hash: &DnaHash) -> Option<DnaDef>
fn get_dna_def(&self, hash: &DnaHash) -> Option<DnaDef>
Get a DnaDef
from the RibosomeStore
sourcefn get_dna_file(&self, hash: &DnaHash) -> Option<DnaFile>
fn get_dna_file(&self, hash: &DnaHash) -> Option<DnaFile>
Get a DnaFile
from the RibosomeStore
sourcefn get_ribosome(&self, dna_hash: &DnaHash) -> ConductorResult<RealRibosome>
fn get_ribosome(&self, dna_hash: &DnaHash) -> ConductorResult<RealRibosome>
Get an instance of a RealRibosome
for the DnaHash
sourcefn get_entry_def(&self, key: &EntryDefBufferKey) -> Option<EntryDef>
fn get_entry_def(&self, key: &EntryDefBufferKey) -> Option<EntryDef>
Get an EntryDef
from the EntryDefBufferKey
Add the DnaFile
s from the wasm and dna_def databases into memory
sourcefn dispatch_holochain_p2p_event<'life0, 'async_trait>(
&'life0 self,
event: HolochainP2pEvent
) -> Pin<Box<dyn Future<Output = ConductorApiResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn dispatch_holochain_p2p_event<'life0, 'async_trait>(
&'life0 self,
event: HolochainP2pEvent
) -> Pin<Box<dyn Future<Output = ConductorApiResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Dispatch a network event to the correct cell. Warning: returning an error from this function kills the network for the conductor.
sourcefn call_zome<'life0, 'async_trait>(
&'life0 self,
invocation: ZomeCall
) -> Pin<Box<dyn Future<Output = ConductorApiResult<ZomeCallResult>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn call_zome<'life0, 'async_trait>(
&'life0 self,
invocation: ZomeCall
) -> Pin<Box<dyn Future<Output = ConductorApiResult<ZomeCallResult>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Invoke a zome function on a Cell
sourcefn call_zome_with_workspace<'life0, 'async_trait>(
&'life0 self,
invocation: ZomeCall,
workspace_lock: SourceChainWorkspace
) -> Pin<Box<dyn Future<Output = ConductorApiResult<ZomeCallResult>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn call_zome_with_workspace<'life0, 'async_trait>(
&'life0 self,
invocation: ZomeCall,
workspace_lock: SourceChainWorkspace
) -> Pin<Box<dyn Future<Output = ConductorApiResult<ZomeCallResult>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Invoke a zome function on a Cell with a workspace
sourcefn get_arbitrary_admin_websocket_port(&self) -> Option<u16>
fn get_arbitrary_admin_websocket_port(&self) -> Option<u16>
Get a Websocket port which will
sourcefn get_queue_consumer_workflows(&self) -> QueueConsumerMap
fn get_queue_consumer_workflows(&self) -> QueueConsumerMap
Get the running queue consumer workflows per DnaHash
map.
sourcefn get_config(&self) -> &ConductorConfig
fn get_config(&self) -> &ConductorConfig
Get the conductor config
sourcefn take_shutdown_handle(&self) -> Option<JoinHandle<TaskManagerResult>>
fn take_shutdown_handle(&self) -> Option<JoinHandle<TaskManagerResult>>
Return the JoinHandle for all managed tasks, which when resolved will signal that the Conductor has completely shut down.
NB: The JoinHandle is not cloneable, so this can only ever be called successfully once.
sourcefn keystore(&self) -> &MetaLairClient
fn keystore(&self) -> &MetaLairClient
Request access to this conductor’s keystore
sourcefn holochain_p2p(&self) -> &HolochainP2pRef
fn holochain_p2p(&self) -> &HolochainP2pRef
Request access to this conductor’s networking handle
sourcefn prune_p2p_agents_db<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn prune_p2p_agents_db<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Prune expired agent_infos from the p2p agents database
sourcefn create_clone_cell<'async_trait>(
self: Arc<Self>,
payload: CreateCloneCellPayload
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledCell>> + Send + 'async_trait>>where
Self: 'async_trait,
fn create_clone_cell<'async_trait>(
self: Arc<Self>,
payload: CreateCloneCellPayload
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledCell>> + Send + 'async_trait>>where
Self: 'async_trait,
Create a new cell in an existing app based on an existing DNA.
Returns
A struct with the created cell’s clone id and cell id.
sourcefn destroy_clone_cell<'async_trait>(
self: Arc<Self>,
cell_id: CellId
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
fn destroy_clone_cell<'async_trait>(
self: Arc<Self>,
cell_id: CellId
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
Destroy a cloned Cell
sourcefn install_app<'async_trait>(
self: Arc<Self>,
installed_app_id: InstalledAppId,
cell_data_with_proofs: Vec<(InstalledCell, Option<MembraneProof>)>
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
fn install_app<'async_trait>(
self: Arc<Self>,
installed_app_id: InstalledAppId,
cell_data_with_proofs: Vec<(InstalledCell, Option<MembraneProof>)>
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
Self: 'async_trait,
Install Cells into ConductorState based on installation info, and run genesis on all new source chains
sourcefn install_app_bundle<'async_trait>(
self: Arc<Self>,
payload: InstallAppBundlePayload
) -> Pin<Box<dyn Future<Output = ConductorResult<StoppedApp>> + Send + 'async_trait>>where
Self: 'async_trait,
fn install_app_bundle<'async_trait>(
self: Arc<Self>,
payload: InstallAppBundlePayload
) -> Pin<Box<dyn Future<Output = ConductorResult<StoppedApp>> + Send + 'async_trait>>where
Self: 'async_trait,
Install DNAs and set up Cells as specified by an AppBundle
sourcefn uninstall_app<'life0, 'async_trait>(
self: Arc<Self>,
app: &'life0 InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn uninstall_app<'life0, 'async_trait>(
self: Arc<Self>,
app: &'life0 InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Uninstall an app from the state DB and remove all running Cells
sourcefn reconcile_app_status_with_cell_status<'life0, 'async_trait>(
&'life0 self,
app_ids: Option<HashSet<InstalledAppId>>
) -> Pin<Box<dyn Future<Output = ConductorResult<AppStatusFx>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn reconcile_app_status_with_cell_status<'life0, 'async_trait>(
&'life0 self,
app_ids: Option<HashSet<InstalledAppId>>
) -> Pin<Box<dyn Future<Output = ConductorResult<AppStatusFx>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Adjust app statuses (via state transitions) to match the current reality of which Cells are present in the conductor.
sourcefn reconcile_cell_status_with_app_status<'async_trait>(
self: Arc<Self>
) -> Pin<Box<dyn Future<Output = ConductorResult<CellStartupErrors>> + Send + 'async_trait>>where
Self: 'async_trait,
fn reconcile_cell_status_with_app_status<'async_trait>(
self: Arc<Self>
) -> Pin<Box<dyn Future<Output = ConductorResult<CellStartupErrors>> + Send + 'async_trait>>where
Self: 'async_trait,
Adjust which cells are present in the Conductor (adding and removing as needed) to match the current reality of all app statuses.
- If a Cell is used by at least one Running app, then ensure it is added
- If a Cell is used by no running apps, then ensure it is removed.
sourcefn enable_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<(InstalledApp, CellStartupErrors)>> + Send + 'async_trait>>where
Self: 'async_trait,
fn enable_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<(InstalledApp, CellStartupErrors)>> + Send + 'async_trait>>where
Self: 'async_trait,
Activate an app
sourcefn disable_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId,
reason: DisabledAppReason
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledApp>> + Send + 'async_trait>>where
Self: 'async_trait,
fn disable_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId,
reason: DisabledAppReason
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledApp>> + Send + 'async_trait>>where
Self: 'async_trait,
Disable an app
sourcefn start_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledApp>> + Send + 'async_trait>>where
Self: 'async_trait,
fn start_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledApp>> + Send + 'async_trait>>where
Self: 'async_trait,
Start an enabled but stopped (paused) app
Start the scheduler. All ephemeral tasks are deleted.
Dispatch all due scheduled functions.
sourcefn post_commit_permit<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<OwnedPermit<PostCommitArgs>, SendError<()>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn post_commit_permit<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<OwnedPermit<PostCommitArgs>, SendError<()>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Get an OwnedPermit to the post commit task.
sourcefn pause_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId,
reason: PausedAppReason
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledApp>> + Send + 'async_trait>>where
Self: 'async_trait,
fn pause_app<'async_trait>(
self: Arc<Self>,
app_id: InstalledAppId,
reason: PausedAppReason
) -> Pin<Box<dyn Future<Output = ConductorResult<InstalledApp>> + Send + 'async_trait>>where
Self: 'async_trait,
Stop a running app while leaving it enabled. FOR TESTING ONLY.
List Cell Ids
sourcefn list_running_apps<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorResult<Vec<InstalledAppId>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn list_running_apps<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorResult<Vec<InstalledAppId>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
List Active AppIds
sourcefn list_apps<'life0, 'async_trait>(
&'life0 self,
status_filter: Option<AppStatusFilter>
) -> Pin<Box<dyn Future<Output = ConductorResult<Vec<InstalledAppInfo>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn list_apps<'life0, 'async_trait>(
&'life0 self,
status_filter: Option<AppStatusFilter>
) -> Pin<Box<dyn Future<Output = ConductorResult<Vec<InstalledAppInfo>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
List Apps with their information
sourcefn list_running_apps_for_required_cell_id<'life0, 'life1, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId
) -> Pin<Box<dyn Future<Output = ConductorResult<HashSet<InstalledAppId>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn list_running_apps_for_required_cell_id<'life0, 'life1, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId
) -> Pin<Box<dyn Future<Output = ConductorResult<HashSet<InstalledAppId>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Get the IDs of all active installed Apps which use this Cell
sourcefn find_cell_with_role_alongside_cell<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId,
role_id: &'life2 AppRoleId
) -> Pin<Box<dyn Future<Output = ConductorResult<Option<CellId>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn find_cell_with_role_alongside_cell<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId,
role_id: &'life2 AppRoleId
) -> Pin<Box<dyn Future<Output = ConductorResult<Option<CellId>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Find the ID of the first active installed App which uses this Cell
sourcefn list_running_apps_for_required_dna_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
dna_hash: &'life1 DnaHash
) -> Pin<Box<dyn Future<Output = ConductorResult<HashSet<InstalledAppId>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn list_running_apps_for_required_dna_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
dna_hash: &'life1 DnaHash
) -> Pin<Box<dyn Future<Output = ConductorResult<HashSet<InstalledAppId>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Get the IDs of all active installed Apps which use this Dna
sourcefn dump_cell_state<'life0, 'life1, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId
) -> Pin<Box<dyn Future<Output = ConductorApiResult<String>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn dump_cell_state<'life0, 'life1, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId
) -> Pin<Box<dyn Future<Output = ConductorApiResult<String>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Dump the cells state
sourcefn dump_full_cell_state<'life0, 'life1, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId,
dht_ops_cursor: Option<u64>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<FullStateDump>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn dump_full_cell_state<'life0, 'life1, 'async_trait>(
&'life0 self,
cell_id: &'life1 CellId,
dht_ops_cursor: Option<u64>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<FullStateDump>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Dump the full cells state
sourcefn dump_network_metrics<'life0, 'async_trait>(
&'life0 self,
dna_hash: Option<DnaHash>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<String>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn dump_network_metrics<'life0, 'async_trait>(
&'life0 self,
dna_hash: Option<DnaHash>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<String>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Dump the network metrics
sourcefn signal_broadcaster<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = SignalBroadcaster> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn signal_broadcaster<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = SignalBroadcaster> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Access the broadcast Sender which will send a Signal across every attached app interface
sourcefn get_app_info<'life0, 'life1, 'async_trait>(
&'life0 self,
installed_app_id: &'life1 InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<Option<InstalledAppInfo>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_app_info<'life0, 'life1, 'async_trait>(
&'life0 self,
installed_app_id: &'life1 InstalledAppId
) -> Pin<Box<dyn Future<Output = ConductorResult<Option<InstalledAppInfo>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Get info about an installed App, whether active or inactive
sourcefn add_agent_infos<'life0, 'async_trait>(
&'life0 self,
agent_infos: Vec<AgentInfoSigned>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn add_agent_infos<'life0, 'async_trait>(
&'life0 self,
agent_infos: Vec<AgentInfoSigned>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Add signed agent info to the conductor
sourcefn get_agent_infos<'life0, 'async_trait>(
&'life0 self,
cell_id: Option<CellId>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<Vec<AgentInfoSigned>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_agent_infos<'life0, 'async_trait>(
&'life0 self,
cell_id: Option<CellId>
) -> Pin<Box<dyn Future<Output = ConductorApiResult<Vec<AgentInfoSigned>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Get signed agent info from the conductor
sourcefn print_setup(&self)
fn print_setup(&self)
Print the current setup in a machine readable way.
Manually remove some cells. Should only be used when handling errors in Cells, allowing individual Cells to be shut down.
Inject records into a source chain for a cell. If the records form a chain segment that can be “grafted” onto the existing chain, it will be. Otherwise, a new chain will be formed using the specified records.
Retrieve the authored environment for this dna. FOR TESTING ONLY.
sourcefn get_dht_db(&self, cell_id: &DnaHash) -> ConductorApiResult<DbWrite<DbKindDht>>
fn get_dht_db(&self, cell_id: &DnaHash) -> ConductorApiResult<DbWrite<DbKindDht>>
Retrieve the dht environment for this dna. FOR TESTING ONLY.
sourcefn get_dht_db_cache(
&self,
cell_id: &DnaHash
) -> ConductorApiResult<DhtDbQueryCache>
fn get_dht_db_cache(
&self,
cell_id: &DnaHash
) -> ConductorApiResult<DhtDbQueryCache>
Retrieve the dht environment for this dna. FOR TESTING ONLY.
sourcefn get_cache_db(
&self,
cell_id: &CellId
) -> ConductorApiResult<DbWrite<DbKindCache>>
fn get_cache_db(
&self,
cell_id: &CellId
) -> ConductorApiResult<DbWrite<DbKindCache>>
Retrieve the database for this cell. FOR TESTING ONLY.
sourcefn get_p2p_db(&self, space: &DnaHash) -> DbWrite<DbKindP2pAgents>
fn get_p2p_db(&self, space: &DnaHash) -> DbWrite<DbKindP2pAgents>
Retrieve the database for networking. FOR TESTING ONLY.
sourcefn get_p2p_metrics_db(&self, space: &DnaHash) -> DbWrite<DbKindP2pMetrics>
fn get_p2p_metrics_db(&self, space: &DnaHash) -> DbWrite<DbKindP2pMetrics>
Retrieve the database for metrics. FOR TESTING ONLY.
sourcefn get_spaces(&self) -> Spaces
fn get_spaces(&self) -> Spaces
Retrieve the database for networking. FOR TESTING ONLY.
sourcefn get_cell_triggers(
&self,
cell_id: &CellId
) -> ConductorApiResult<QueueTriggers>
fn get_cell_triggers(
&self,
cell_id: &CellId
) -> ConductorApiResult<QueueTriggers>
Retrieve Senders for triggering workflows. FOR TESTING ONLY.
sourcefn get_state_from_handle<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorApiResult<ConductorState>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn get_state_from_handle<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = ConductorApiResult<ConductorState>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Retrieve the ConductorState. FOR TESTING ONLY.
sourcefn add_test_app_interface<'life0, 'async_trait>(
&'life0 self,
id: AppInterfaceId
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn add_test_app_interface<'life0, 'async_trait>(
&'life0 self,
id: AppInterfaceId
) -> Pin<Box<dyn Future<Output = ConductorResult<()>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Add a “test” app interface for sending and receiving signals. FOR TESTING ONLY.
sourcefn dev_settings(&self) -> DevSettings
fn dev_settings(&self) -> DevSettings
Get the current dev settings
sourcefn update_dev_settings(&self, delta: DevSettingsDelta)
fn update_dev_settings(&self, delta: DevSettingsDelta)
Update the current dev settings
sourcefn update_cell_status(&self, cell_ids: &[CellId], status: CellStatus)
fn update_cell_status(&self, cell_ids: &[CellId], status: CellStatus)
Manually coerce cells to a given CellStatus. FOR TESTING ONLY.
sourcefn transition_app_status<'life0, 'async_trait>(
&'life0 self,
app_id: InstalledAppId,
transition: AppStatusTransition
) -> Pin<Box<dyn Future<Output = ConductorResult<(InstalledApp, AppStatusFx)>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn transition_app_status<'life0, 'async_trait>(
&'life0 self,
app_id: InstalledAppId,
transition: AppStatusTransition
) -> Pin<Box<dyn Future<Output = ConductorResult<(InstalledApp, AppStatusFx)>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Manually coerce app to a given AppStatus. FOR TESTING ONLY.
Implementors
impl ConductorHandleT for ConductorHandleImpl
impl ConductorHandleT for MockConductorHandleT
Base trait for ConductorHandle