meta_srv/procedure/repartition/group/
repartition_end.rs1use std::any::Any;
16
17use common_procedure::{Context as ProcedureContext, Status};
18use common_telemetry::info;
19use serde::{Deserialize, Serialize};
20
21use crate::error::Result;
22use crate::procedure::repartition::group::{Context, State};
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
25pub struct RepartitionEnd;
26
27#[async_trait::async_trait]
28#[typetag::serde]
29impl State for RepartitionEnd {
30 async fn next(
31 &mut self,
32 ctx: &mut Context,
33 _procedure_ctx: &ProcedureContext,
34 ) -> Result<(Box<dyn State>, Status)> {
35 info!(
36 "Repartition group procedure finished, metrics: {}",
37 ctx.volatile_ctx.metrics
38 );
39 Ok((Box::new(RepartitionEnd), Status::done()))
40 }
41
42 fn as_any(&self) -> &dyn Any {
43 self
44 }
45}