diff --git a/app/cluster_discovery.go b/app/cluster_discovery.go index 597088efb8..a8761f1a23 100644 --- a/app/cluster_discovery.go +++ b/app/cluster_discovery.go @@ -32,21 +32,24 @@ func (a *App) NewClusterDiscoveryService() *ClusterDiscoveryService { } func (me *ClusterDiscoveryService) Start() { + err := me.app.Srv.Store.ClusterDiscovery().Cleanup() + if err != nil { + mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to cleanup the outdated cluster discovery information err=%v", err)) + } - <-me.app.Srv.Store.ClusterDiscovery().Cleanup() - - if cresult := <-me.app.Srv.Store.ClusterDiscovery().Exists(&me.ClusterDiscovery); cresult.Err != nil { - mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to check if row exists for %v with err=%v", me.ClusterDiscovery.ToJson(), cresult.Err)) + exists, err := me.app.Srv.Store.ClusterDiscovery().Exists(&me.ClusterDiscovery) + if err != nil { + mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to check if row exists for %v with err=%v", me.ClusterDiscovery.ToJson(), err)) } else { - if cresult.Data.(bool) { - if u := <-me.app.Srv.Store.ClusterDiscovery().Delete(&me.ClusterDiscovery); u.Err != nil { - mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to start clean for %v with err=%v", me.ClusterDiscovery.ToJson(), u.Err)) + if exists { + if _, err := me.app.Srv.Store.ClusterDiscovery().Delete(&me.ClusterDiscovery); err != nil { + mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to start clean for %v with err=%v", me.ClusterDiscovery.ToJson(), err)) } } } - if result := <-me.app.Srv.Store.ClusterDiscovery().Save(&me.ClusterDiscovery); result.Err != nil { - mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to save for %v with err=%v", me.ClusterDiscovery.ToJson(), result.Err)) + if err := me.app.Srv.Store.ClusterDiscovery().Save(&me.ClusterDiscovery); err != nil { + mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to save for %v with err=%v", me.ClusterDiscovery.ToJson(), err)) return } @@ -55,8 +58,8 @@ func (me *ClusterDiscoveryService) Start() { ticker := time.NewTicker(DISCOVERY_SERVICE_WRITE_PING) defer func() { ticker.Stop() - if u := <-me.app.Srv.Store.ClusterDiscovery().Delete(&me.ClusterDiscovery); u.Err != nil { - mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to cleanup for %v with err=%v", me.ClusterDiscovery.ToJson(), u.Err)) + if _, err := me.app.Srv.Store.ClusterDiscovery().Delete(&me.ClusterDiscovery); err != nil { + mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to cleanup for %v with err=%v", me.ClusterDiscovery.ToJson(), err)) } mlog.Debug(fmt.Sprintf("ClusterDiscoveryService ping writer stopped for %v", me.ClusterDiscovery.ToJson())) }() @@ -64,8 +67,8 @@ func (me *ClusterDiscoveryService) Start() { for { select { case <-ticker.C: - if u := <-me.app.Srv.Store.ClusterDiscovery().SetLastPingAt(&me.ClusterDiscovery); u.Err != nil { - mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to write ping for %v with err=%v", me.ClusterDiscovery.ToJson(), u.Err)) + if err := me.app.Srv.Store.ClusterDiscovery().SetLastPingAt(&me.ClusterDiscovery); err != nil { + mlog.Error(fmt.Sprintf("ClusterDiscoveryService failed to write ping for %v with err=%v", me.ClusterDiscovery.ToJson(), err)) } case <-me.stop: return diff --git a/store/sqlstore/cluster_discovery_store.go b/store/sqlstore/cluster_discovery_store.go index 6ac49199e9..db706f555c 100644 --- a/store/sqlstore/cluster_discovery_store.go +++ b/store/sqlstore/cluster_discovery_store.go @@ -28,145 +28,133 @@ func NewSqlClusterDiscoveryStore(sqlStore SqlStore) store.ClusterDiscoveryStore return s } -func (s sqlClusterDiscoveryStore) Save(ClusterDiscovery *model.ClusterDiscovery) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - ClusterDiscovery.PreSave() - if result.Err = ClusterDiscovery.IsValid(); result.Err != nil { - return - } +func (s sqlClusterDiscoveryStore) Save(ClusterDiscovery *model.ClusterDiscovery) *model.AppError { + ClusterDiscovery.PreSave() + if err := ClusterDiscovery.IsValid(); err != nil { + return err + } - if err := s.GetMaster().Insert(ClusterDiscovery); err != nil { - result.Err = model.NewAppError("SqlClusterDiscoveryStore.Save", "store.sql_cluster_discovery.save.app_error", nil, err.Error(), http.StatusInternalServerError) - } - }) + if err := s.GetMaster().Insert(ClusterDiscovery); err != nil { + return model.NewAppError("SqlClusterDiscoveryStore.Save", "store.sql_cluster_discovery.save.app_error", nil, err.Error(), http.StatusInternalServerError) + } + return nil } -func (s sqlClusterDiscoveryStore) Delete(ClusterDiscovery *model.ClusterDiscovery) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - result.Data = false - - if count, err := s.GetMaster().SelectInt( - ` - DELETE - FROM - ClusterDiscovery - WHERE - Type = :Type - AND ClusterName = :ClusterName - AND Hostname = :Hostname - `, - map[string]interface{}{ - "Type": ClusterDiscovery.Type, - "ClusterName": ClusterDiscovery.ClusterName, - "Hostname": ClusterDiscovery.Hostname, - }, - ); err != nil { - result.Err = model.NewAppError("SqlClusterDiscoveryStore.Delete", "store.sql_cluster_discovery.delete.app_error", nil, err.Error(), http.StatusInternalServerError) - } else { - if count > 0 { - result.Data = true - } - } - }) -} - -func (s sqlClusterDiscoveryStore) Exists(ClusterDiscovery *model.ClusterDiscovery) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - result.Data = false - - if count, err := s.GetMaster().SelectInt( - ` - SELECT - COUNT(*) - FROM - ClusterDiscovery - WHERE - Type = :Type - AND ClusterName = :ClusterName - AND Hostname = :Hostname - `, - map[string]interface{}{ - "Type": ClusterDiscovery.Type, - "ClusterName": ClusterDiscovery.ClusterName, - "Hostname": ClusterDiscovery.Hostname, - }, - ); err != nil { - result.Err = model.NewAppError("SqlClusterDiscoveryStore.Exists", "store.sql_cluster_discovery.exists.app_error", nil, err.Error(), http.StatusInternalServerError) - } else { - if count > 0 { - result.Data = true - } - } - }) -} - -func (s sqlClusterDiscoveryStore) GetAll(ClusterDiscoveryType, clusterName string) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - lastPingAt := model.GetMillis() - model.CDS_OFFLINE_AFTER_MILLIS - - var list []*model.ClusterDiscovery - if _, err := s.GetMaster().Select( - &list, - ` - SELECT - * - FROM - ClusterDiscovery - WHERE - Type = :ClusterDiscoveryType - AND ClusterName = :ClusterName - AND LastPingAt > :LastPingAt - `, - map[string]interface{}{ - "ClusterDiscoveryType": ClusterDiscoveryType, - "ClusterName": clusterName, - "LastPingAt": lastPingAt, - }, - ); err != nil { - result.Err = model.NewAppError("SqlClusterDiscoveryStore.GetAllForType", "store.sql_cluster_discovery.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) - } else { - result.Data = list - } - }) -} - -func (s sqlClusterDiscoveryStore) SetLastPingAt(ClusterDiscovery *model.ClusterDiscovery) store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - if _, err := s.GetMaster().Exec( - ` - UPDATE ClusterDiscovery - SET - LastPingAt = :LastPingAt - WHERE - Type = :Type +func (s sqlClusterDiscoveryStore) Delete(ClusterDiscovery *model.ClusterDiscovery) (bool, *model.AppError) { + count, err := s.GetMaster().SelectInt( + ` + DELETE + FROM + ClusterDiscovery + WHERE + Type = :Type AND ClusterName = :ClusterName AND Hostname = :Hostname - `, - map[string]interface{}{ - "LastPingAt": model.GetMillis(), - "Type": ClusterDiscovery.Type, - "ClusterName": ClusterDiscovery.ClusterName, - "Hostname": ClusterDiscovery.Hostname, - }, - ); err != nil { - result.Err = model.NewAppError("SqlClusterDiscoveryStore.GetAllForType", "store.sql_cluster_discovery.set_last_ping.app_error", nil, err.Error(), http.StatusInternalServerError) - } - }) + `, + map[string]interface{}{ + "Type": ClusterDiscovery.Type, + "ClusterName": ClusterDiscovery.ClusterName, + "Hostname": ClusterDiscovery.Hostname, + }, + ) + if err != nil { + return false, model.NewAppError("SqlClusterDiscoveryStore.Delete", "store.sql_cluster_discovery.delete.app_error", nil, err.Error(), http.StatusInternalServerError) + } + if count == 0 { + return false, nil + } + return true, nil } -func (s sqlClusterDiscoveryStore) Cleanup() store.StoreChannel { - return store.Do(func(result *store.StoreResult) { - if _, err := s.GetMaster().Exec( - ` - DELETE FROM ClusterDiscovery - WHERE - LastPingAt < :LastPingAt - `, - map[string]interface{}{ - "LastPingAt": model.GetMillis() - model.CDS_OFFLINE_AFTER_MILLIS, - }, - ); err != nil { - result.Err = model.NewAppError("SqlClusterDiscoveryStore.Save", "store.sql_cluster_discovery.cleanup.app_error", nil, err.Error(), http.StatusInternalServerError) - } - }) +func (s sqlClusterDiscoveryStore) Exists(ClusterDiscovery *model.ClusterDiscovery) (bool, *model.AppError) { + count, err := s.GetMaster().SelectInt( + ` + SELECT + COUNT(*) + FROM + ClusterDiscovery + WHERE + Type = :Type + AND ClusterName = :ClusterName + AND Hostname = :Hostname + `, + map[string]interface{}{ + "Type": ClusterDiscovery.Type, + "ClusterName": ClusterDiscovery.ClusterName, + "Hostname": ClusterDiscovery.Hostname, + }, + ) + if err != nil { + return false, model.NewAppError("SqlClusterDiscoveryStore.Exists", "store.sql_cluster_discovery.exists.app_error", nil, err.Error(), http.StatusInternalServerError) + } + if count == 0 { + return false, nil + } + return true, nil +} + +func (s sqlClusterDiscoveryStore) GetAll(ClusterDiscoveryType, clusterName string) ([]*model.ClusterDiscovery, *model.AppError) { + lastPingAt := model.GetMillis() - model.CDS_OFFLINE_AFTER_MILLIS + + var list []*model.ClusterDiscovery + if _, err := s.GetMaster().Select( + &list, + ` + SELECT + * + FROM + ClusterDiscovery + WHERE + Type = :ClusterDiscoveryType + AND ClusterName = :ClusterName + AND LastPingAt > :LastPingAt + `, + map[string]interface{}{ + "ClusterDiscoveryType": ClusterDiscoveryType, + "ClusterName": clusterName, + "LastPingAt": lastPingAt, + }, + ); err != nil { + return nil, model.NewAppError("SqlClusterDiscoveryStore.GetAllForType", "store.sql_cluster_discovery.get_all.app_error", nil, err.Error(), http.StatusInternalServerError) + } + return list, nil +} + +func (s sqlClusterDiscoveryStore) SetLastPingAt(ClusterDiscovery *model.ClusterDiscovery) *model.AppError { + if _, err := s.GetMaster().Exec( + ` + UPDATE ClusterDiscovery + SET + LastPingAt = :LastPingAt + WHERE + Type = :Type + AND ClusterName = :ClusterName + AND Hostname = :Hostname + `, + map[string]interface{}{ + "LastPingAt": model.GetMillis(), + "Type": ClusterDiscovery.Type, + "ClusterName": ClusterDiscovery.ClusterName, + "Hostname": ClusterDiscovery.Hostname, + }, + ); err != nil { + return model.NewAppError("SqlClusterDiscoveryStore.GetAllForType", "store.sql_cluster_discovery.set_last_ping.app_error", nil, err.Error(), http.StatusInternalServerError) + } + return nil +} + +func (s sqlClusterDiscoveryStore) Cleanup() *model.AppError { + if _, err := s.GetMaster().Exec( + ` + DELETE FROM ClusterDiscovery + WHERE + LastPingAt < :LastPingAt + `, + map[string]interface{}{ + "LastPingAt": model.GetMillis() - model.CDS_OFFLINE_AFTER_MILLIS, + }, + ); err != nil { + return model.NewAppError("SqlClusterDiscoveryStore.Save", "store.sql_cluster_discovery.cleanup.app_error", nil, err.Error(), http.StatusInternalServerError) + } + return nil } diff --git a/store/store.go b/store/store.go index d96fa16c07..e03b22161b 100644 --- a/store/store.go +++ b/store/store.go @@ -329,12 +329,12 @@ type AuditStore interface { } type ClusterDiscoveryStore interface { - Save(discovery *model.ClusterDiscovery) StoreChannel - Delete(discovery *model.ClusterDiscovery) StoreChannel - Exists(discovery *model.ClusterDiscovery) StoreChannel - GetAll(discoveryType, clusterName string) StoreChannel - SetLastPingAt(discovery *model.ClusterDiscovery) StoreChannel - Cleanup() StoreChannel + Save(discovery *model.ClusterDiscovery) *model.AppError + Delete(discovery *model.ClusterDiscovery) (bool, *model.AppError) + Exists(discovery *model.ClusterDiscovery) (bool, *model.AppError) + GetAll(discoveryType, clusterName string) ([]*model.ClusterDiscovery, *model.AppError) + SetLastPingAt(discovery *model.ClusterDiscovery) *model.AppError + Cleanup() *model.AppError } type ComplianceStore interface { diff --git a/store/storetest/cluster_discovery_store.go b/store/storetest/cluster_discovery_store.go index 478f2e5f8f..c2f039577e 100644 --- a/store/storetest/cluster_discovery_store.go +++ b/store/storetest/cluster_discovery_store.go @@ -10,6 +10,8 @@ import ( "github.com/mattermost/mattermost-server/model" "github.com/mattermost/mattermost-server/store" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestClusterDiscoveryStore(t *testing.T, ss store.Store) { @@ -27,12 +29,12 @@ func testClusterDiscoveryStore(t *testing.T, ss store.Store) { Type: "test_test", } - if result := <-ss.ClusterDiscovery().Save(discovery); result.Err != nil { - t.Fatal(result.Err) + if err := ss.ClusterDiscovery().Save(discovery); err != nil { + t.Fatal(err) } - if result := <-ss.ClusterDiscovery().Cleanup(); result.Err != nil { - t.Fatal(result.Err) + if err := ss.ClusterDiscovery().Cleanup(); err != nil { + t.Fatal(err) } } @@ -43,12 +45,12 @@ func testClusterDiscoveryStoreDelete(t *testing.T, ss store.Store) { Type: "test_test", } - if result := <-ss.ClusterDiscovery().Save(discovery); result.Err != nil { - t.Fatal(result.Err) + if err := ss.ClusterDiscovery().Save(discovery); err != nil { + t.Fatal(err) } - if result := <-ss.ClusterDiscovery().Delete(discovery); result.Err != nil { - t.Fatal(result.Err) + if _, err := ss.ClusterDiscovery().Delete(discovery); err != nil { + t.Fatal(err) } } @@ -59,35 +61,28 @@ func testClusterDiscoveryStoreLastPing(t *testing.T, ss store.Store) { Type: "test_test_lastPing" + model.NewId(), } - if result := <-ss.ClusterDiscovery().Save(discovery); result.Err != nil { - t.Fatal(result.Err) + if err := ss.ClusterDiscovery().Save(discovery); err != nil { + t.Fatal(err) } - if result := <-ss.ClusterDiscovery().SetLastPingAt(discovery); result.Err != nil { - t.Fatal(result.Err) + if err := ss.ClusterDiscovery().SetLastPingAt(discovery); err != nil { + t.Fatal(err) } ttime := model.GetMillis() time.Sleep(1 * time.Second) - if result := <-ss.ClusterDiscovery().SetLastPingAt(discovery); result.Err != nil { - t.Fatal(result.Err) + if err := ss.ClusterDiscovery().SetLastPingAt(discovery); err != nil { + t.Fatal(err) } - if result := <-ss.ClusterDiscovery().GetAll(discovery.Type, "cluster_name_lastPing"); result.Err != nil { - t.Fatal(result.Err) - } else { - list := result.Data.([]*model.ClusterDiscovery) + list, err := ss.ClusterDiscovery().GetAll(discovery.Type, "cluster_name_lastPing") + require.Nil(t, err) + assert.Len(t, list, 1) - if len(list) != 1 { - t.Fatal("should only be 1 items") - return - } - - if list[0].LastPingAt-ttime < 500 { - t.Fatal("failed to set time") - } + if list[0].LastPingAt-ttime < 500 { + t.Fatal("failed to set time") } discovery2 := &model.ClusterDiscovery{ @@ -96,8 +91,8 @@ func testClusterDiscoveryStoreLastPing(t *testing.T, ss store.Store) { Type: "test_test_missing", } - if result := <-ss.ClusterDiscovery().SetLastPingAt(discovery2); result.Err != nil { - t.Fatal(result.Err) + if err := ss.ClusterDiscovery().SetLastPingAt(discovery2); err != nil { + t.Fatal(err) } } @@ -108,29 +103,19 @@ func testClusterDiscoveryStoreExists(t *testing.T, ss store.Store) { Type: "test_test_Exists" + model.NewId(), } - if result := <-ss.ClusterDiscovery().Save(discovery); result.Err != nil { - t.Fatal(result.Err) + if err := ss.ClusterDiscovery().Save(discovery); err != nil { + t.Fatal(err) } - if result := <-ss.ClusterDiscovery().Exists(discovery); result.Err != nil { - t.Fatal(result.Err) - } else { - val := result.Data.(bool) - if !val { - t.Fatal("should be true") - } - } + val, err := ss.ClusterDiscovery().Exists(discovery) + require.Nil(t, err) + assert.True(t, val) discovery.ClusterName = "cluster_name_Exists2" - if result := <-ss.ClusterDiscovery().Exists(discovery); result.Err != nil { - t.Fatal(result.Err) - } else { - val := result.Data.(bool) - if val { - t.Fatal("should be true") - } - } + val, err = ss.ClusterDiscovery().Exists(discovery) + require.Nil(t, err) + assert.False(t, val) } func testClusterDiscoveryGetStore(t *testing.T, ss store.Store) { @@ -141,14 +126,14 @@ func testClusterDiscoveryGetStore(t *testing.T, ss store.Store) { Hostname: "hostname1", Type: testType1, } - store.Must(ss.ClusterDiscovery().Save(discovery1)) + require.Nil(t, ss.ClusterDiscovery().Save(discovery1)) discovery2 := &model.ClusterDiscovery{ ClusterName: "cluster_name", Hostname: "hostname2", Type: testType1, } - store.Must(ss.ClusterDiscovery().Save(discovery2)) + require.Nil(t, ss.ClusterDiscovery().Save(discovery2)) discovery3 := &model.ClusterDiscovery{ ClusterName: "cluster_name", @@ -157,7 +142,7 @@ func testClusterDiscoveryGetStore(t *testing.T, ss store.Store) { CreateAt: 1, LastPingAt: 1, } - store.Must(ss.ClusterDiscovery().Save(discovery3)) + require.Nil(t, ss.ClusterDiscovery().Save(discovery3)) testType2 := model.NewId() @@ -166,35 +151,17 @@ func testClusterDiscoveryGetStore(t *testing.T, ss store.Store) { Hostname: "hostname1", Type: testType2, } - store.Must(ss.ClusterDiscovery().Save(discovery4)) + require.Nil(t, ss.ClusterDiscovery().Save(discovery4)) - if result := <-ss.ClusterDiscovery().GetAll(testType1, "cluster_name"); result.Err != nil { - t.Fatal(result.Err) - } else { - list := result.Data.([]*model.ClusterDiscovery) + list, err := ss.ClusterDiscovery().GetAll(testType1, "cluster_name") + require.Nil(t, err) + assert.Len(t, list, 2) - if len(list) != 2 { - t.Fatal("Should only have returned 2") - } - } + list, err = ss.ClusterDiscovery().GetAll(testType2, "cluster_name") + require.Nil(t, err) + assert.Len(t, list, 1) - if result := <-ss.ClusterDiscovery().GetAll(testType2, "cluster_name"); result.Err != nil { - t.Fatal(result.Err) - } else { - list := result.Data.([]*model.ClusterDiscovery) - - if len(list) != 1 { - t.Fatal("Should only have returned 1") - } - } - - if result := <-ss.ClusterDiscovery().GetAll(model.NewId(), "cluster_name"); result.Err != nil { - t.Fatal(result.Err) - } else { - list := result.Data.([]*model.ClusterDiscovery) - - if len(list) != 0 { - t.Fatal("shouldn't be any") - } - } + list, err = ss.ClusterDiscovery().GetAll(model.NewId(), "cluster_name") + require.Nil(t, err) + assert.Len(t, list, 0) } diff --git a/store/storetest/mocks/ClusterDiscoveryStore.go b/store/storetest/mocks/ClusterDiscoveryStore.go index 4010006d82..7303faba31 100644 --- a/store/storetest/mocks/ClusterDiscoveryStore.go +++ b/store/storetest/mocks/ClusterDiscoveryStore.go @@ -6,7 +6,6 @@ package mocks import mock "github.com/stretchr/testify/mock" import model "github.com/mattermost/mattermost-server/model" -import store "github.com/mattermost/mattermost-server/store" // ClusterDiscoveryStore is an autogenerated mock type for the ClusterDiscoveryStore type type ClusterDiscoveryStore struct { @@ -14,15 +13,15 @@ type ClusterDiscoveryStore struct { } // Cleanup provides a mock function with given fields: -func (_m *ClusterDiscoveryStore) Cleanup() store.StoreChannel { +func (_m *ClusterDiscoveryStore) Cleanup() *model.AppError { ret := _m.Called() - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func() store.StoreChannel); ok { + var r0 *model.AppError + if rf, ok := ret.Get(0).(func() *model.AppError); ok { r0 = rf() } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.AppError) } } @@ -30,63 +29,86 @@ func (_m *ClusterDiscoveryStore) Cleanup() store.StoreChannel { } // Delete provides a mock function with given fields: discovery -func (_m *ClusterDiscoveryStore) Delete(discovery *model.ClusterDiscovery) store.StoreChannel { +func (_m *ClusterDiscoveryStore) Delete(discovery *model.ClusterDiscovery) (bool, *model.AppError) { ret := _m.Called(discovery) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(*model.ClusterDiscovery) store.StoreChannel); ok { + var r0 bool + if rf, ok := ret.Get(0).(func(*model.ClusterDiscovery) bool); ok { r0 = rf(discovery) } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(bool) + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(*model.ClusterDiscovery) *model.AppError); ok { + r1 = rf(discovery) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) } } - return r0 + return r0, r1 } // Exists provides a mock function with given fields: discovery -func (_m *ClusterDiscoveryStore) Exists(discovery *model.ClusterDiscovery) store.StoreChannel { +func (_m *ClusterDiscoveryStore) Exists(discovery *model.ClusterDiscovery) (bool, *model.AppError) { ret := _m.Called(discovery) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(*model.ClusterDiscovery) store.StoreChannel); ok { + var r0 bool + if rf, ok := ret.Get(0).(func(*model.ClusterDiscovery) bool); ok { r0 = rf(discovery) } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(bool) + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(*model.ClusterDiscovery) *model.AppError); ok { + r1 = rf(discovery) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) } } - return r0 + return r0, r1 } // GetAll provides a mock function with given fields: discoveryType, clusterName -func (_m *ClusterDiscoveryStore) GetAll(discoveryType string, clusterName string) store.StoreChannel { +func (_m *ClusterDiscoveryStore) GetAll(discoveryType string, clusterName string) ([]*model.ClusterDiscovery, *model.AppError) { ret := _m.Called(discoveryType, clusterName) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(string, string) store.StoreChannel); ok { + var r0 []*model.ClusterDiscovery + if rf, ok := ret.Get(0).(func(string, string) []*model.ClusterDiscovery); ok { r0 = rf(discoveryType, clusterName) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).([]*model.ClusterDiscovery) } } - return r0 + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok { + r1 = rf(discoveryType, clusterName) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 } // Save provides a mock function with given fields: discovery -func (_m *ClusterDiscoveryStore) Save(discovery *model.ClusterDiscovery) store.StoreChannel { +func (_m *ClusterDiscoveryStore) Save(discovery *model.ClusterDiscovery) *model.AppError { ret := _m.Called(discovery) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(*model.ClusterDiscovery) store.StoreChannel); ok { + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(*model.ClusterDiscovery) *model.AppError); ok { r0 = rf(discovery) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.AppError) } } @@ -94,15 +116,15 @@ func (_m *ClusterDiscoveryStore) Save(discovery *model.ClusterDiscovery) store.S } // SetLastPingAt provides a mock function with given fields: discovery -func (_m *ClusterDiscoveryStore) SetLastPingAt(discovery *model.ClusterDiscovery) store.StoreChannel { +func (_m *ClusterDiscoveryStore) SetLastPingAt(discovery *model.ClusterDiscovery) *model.AppError { ret := _m.Called(discovery) - var r0 store.StoreChannel - if rf, ok := ret.Get(0).(func(*model.ClusterDiscovery) store.StoreChannel); ok { + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(*model.ClusterDiscovery) *model.AppError); ok { r0 = rf(discovery) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(store.StoreChannel) + r0 = ret.Get(0).(*model.AppError) } }