synapse_application/
mutation_ports.rs1use std::sync::Arc;
2
3use soma_fleet::HostRepository;
4use soma_infra::{
5 BuildContextInspector, ComposeBuildMutator, ComposeDownClient, ComposeMutationClient,
6 ComposePullClient, ComposeRecreateClient, ContainerExecClientProvider,
7 ContainerRecreateClientProvider, DockerArtifactClientProvider, DockerCleanupClientProvider,
8 DockerMutationClientProvider, HostExecMutator, ImageBuildMutator, VerifiedFileTransferClient,
9};
10
11pub struct SynapseBuildPorts {
13 pub contexts: Arc<dyn BuildContextInspector>,
15 pub image: Arc<dyn ImageBuildMutator>,
17 pub compose: Arc<dyn ComposeBuildMutator>,
19}
20
21pub struct SynapseRecreatePorts {
23 pub containers: Arc<dyn ContainerRecreateClientProvider>,
25 pub compose: Arc<dyn ComposeRecreateClient>,
27}
28
29pub struct SynapseExecPorts {
31 pub containers: Arc<dyn ContainerExecClientProvider>,
33 pub hosts: Arc<dyn HostExecMutator>,
35 pub max_fanout_concurrency: usize,
37}
38
39pub struct SynapseFinalPorts {
41 pub cleanup: Arc<dyn DockerCleanupClientProvider>,
43 pub compose_down: Arc<dyn ComposeDownClient>,
45 pub transfer: Arc<dyn VerifiedFileTransferClient>,
47}
48
49pub struct SynapseMutationPorts {
51 pub hosts: Arc<dyn HostRepository>,
53 pub docker: Arc<dyn DockerMutationClientProvider>,
55 pub compose: Option<Arc<dyn ComposeMutationClient>>,
57 pub artifacts: Option<Arc<dyn DockerArtifactClientProvider>>,
59 pub compose_pull: Option<Arc<dyn ComposePullClient>>,
61 pub builds: Option<SynapseBuildPorts>,
63 pub recreate: Option<SynapseRecreatePorts>,
65 pub exec: Option<SynapseExecPorts>,
67 pub final_mutations: Option<SynapseFinalPorts>,
69}
70
71#[cfg(test)]
72#[path = "mutation_ports_tests.rs"]
73mod tests;