From 7ecf83aa1f65cf6269330e3e1f64bc85daf158b2 Mon Sep 17 00:00:00 2001 From: jbhusson <jonah@elixxir.io> Date: Tue, 1 Nov 2022 16:23:50 -0400 Subject: [PATCH] Trigger backup on UD register, confirm fact, delete fact --- fileTransfer/store/received.go | 2 +- ud/confirmFact.go | 1 + ud/interfaces.go | 1 + ud/mockE2e_test.go | 4 ++++ ud/register.go | 1 + ud/remove.go | 9 +++++++-- 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/fileTransfer/store/received.go b/fileTransfer/store/received.go index 189025a71..db46299a0 100644 --- a/fileTransfer/store/received.go +++ b/fileTransfer/store/received.go @@ -73,7 +73,7 @@ func NewOrLoadReceived(kv *versioned.KV) (*Received, []*ReceivedTransfer, error) tid := tidList[i] s.transfers[tid], err = loadReceivedTransfer(&tid, s.kv) if err != nil { - jww.WARN.Print(warnLoadReceivedTransfer, i, len(tidList), tid, err) + jww.WARN.Printf(warnLoadReceivedTransfer, i, len(tidList), tid, err) errCount++ } diff --git a/ud/confirmFact.go b/ud/confirmFact.go index 8fdafc24a..ec8d542a1 100644 --- a/ud/confirmFact.go +++ b/ud/confirmFact.go @@ -41,6 +41,7 @@ func (m *Manager) confirmFact(confirmationID, code string, comm confirmFactComm) "Failed to confirm fact in storage with confirmation ID: %q", confirmationID) } + m.user.GetBackupContainer().TriggerBackup("Fact confirmed") return nil } diff --git a/ud/interfaces.go b/ud/interfaces.go index 9439d365c..6280beb19 100644 --- a/ud/interfaces.go +++ b/ud/interfaces.go @@ -39,6 +39,7 @@ type udE2e interface { GetRng() *fastRNG.StreamGenerator GetStorage() storage.Session GetTransmissionIdentity() xxdk.TransmissionIdentity + GetBackupContainer() *xxdk.Container } // udNetworkStatus is an interface for the xxdk.Cmix's diff --git a/ud/mockE2e_test.go b/ud/mockE2e_test.go index e903d7eb5..335f071d9 100644 --- a/ud/mockE2e_test.go +++ b/ud/mockE2e_test.go @@ -46,6 +46,10 @@ type mockE2e struct { key *rsa.PrivateKey } +func (m mockE2e) GetBackupContainer() *xxdk.Container { + return &xxdk.Container{} +} + func (m mockE2e) GetE2E() e2e.Handler { return mockE2eHandler{} } diff --git a/ud/register.go b/ud/register.go index d70eaf0e2..0cf1f7ba8 100644 --- a/ud/register.go +++ b/ud/register.go @@ -95,6 +95,7 @@ func (m *Manager) register(username string, networkSignature []byte, m.getEventReporter().Report(1, "UserDiscovery", "Registration", fmt.Sprintf("User Registered with UD: %+v", username)) + m.user.GetBackupContainer().TriggerBackup("User registered with UD") } return err diff --git a/ud/remove.go b/ud/remove.go index 71db207ed..e2a719c70 100644 --- a/ud/remove.go +++ b/ud/remove.go @@ -26,8 +26,13 @@ import ( func (m *Manager) RemoveFact(f fact.Fact) error { jww.INFO.Printf("ud.RemoveFact(%s)", f.Stringify()) m.factMux.Lock() - defer m.factMux.Unlock() - return m.removeFact(f, m.comms) + err := m.removeFact(f, m.comms) + m.factMux.Unlock() + if err != nil { + return err + } + m.user.GetBackupContainer().TriggerBackup("Removed fact") + return nil } // removeFact is a helper function which contacts the UD service -- GitLab