feat: enable changed events
This commit is contained in:
@@ -6,7 +6,8 @@ use tokio::sync::RwLock;
|
||||
|
||||
use crate::{
|
||||
manifests::{
|
||||
Manifest, ManifestLease, ManifestState, ManifestStatus, ManifestStatusState, WorkerId,
|
||||
Manifest, ManifestChangeEvent, ManifestChangeEventType, ManifestLease, ManifestState,
|
||||
ManifestStatus, ManifestStatusState, WorkerId,
|
||||
},
|
||||
Specification,
|
||||
};
|
||||
@@ -119,6 +120,10 @@ impl<T: Specification> BackingStore<T> {
|
||||
status: ManifestStatus {
|
||||
status: ManifestStatusState::Pending,
|
||||
events: Vec::default(),
|
||||
changes: vec![ManifestChangeEvent {
|
||||
created: now,
|
||||
event: ManifestChangeEventType::Changed,
|
||||
}],
|
||||
},
|
||||
created: now,
|
||||
updated: now,
|
||||
|
||||
@@ -42,6 +42,8 @@ where
|
||||
pub struct ManifestStatus {
|
||||
pub status: ManifestStatusState,
|
||||
pub events: Vec<ManifestEvent>,
|
||||
|
||||
pub changes: Vec<ManifestChangeEvent>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
@@ -53,6 +55,20 @@ pub enum ManifestStatusState {
|
||||
Deleting,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct ManifestChangeEvent {
|
||||
pub created: jiff::Timestamp,
|
||||
pub event: ManifestChangeEventType,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
|
||||
pub enum ManifestChangeEventType {
|
||||
Created,
|
||||
Changed,
|
||||
Deleted,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Serialize, Deserialize)]
|
||||
pub struct ManifestEvent {
|
||||
pub owner: WorkerId,
|
||||
|
||||
Reference in New Issue
Block a user