From baf49d5921cf91eae58d4d29ba5eb8e25424e12e Mon Sep 17 00:00:00 2001
From: librelois <c@elo.tf>
Date: Tue, 15 Dec 2020 20:18:09 +0100
Subject: [PATCH] [ref] server: move old heads in db dunp_v1

---
 rust-libs/duniter-dbs/src/databases/cm_v1.rs   |  8 +-------
 rust-libs/duniter-dbs/src/databases/dunp_v1.rs |  5 ++++-
 rust-libs/duniter-server/src/legacy/dunp.rs    | 12 ++++++------
 rust-libs/duniter-server/src/lib.rs            |  2 ++
 4 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/rust-libs/duniter-dbs/src/databases/cm_v1.rs b/rust-libs/duniter-dbs/src/databases/cm_v1.rs
index 9771aff31..a18c189c4 100644
--- a/rust-libs/duniter-dbs/src/databases/cm_v1.rs
+++ b/rust-libs/duniter-dbs/src/databases/cm_v1.rs
@@ -15,10 +15,4 @@
 
 use crate::*;
 
-db_schema!(
-    CmV1,
-    [
-        ["self_peer_old", SelfPeerOld, (), PeerCardDbV1],
-        ["dunp_heads_old", DunpHeadsOld, DunpNodeIdV1Db, DunpHeadDbV1],
-    ]
-);
+db_schema!(CmV1, [["self_peer_old", SelfPeerOld, (), PeerCardDbV1],]);
diff --git a/rust-libs/duniter-dbs/src/databases/dunp_v1.rs b/rust-libs/duniter-dbs/src/databases/dunp_v1.rs
index 86e4b320a..87285c022 100644
--- a/rust-libs/duniter-dbs/src/databases/dunp_v1.rs
+++ b/rust-libs/duniter-dbs/src/databases/dunp_v1.rs
@@ -17,5 +17,8 @@ use crate::*;
 
 db_schema!(
     DunpV1,
-    [["peers_old", PeersOld, PubKeyKeyV2, PeerCardDbV1],]
+    [
+        ["heads_old", HeadsOld, DunpNodeIdV1Db, DunpHeadDbV1],
+        ["peers_old", PeersOld, PubKeyKeyV2, PeerCardDbV1],
+    ]
 );
diff --git a/rust-libs/duniter-server/src/legacy/dunp.rs b/rust-libs/duniter-server/src/legacy/dunp.rs
index 44c9552e3..e58742c7f 100644
--- a/rust-libs/duniter-server/src/legacy/dunp.rs
+++ b/rust-libs/duniter-server/src/legacy/dunp.rs
@@ -23,8 +23,8 @@ impl DuniterServer {
         self.dbs_pool
             .execute(move |dbs| {
                 for (dunp_node_id, dunp_head) in heads {
-                    dbs.cm_db
-                        .dunp_heads_old_write()
+                    dbs.dunp_db
+                        .heads_old_write()
                         .upsert(dunp_node_id, dunp_head)?
                 }
                 Ok::<(), KvError>(())
@@ -83,13 +83,13 @@ mod tests {
         ed25519::{PublicKey, Signature},
         PublicKey as _,
     };
+    use duniter_dbs::databases::dunp_v1::DunpV1DbReadable;
     use duniter_dbs::PeerCardDbV1;
 
     use super::*;
 
     #[test]
     fn test_receive_new_heads() -> anyhow::Result<()> {
-        use duniter_dbs::databases::cm_v1::CmV1DbReadable as _;
         let (server, dbs) = DuniterServer::test(DuniterConf::default())?;
 
         let head = (
@@ -107,10 +107,10 @@ mod tests {
             },
         );
 
-        assert_eq!(dbs.cm_db.dunp_heads_old().count()?, 0);
+        assert_eq!(dbs.dunp_db.heads_old().count()?, 0);
         server.receive_new_heads(vec![head.clone()])?;
-        assert_eq!(dbs.cm_db.dunp_heads_old().count()?, 1);
-        assert_eq!(dbs.cm_db.dunp_heads_old().get(&head.0)?, Some(head.1));
+        assert_eq!(dbs.dunp_db.heads_old().count()?, 1);
+        assert_eq!(dbs.dunp_db.heads_old().get(&head.0)?, Some(head.1));
 
         Ok(())
     }
diff --git a/rust-libs/duniter-server/src/lib.rs b/rust-libs/duniter-server/src/lib.rs
index 6268d7d66..8235de295 100644
--- a/rust-libs/duniter-server/src/lib.rs
+++ b/rust-libs/duniter-server/src/lib.rs
@@ -25,6 +25,7 @@
 mod legacy;
 
 pub use duniter_conf::{gva_conf::GvaConf, DuniterConf};
+use duniter_dbs::databases::dunp_v1::DunpV1DbWritable;
 pub use duniter_dbs::{
     kv_typed::prelude::KvResult, smallvec, DunpHeadDbV1, DunpNodeIdV1Db, PeerCardDbV1,
 };
@@ -115,6 +116,7 @@ impl DuniterServer {
 
         log::info!("open duniter databases...");
         let (bc_db, dbs) = duniter_dbs::open_dbs(profile_path_opt);
+        dbs.dunp_db.heads_old_write().clear()?; // Clear WS2Pv1 HEADs
         log::info!("Databases successfully opened.");
         let current = duniter_dbs_read_ops::get_current_block_meta(&dbs.bc_db_ro)
             .context("Fail to get current")?;
-- 
GitLab