aboutsummaryrefslogtreecommitdiff
path: root/src/model/prev/v051/bucket_table.rs
diff options
context:
space:
mode:
authorAlex <alex@adnab.me>2024-03-08 13:43:42 +0000
committerAlex <alex@adnab.me>2024-03-08 13:43:42 +0000
commit2128b5febd97eb6c95e3bdd380dcba39b860c0e3 (patch)
treef37726dda012541cf8f2be81a0197fdf0b889a8b /src/model/prev/v051/bucket_table.rs
parent1ace34adbb05bb10cf7a2c8d0d2b84769ca797df (diff)
parentf537f76681760e9b2b3cc095a6031ebb59ca4733 (diff)
downloadgarage-2128b5febd97eb6c95e3bdd380dcba39b860c0e3.tar.gz
garage-2128b5febd97eb6c95e3bdd380dcba39b860c0e3.zip
Merge pull request 'Remove migration path from Garage v0.5' (#766) from rm-migration into next-0.10
Reviewed-on: https://git.deuxfleurs.fr/Deuxfleurs/garage/pulls/766
Diffstat (limited to 'src/model/prev/v051/bucket_table.rs')
-rw-r--r--src/model/prev/v051/bucket_table.rs63
1 files changed, 0 insertions, 63 deletions
diff --git a/src/model/prev/v051/bucket_table.rs b/src/model/prev/v051/bucket_table.rs
deleted file mode 100644
index 19893458..00000000
--- a/src/model/prev/v051/bucket_table.rs
+++ /dev/null
@@ -1,63 +0,0 @@
-use serde::{Deserialize, Serialize};
-
-use garage_table::crdt::Crdt;
-use garage_table::*;
-
-use crate::key_table::v05::PermissionSet;
-
-/// A bucket is a collection of objects
-///
-/// Its parameters are not directly accessible as:
-/// - It must be possible to merge paramaters, hence the use of a LWW CRDT.
-/// - A bucket has 2 states, Present or Deleted and parameters make sense only if present.
-#[derive(PartialEq, Eq, Clone, Debug, Serialize, Deserialize)]
-pub struct Bucket {
- /// Name of the bucket
- pub name: String,
- /// State, and configuration if not deleted, of the bucket
- pub state: crdt::Lww<BucketState>,
-}
-
-/// State of a bucket
-#[derive(PartialEq, Eq, Clone, Debug, Serialize, Deserialize)]
-pub enum BucketState {
- /// The bucket is deleted
- Deleted,
- /// The bucket exists
- Present(BucketParams),
-}
-
-impl Crdt for BucketState {
- fn merge(&mut self, o: &Self) {
- match o {
- BucketState::Deleted => *self = BucketState::Deleted,
- BucketState::Present(other_params) => {
- if let BucketState::Present(params) = self {
- params.merge(other_params);
- }
- }
- }
- }
-}
-
-/// Configuration for a bucket
-#[derive(PartialEq, Eq, Clone, Debug, Serialize, Deserialize)]
-pub struct BucketParams {
- /// Map of key with access to the bucket, and what kind of access they give
- pub authorized_keys: crdt::LwwMap<String, PermissionSet>,
- /// Is the bucket served as http
- pub website: crdt::Lww<bool>,
-}
-
-impl Crdt for BucketParams {
- fn merge(&mut self, o: &Self) {
- self.authorized_keys.merge(&o.authorized_keys);
- self.website.merge(&o.website);
- }
-}
-
-impl Crdt for Bucket {
- fn merge(&mut self, other: &Self) {
- self.state.merge(&other.state);
- }
-}