From b09fbdceecef4d3147d6a6cbdc9308ebaafa92bb Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Fri, 4 Feb 2022 16:00:15 +0100 Subject: [PATCH] Remove hardcoded milestones and system-layer notions --- syndicate-server/protocols/schema-bundle.bin | 2 +- .../protocols/schemas/internalServices.prs | 1 - syndicate-server/src/dependencies.rs | 28 ------------- syndicate-server/src/main.rs | 1 - syndicate-server/src/services/milestone.rs | 40 ------------------- syndicate-server/src/services/mod.rs | 1 - 6 files changed, 1 insertion(+), 72 deletions(-) delete mode 100644 syndicate-server/src/services/milestone.rs diff --git a/syndicate-server/protocols/schema-bundle.bin b/syndicate-server/protocols/schema-bundle.bin index 63a6adb..7b377c2 100644 --- a/syndicate-server/protocols/schema-bundle.bin +++ b/syndicate-server/protocols/schema-bundle.bin @@ -3,7 +3,7 @@ ByteString ProcessDir´³orµµ±present´³dict·³dir´³named³dir´³atom³String„„„„„µ±invalid´³dict·³dir´³named³dir³any„„„„µ±absent´³dict·„„„„„³ ProcessEnv´³orµµ±present´³dict·³env´³named³env´³dictof´³refµ„³ EnvVariable„´³refµ„³EnvValue„„„„„„µ±invalid´³dict·³env´³named³env³any„„„„µ±absent´³dict·„„„„„³ CommandLine´³orµµ±shell´³atom³String„„µ±full´³refµ„³FullCommandLine„„„„³ EnvVariable´³orµµ±string´³atom³String„„µ±symbol´³atom³Symbol„„µ±invalid³any„„„³ FullProcess´³andµ´³dict·³argv´³named³argv´³refµ„³ CommandLine„„„„´³named³env´³refµ„³ ProcessEnv„„´³named³dir´³refµ„³ -ProcessDir„„´³named³clearEnv´³refµ„³ClearEnv„„„„³ ReadyOnStart´³orµµ±present´³dict·³ readyOnStart´³named³ readyOnStart´³atom³Boolean„„„„„µ±invalid´³dict·³ readyOnStart´³named³ readyOnStart³any„„„„µ±absent´³dict·„„„„„³ RestartField´³orµµ±present´³dict·³restart´³named³restart´³refµ„³ RestartPolicy„„„„„µ±invalid´³dict·³restart´³named³restart³any„„„„µ±absent´³dict·„„„„„³ DaemonProcess´³rec´³lit³daemon„´³tupleµ´³named³id³any„´³named³config´³refµ„³DaemonProcessSpec„„„„„³ DaemonService´³rec´³lit³daemon„´³tupleµ´³named³id³any„„„„³ ProtocolField´³orµµ±present´³dict·³protocol´³named³protocol´³refµ„³Protocol„„„„„µ±invalid´³dict·³protocol´³named³protocol³any„„„„µ±absent´³dict·„„„„„³ RestartPolicy´³orµµ±always´³lit³always„„µ±onError´³lit³on-error„„µ±all´³lit³all„„„„³FullCommandLine´³ tuplePrefixµ´³named³program´³atom³String„„„´³named³args´³seqof´³atom³String„„„„³DaemonProcessSpec´³orµµ±simple´³refµ„³ CommandLine„„µ±oneShot´³rec´³lit³one-shot„´³tupleµ´³named³setup´³refµ„³ CommandLine„„„„„„µ±full´³refµ„³FullDaemonProcess„„„„³FullDaemonProcess´³andµ´³named³process´³refµ„³ FullProcess„„´³named³ readyOnStart´³refµ„³ ReadyOnStart„„´³named³restart´³refµ„³ RestartField„„´³named³protocol´³refµ„³ ProtocolField„„„„„³ embeddedType´³refµ³ EntityRef„³Cap„„„µ³internalServices„´³schema·³version‘³ definitions·³ ConfigEnv´³dictof´³atom³Symbol„³any„³ Milestone´³rec´³lit³ milestone„´³tupleµ´³named³name³any„„„„³ DebtReporter´³rec´³lit³ debt-reporter„´³tupleµ´³named³intervalSeconds´³atom³Double„„„„„³ ConfigWatcher´³rec´³lit³config-watcher„´³tupleµ´³named³path´³atom³String„„´³named³env´³refµ„³ ConfigEnv„„„„„³TcpRelayListener´³rec´³lit³relay-listener„´³tupleµ´³named³addr´³refµ³TransportAddress„³Tcp„„´³named³ +ProcessDir„„´³named³clearEnv´³refµ„³ClearEnv„„„„³ ReadyOnStart´³orµµ±present´³dict·³ readyOnStart´³named³ readyOnStart´³atom³Boolean„„„„„µ±invalid´³dict·³ readyOnStart´³named³ readyOnStart³any„„„„µ±absent´³dict·„„„„„³ RestartField´³orµµ±present´³dict·³restart´³named³restart´³refµ„³ RestartPolicy„„„„„µ±invalid´³dict·³restart´³named³restart³any„„„„µ±absent´³dict·„„„„„³ DaemonProcess´³rec´³lit³daemon„´³tupleµ´³named³id³any„´³named³config´³refµ„³DaemonProcessSpec„„„„„³ DaemonService´³rec´³lit³daemon„´³tupleµ´³named³id³any„„„„³ ProtocolField´³orµµ±present´³dict·³protocol´³named³protocol´³refµ„³Protocol„„„„„µ±invalid´³dict·³protocol´³named³protocol³any„„„„µ±absent´³dict·„„„„„³ RestartPolicy´³orµµ±always´³lit³always„„µ±onError´³lit³on-error„„µ±all´³lit³all„„„„³FullCommandLine´³ tuplePrefixµ´³named³program´³atom³String„„„´³named³args´³seqof´³atom³String„„„„³DaemonProcessSpec´³orµµ±simple´³refµ„³ CommandLine„„µ±oneShot´³rec´³lit³one-shot„´³tupleµ´³named³setup´³refµ„³ CommandLine„„„„„„µ±full´³refµ„³FullDaemonProcess„„„„³FullDaemonProcess´³andµ´³named³process´³refµ„³ FullProcess„„´³named³ readyOnStart´³refµ„³ ReadyOnStart„„´³named³restart´³refµ„³ RestartField„„´³named³protocol´³refµ„³ ProtocolField„„„„„³ embeddedType´³refµ³ EntityRef„³Cap„„„µ³internalServices„´³schema·³version‘³ definitions·³ ConfigEnv´³dictof´³atom³Symbol„³any„³ DebtReporter´³rec´³lit³ debt-reporter„´³tupleµ´³named³intervalSeconds´³atom³Double„„„„„³ ConfigWatcher´³rec´³lit³config-watcher„´³tupleµ´³named³path´³atom³String„„´³named³env´³refµ„³ ConfigEnv„„„„„³TcpRelayListener´³rec´³lit³relay-listener„´³tupleµ´³named³addr´³refµ³TransportAddress„³Tcp„„´³named³ gatekeeper´³embedded´³refµ³ gatekeeper„³Resolve„„„„„„³UnixRelayListener´³rec´³lit³relay-listener„´³tupleµ´³named³addr´³refµ³TransportAddress„³Unix„„´³named³ gatekeeper´³embedded´³refµ³ diff --git a/syndicate-server/protocols/schemas/internalServices.prs b/syndicate-server/protocols/schemas/internalServices.prs index c24360f..d98cca8 100644 --- a/syndicate-server/protocols/schemas/internalServices.prs +++ b/syndicate-server/protocols/schemas/internalServices.prs @@ -6,6 +6,5 @@ DebtReporter = . TcpRelayListener = . UnixRelayListener = . ConfigWatcher = . -Milestone = . ConfigEnv = { symbol: any ...:... }. diff --git a/syndicate-server/src/dependencies.rs b/syndicate-server/src/dependencies.rs index c7869e7..6dd2b74 100644 --- a/syndicate-server/src/dependencies.rs +++ b/syndicate-server/src/dependencies.rs @@ -3,16 +3,13 @@ use preserves_schema::Codec; use std::sync::Arc; use syndicate::actor::*; -use syndicate::during::entity; use syndicate::enclose; use syndicate::preserves::rec; -use syndicate::schemas::dataspace::Observe; use syndicate::schemas::service; use syndicate::value::NestedValue; use crate::counter; use crate::language::language; -use crate::schemas::internal_services; use syndicate_macros::during; @@ -28,31 +25,6 @@ pub fn boot(t: &mut Activation, ds: Arc) { } fn run(t: &mut Activation, ds: Arc, service_name: AnyValue) -> ActorResult { - if !service_name.value().is_simple_record("milestone", Some(1)) { - let system_layer_dep = service::ServiceDependency { - depender: service_name.clone(), - dependee: service::ServiceState { - service_name: language().unparse(&internal_services::Milestone { - name: AnyValue::symbol("system-layer"), - }), - state: service::State::Ready, - }, - }; - let milestone_monitor = entity(ds.assert(t, language(), &system_layer_dep)) - .on_asserted(enclose!((ds) move |handle, t, _captures: AnyValue| { - ds.update::<_, service::ServiceDependency>(t, handle, language(), None); - Ok(Some(Box::new(enclose!((ds, system_layer_dep) move |handle, t| { - ds.update(t, handle, language(), Some(&system_layer_dep)); - Ok(()) - })))) - })) - .create_cap(t); - ds.assert(t, language(), &Observe { - pattern: syndicate_macros::pattern!{}, - observer: milestone_monitor, - }); - } - let obstacle_count = t.named_field("obstacle_count", 1isize); t.dataflow(enclose!((service_name, obstacle_count) move |t| { tracing::trace!(?service_name, obstacle_count = ?t.get(&obstacle_count)); diff --git a/syndicate-server/src/main.rs b/syndicate-server/src/main.rs index ac68d87..8d16215 100644 --- a/syndicate-server/src/main.rs +++ b/syndicate-server/src/main.rs @@ -120,7 +120,6 @@ async fn main() -> Result<(), Box> { services::config_watcher::on_demand(t, Arc::clone(&server_config_ds)); services::daemon::on_demand(t, Arc::clone(&server_config_ds), Arc::clone(&log_ds)); services::debt_reporter::on_demand(t, Arc::clone(&server_config_ds)); - services::milestone::on_demand(t, Arc::clone(&server_config_ds)); services::tcp_relay_listener::on_demand(t, Arc::clone(&server_config_ds)); services::unix_relay_listener::on_demand(t, Arc::clone(&server_config_ds)); diff --git a/syndicate-server/src/services/milestone.rs b/syndicate-server/src/services/milestone.rs deleted file mode 100644 index 1f2198b..0000000 --- a/syndicate-server/src/services/milestone.rs +++ /dev/null @@ -1,40 +0,0 @@ -use preserves_schema::Codec; - -use std::sync::Arc; - -use syndicate::actor::*; -use syndicate::enclose; -use syndicate::preserves::value::NestedValue; -use syndicate::supervise::{Supervisor, SupervisorConfiguration}; - -use crate::language::language; -use crate::lifecycle; -use crate::schemas::internal_services::Milestone; - -use syndicate_macros::during; - -pub fn on_demand(t: &mut Activation, ds: Arc) { - t.spawn(Some(AnyValue::symbol("milestone_listener")), move |t| { - Ok(during!(t, ds, language(), , |t: &mut Activation| { - Supervisor::start( - t, - Some(language().unparse(&spec)), - SupervisorConfiguration::default(), - |_, _| Ok(()), - enclose!((ds) move |t| enclose!((ds, spec) run(t, ds, spec)))) - })) - }); -} - -fn run( - t: &mut Activation, - ds: Arc, - spec: Milestone, -) -> ActorResult { - lifecycle::terminate_on_service_restart(t, &ds, &spec); - tracing::info!(milestone = ?spec.name, "entered"); - ds.assert(t, language(), &lifecycle::started(&spec)); - ds.assert(t, language(), &lifecycle::ready(&spec)); - t.on_stop(move |_| { tracing::info!(milestone = ?spec.name, "exited"); Ok(()) }); - Ok(()) -} diff --git a/syndicate-server/src/services/mod.rs b/syndicate-server/src/services/mod.rs index e7b0304..a134df5 100644 --- a/syndicate-server/src/services/mod.rs +++ b/syndicate-server/src/services/mod.rs @@ -1,6 +1,5 @@ pub mod config_watcher; pub mod daemon; pub mod debt_reporter; -pub mod milestone; pub mod tcp_relay_listener; pub mod unix_relay_listener;