chiark / gitweb /
apitest: Use new synch
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Feb 2021 00:48:36 +0000 (00:48 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 27 Feb 2021 00:48:36 +0000 (00:48 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
apitest/at-otter.rs

index 201f87f3a4a012dfd447a097a6ede1154ec36c08..6a33ef3fe0ddcf37d5829717d3883ff2aa812e32 100644 (file)
@@ -245,14 +245,12 @@ impl Session {
   }
 
   #[throws(AE)]
-  fn resynch_pieces(&mut self) {
-    self.await_update(|session, _gen, k, v| {
-      let got_cseq: RawClientSequence = match k {
-        "Recorded" => v["cseq"].as_i64().unwrap().try_into().unwrap(),
-        _ => return None,
-      };
-      if got_cseq == session.cseq { Some(()) } else { None }
-    }, |_,_| None)?;
+  fn synch(&mut self, su: &mut SetupCore) {
+    let exp = mgmt_game_synch(&mut su.mgmt_conn, TABLE.parse().unwrap())?;
+    self.await_update(
+      |session, gen, _k, _v| (gen == exp).as_option(),
+      |session, gen        | (gen == exp).as_option(),
+    )?;
   }
 }
 
@@ -293,11 +291,12 @@ impl Ctx {
       session.api_piece_op(&self.su, &llm.id, "ungrab", json!({}))?;
     }
 
-    session.resynch_pieces()?;
+    session.synch(&mut self.su)?;
 
     self.otter(&command)
       .expect("library-add failed after place!");
 
+    session.synch(&mut self.su)?;
     // xxx send api requests to move markers
     // run library-add again
   }