pub enum ClusterCommand {
RequestClusterSnapshot {},
CancelWorkflow {
namespace: String,
workflow_id: String,
},
ReopenWorkflow {
namespace: String,
workflow_id: String,
},
RedriveOutboxRow {
namespace: String,
workflow_id: String,
ordinal: u64,
},
DrainNode {
node: String,
},
PlannedHandoff {
shard: usize,
target_node: String,
},
ChaosKillNode {
node: String,
},
}Expand description
A command the ops console can issue against the cluster channel (ADR-020 command seam).
Defined now for contract coherence. Phase 1 ships only Self::RequestClusterSnapshot (a
read). The mutating variants compile so the contract exists, but their handlers reject with an
unimplemented wire error — and, per ADR-020, MUST still run the full auth gate
(caller.deploy_granted()) before rejecting, so the seam’s authorization contract is
exercised now and an unimplemented stub is never an auth-bypass-shaped hole.
Tagged on command (distinct from ClusterEvent’s type) because commands and events are
different directions on the wire; the ops console’s protocol parser keys command frames on
command and event frames on type.
Variants§
RequestClusterSnapshot
Read the current cluster baseline (peers + shards + workers). Read-only; needs only namespace-or-deploy scope. Phase 1.
CancelWorkflow
Cancel a running workflow. Aspirational — handler returns unimplemented.
ReopenWorkflow
Reopen a failed/closed workflow. Aspirational — handler returns unimplemented.
RedriveOutboxRow
Redrive a single outbox row. Aspirational — handler returns unimplemented.
Fields
DrainNode
Drain a node (stop-new-work + finish-in-flight + safe shutdown). Aspirational.
PlannedHandoff
Planned epoch-fenced shard handoff to a target node. Aspirational.
ChaosKillNode
Test-only chaos kill of a node. Aspirational (gated).
Trait Implementations§
Source§impl Clone for ClusterCommand
impl Clone for ClusterCommand
Source§fn clone(&self) -> ClusterCommand
fn clone(&self) -> ClusterCommand
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ClusterCommand
impl Debug for ClusterCommand
Source§impl<'de> Deserialize<'de> for ClusterCommand
impl<'de> Deserialize<'de> for ClusterCommand
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for ClusterCommand
Source§impl PartialEq for ClusterCommand
impl PartialEq for ClusterCommand
Source§impl Serialize for ClusterCommand
impl Serialize for ClusterCommand
impl StructuralPartialEq for ClusterCommand
Source§impl TS for ClusterCommand
impl TS for ClusterCommand
Source§type WithoutGenerics = ClusterCommand
type WithoutGenerics = ClusterCommand
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or (). The only requirement for these dummy types is that
EXPORT_TO must be None. Read moreSource§type OptionInnerType = ClusterCommand
type OptionInnerType = ClusterCommand
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn decl_concrete(cfg: &Config) -> String
fn decl_concrete(cfg: &Config) -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl(cfg: &Config) -> String
fn decl(cfg: &Config) -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline(cfg: &Config) -> String
fn inline(cfg: &Config) -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened(cfg: &Config) -> String
fn inline_flattened(cfg: &Config) -> String
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported, relative to the output directory.
The returned path does not include any base directory. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
Source§fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export_all. Read moreSource§fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export. Read more