From a0a851033720e92477a65fb42221dda3a519ac6c Mon Sep 17 00:00:00 2001 From: Timo Tietavainen Date: Fri, 8 Oct 2021 13:52:12 +0300 Subject: [PATCH] Replace deprecated SDL APIs Replace deprecated SDL SdlInstance usage with xapp-frame's SdlStorage APIs, which have been built on top of the valid SDL SyncStorage APIs. Upgrade SDL version to v0.8.0. Bump appmgr's Docker container tag to 0.5.4. Issue-Id: RIC-805 Signed-off-by: Timo Tietavainen Change-Id: Ib68a380544fd75e31ca99d74bd319eae9f029aee --- Dockerfile | 10 ++- container-tag.yaml | 2 +- go.mod | 2 +- go.sum | 4 +- pkg/resthooks/resthooks.go | 31 +++++---- pkg/resthooks/resthooks_test.go | 135 ++++++++++++++++++---------------------- pkg/resthooks/types.go | 11 ++-- 7 files changed, 97 insertions(+), 98 deletions(-) diff --git a/Dockerfile b/Dockerfile index 5f43439..5ca9e2a 100755 --- a/Dockerfile +++ b/Dockerfile @@ -19,6 +19,12 @@ FROM nexus3.o-ran-sc.org:10002/o-ran-sc/bldr-ubuntu18-c-go:1.9.0 AS appmgr-build RUN apt-get update -y && apt-get install -y jq +# Update CA certificates +RUN apt update && apt install --reinstall -y \ + ca-certificates \ + && \ + update-ca-certificates + ENV PATH="/usr/local/go/bin:${PATH}" # Install helm @@ -70,8 +76,8 @@ CMD ["/bin/bash"] FROM ubuntu:18.04 as appmgr RUN apt-get update -y \ - && apt-get install -y sudo openssl ca-certificates ca-cacert \ - && apt-get clean + && apt-get install --reinstall -y sudo openssl ca-certificates ca-cacert \ + && apt-get clean && update-ca-certificates # # libraries and helm diff --git a/container-tag.yaml b/container-tag.yaml index b768677..cb9f477 100755 --- a/container-tag.yaml +++ b/container-tag.yaml @@ -1,4 +1,4 @@ # The Jenkins job uses this string for the tag in the image name # for example nexus3.o-ran-sc.org:10004/my-image-name:my-tag --- -tag: '0.5.3' +tag: '0.5.4' diff --git a/go.mod b/go.mod index 6c1b108..71eeb8b 100644 --- a/go.mod +++ b/go.mod @@ -2,7 +2,7 @@ module gerrit.o-ran-sc.org/r/ric-plt/appmgr go 1.12 -replace gerrit.o-ran-sc.org/r/ric-plt/sdlgo => gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.7.0 +replace gerrit.o-ran-sc.org/r/ric-plt/sdlgo => gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.8.0 replace gerrit.o-ran-sc.org/r/com/golog => gerrit.o-ran-sc.org/r/com/golog.git v0.0.2 diff --git a/go.sum b/go.sum index 1558c34..7929ba7 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ gerrit.o-ran-sc.org/r/com/golog.git v0.0.2 h1:Ix6SgFuzd6yW6Ur6+qDlGhDO65UYs8PiIkeAL1VaQ2o= gerrit.o-ran-sc.org/r/com/golog.git v0.0.2/go.mod h1:A7hUL52YQSO4dFIZNcj76XQ09C9PftAe3LyL7kqBnok= -gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.7.0 h1:mxlBo54jxwHHFmGYzFI+fBIkOGwarQP4dx2KBxQ8ln8= -gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.7.0/go.mod h1:KCHu4JkWnw2Ro6P747wU9S2t7zxFLmBNCiYvGZo3CHo= +gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.8.0 h1:H7GtCRC+pGn6oOxYalUZr7LinQX5jQCVa+ConX7PB5Q= +gerrit.o-ran-sc.org/r/ric-plt/sdlgo.git v0.8.0/go.mod h1:KCHu4JkWnw2Ro6P747wU9S2t7zxFLmBNCiYvGZo3CHo= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= diff --git a/pkg/resthooks/resthooks.go b/pkg/resthooks/resthooks.go index 1bc7925..f45197b 100755 --- a/pkg/resthooks/resthooks.go +++ b/pkg/resthooks/resthooks.go @@ -34,15 +34,20 @@ import ( "gerrit.o-ran-sc.org/r/ric-plt/appmgr/pkg/models" ) +//To encapsulate xApp Manager's keys under their own namespace in a DB +const ( + appmgrSdlNs = "appmgr" + appDbSdlNs = "appdb" +) + func NewResthook(restoreData bool) *Resthook { - return createResthook(restoreData, sdl.NewSdlInstance("appmgr", sdl.NewDatabase()), sdl.NewSdlInstance("appdb", sdl.NewDatabase())) + return createResthook(restoreData, sdl.NewSyncStorage()) } -func createResthook(restoreData bool, sdlInst iSdl, sdlInst2 iSdl) *Resthook { +func createResthook(restoreData bool, sdlInst iSdl) *Resthook { rh := &Resthook{ client: &http.Client{}, db: sdlInst, - db2: sdlInst2, } if restoreData { @@ -189,7 +194,7 @@ func (rh *Resthook) StoreSubscriptions(m cmap.ConcurrentMap) { return } - if err := rh.db.Set(s.Id, data); err != nil { + if err := rh.db.Set(appmgrSdlNs, s.Id, data); err != nil { appmgr.Logger.Error("DB.session.Set failed: %v ", err.Error()) } } @@ -199,14 +204,14 @@ func (rh *Resthook) RestoreSubscriptions() (m cmap.ConcurrentMap) { rh.VerifyDBConnection() m = cmap.New() - keys, err := rh.db.GetAll() + keys, err := rh.db.GetAll(appmgrSdlNs) if err != nil { appmgr.Logger.Error("DB.session.GetAll failed: %v ", err.Error()) return } for _, key := range keys { - value, err := rh.db.Get([]string{key}) + value, err := rh.db.Get(appmgrSdlNs, []string{key}) if err != nil { appmgr.Logger.Error("DB.session.Get failed: %v ", err.Error()) return @@ -228,7 +233,7 @@ func (rh *Resthook) RestoreSubscriptions() (m cmap.ConcurrentMap) { func (rh *Resthook) VerifyDBConnection() { // Test DB connection, and wait until ready! for { - if _, err := rh.db.GetAll(); err == nil { + if _, err := rh.db.GetAll(appmgrSdlNs); err == nil { return } appmgr.Logger.Error("Database connection not ready, waiting ...") @@ -237,7 +242,7 @@ func (rh *Resthook) VerifyDBConnection() { } func (rh *Resthook) FlushSubscriptions() { - rh.db.RemoveAll() + rh.db.RemoveAll(appmgrSdlNs) rh.subscriptions = cmap.New() } @@ -252,7 +257,7 @@ func (rh *Resthook) UpdateAppData(params models.RegisterRequest, updateflag bool params.Config = "" } - value, err := rh.db2.Get([]string{"endpoints"}) + value, err := rh.db.Get(appDbSdlNs, []string{"endpoints"}) if err != nil { appmgr.Logger.Error("DB.session.Get failed: %v ", err.Error()) return @@ -269,7 +274,7 @@ func (rh *Resthook) UpdateAppData(params models.RegisterRequest, updateflag bool for i, _ := range newstring { if len(newstring) == 1 && strings.Contains(newstring[i], *params.HTTPEndpoint) { appmgr.Logger.Info("Removing Key %s", *params.HTTPEndpoint) - rh.db2.Remove([]string{"endpoints"}) + rh.db.Remove(appDbSdlNs, []string{"endpoints"}) dbflag = true break } @@ -281,7 +286,7 @@ func (rh *Resthook) UpdateAppData(params models.RegisterRequest, updateflag bool appsindb = append(appsindb, newstring[i]) data = strings.Join(appsindb, " ") } - rh.db2.Set("endpoints", strings.TrimSpace(data)) + rh.db.Set(appDbSdlNs, "endpoints", strings.TrimSpace(data)) } if dbflag == false { @@ -292,12 +297,12 @@ func (rh *Resthook) UpdateAppData(params models.RegisterRequest, updateflag bool } appsindb = append(appsindb, string(xappData)) data = strings.Join(appsindb, " ") - rh.db2.Set("endpoints", strings.TrimSpace(data)) + rh.db.Set(appDbSdlNs, "endpoints", strings.TrimSpace(data)) } } func (rh *Resthook) GetAppsInSDL() *string { - value, err := rh.db2.Get([]string{"endpoints"}) + value, err := rh.db.Get(appDbSdlNs, []string{"endpoints"}) if err != nil { appmgr.Logger.Error("DB.session.Get failed: %v ", err.Error()) return nil diff --git a/pkg/resthooks/resthooks_test.go b/pkg/resthooks/resthooks_test.go index d2120c2..df66a83 100755 --- a/pkg/resthooks/resthooks_test.go +++ b/pkg/resthooks/resthooks_test.go @@ -29,9 +29,9 @@ import ( "net/http" "net/http/httptest" "os" - "time" "strconv" "testing" + "time" "gerrit.o-ran-sc.org/r/ric-plt/appmgr/pkg/appmgr" "gerrit.o-ran-sc.org/r/ric-plt/appmgr/pkg/models" @@ -40,7 +40,6 @@ import ( var rh *Resthook var resp models.SubscriptionResponse var mockedSdl *SdlMock -var mockedSdl2 *SdlMock // Test cases func TestMain(m *testing.M) { @@ -48,9 +47,8 @@ func TestMain(m *testing.M) { appmgr.Logger.SetLevel(0) mockedSdl = new(SdlMock) - mockedSdl2 = new(SdlMock) NewResthook(false) - rh = createResthook(false, mockedSdl,mockedSdl2) + rh = createResthook(false, mockedSdl) code := m.Run() os.Exit(code) } @@ -74,7 +72,7 @@ func TestAddSubscriptionExists(t *testing.T) { func TestDeletesubscriptionSuccess(t *testing.T) { var mockSdlRetOk error - mockedSdl.On("Set", mock.Anything).Return(mockSdlRetOk) + mockedSdl.On("Set", appmgrSdlNs, mock.Anything).Return(mockSdlRetOk) resp := rh.AddSubscription(createSubscription(models.EventTypeDeleted, int64(5), int64(10), "http://localhost:8087/xapps_hook2")) assert.Equal(t, resp.Version, int64(0)) assert.Equal(t, resp.EventType, models.EventTypeDeleted) @@ -205,7 +203,6 @@ func TestNotifyReturnsErrorAfterRetriesIfNoHttpServer(t *testing.T) { func TestRestoreSubscriptionsSuccess(t *testing.T) { var mockSdlRetOk error mSdl := new(SdlMock) - mSdl2 := new(SdlMock) key := "key-1" subsReq := createSubscription(models.EventTypeCreated, int64(5), int64(10), "http://localhost:8087/xapps_hook") @@ -215,9 +212,9 @@ func TestRestoreSubscriptionsSuccess(t *testing.T) { mockSdlGetRetVal := make(map[string]interface{}) //Cast data to string to act like a real SDL/Redis client mockSdlGetRetVal[key] = string(serializedSubsReq) - mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice() - mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetOk).Once() - restHook := createResthook(true, mSdl,mSdl2) + mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice() + mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetOk).Once() + restHook := createResthook(true, mSdl) val, found := restHook.subscriptions.Get(key) assert.True(t, found) @@ -227,9 +224,8 @@ func TestRestoreSubscriptionsSuccess(t *testing.T) { func TestRestoreSubscriptionsFailsIfSdlGetAllFails(t *testing.T) { var mockSdlRetStatus error mSdl := new(SdlMock) - mSdl2 := new(SdlMock) getCalled := 0 - mGetAllCall := mSdl.On("GetAll") + mGetAllCall := mSdl.On("GetAll", appmgrSdlNs) mGetAllCall.RunFn = func(args mock.Arguments) { if getCalled > 0 { mockSdlRetStatus = errors.New("some SDL error") @@ -238,14 +234,13 @@ func TestRestoreSubscriptionsFailsIfSdlGetAllFails(t *testing.T) { mGetAllCall.ReturnArguments = mock.Arguments{[]string{}, mockSdlRetStatus} } - restHook := createResthook(true, mSdl,mSdl2) + restHook := createResthook(true, mSdl) assert.Equal(t, 0, len(restHook.subscriptions.Items())) } func TestRestoreSubscriptionsFailsIfSdlGetFails(t *testing.T) { var mockSdlRetOk error mSdl := new(SdlMock) - mSdl2 := new(SdlMock) mockSdlRetNok := errors.New("some SDL error") key := "key-1" subsReq := createSubscription(models.EventTypeCreated, int64(5), int64(10), "http://localhost:8087/xapps_hook") @@ -255,16 +250,16 @@ func TestRestoreSubscriptionsFailsIfSdlGetFails(t *testing.T) { mockSdlGetRetVal := make(map[string]interface{}) mockSdlGetRetVal[key] = serializedSubsReq - mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice() - mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() + mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice() + mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() - restHook := createResthook(true, mSdl,mSdl2) + restHook := createResthook(true, mSdl) assert.Equal(t, 0, len(restHook.subscriptions.Items())) } func TestTeardown(t *testing.T) { var mockSdlRetOk error - mockedSdl.On("RemoveAll").Return(mockSdlRetOk).Once() + mockedSdl.On("RemoveAll", appmgrSdlNs).Return(mockSdlRetOk).Once() rh.FlushSubscriptions() } @@ -281,7 +276,6 @@ func TestUpdateAppDataFail2(t *testing.T) { var params models.RegisterRequest mSdl := new(SdlMock) - mSdl2 := new(SdlMock) mockSdlRetNok := errors.New("some SDL error") var tEndpoint1 string = "10.104.237.59:8087" params.HTTPEndpoint = &tEndpoint1 @@ -301,13 +295,13 @@ func TestUpdateAppDataFail2(t *testing.T) { mockSdlGetRetVal2 := make(map[string]interface{}) mockSdlGetRetVal2[value] = serializedSubsReq2 - mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice() - mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() - mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal2, mockSdlRetOk).Once() + mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice() + mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() + mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal2, mockSdlRetOk).Once() - restHook := createResthook(false, mSdl,mSdl2) + restHook := createResthook(false, mSdl) - mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal2, mockSdlRetOk).Once() + mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal2, mockSdlRetOk).Once() ret := restHook.GetAppsInSDL() if ret == nil { @@ -320,7 +314,6 @@ func TestGetAppsInSDLFail3(t *testing.T) { var params models.RegisterRequest mSdl := new(SdlMock) - mSdl2 := new(SdlMock) mockSdlRetNok := errors.New("some SDL error") serializedSubsReq1, err := json.Marshal(params) @@ -340,17 +333,17 @@ func TestGetAppsInSDLFail3(t *testing.T) { mockSdlGetRetVal1 := make(map[string]interface{}) mockSdlGetRetVal1[key] = serializedSubsReq1 - mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice() - mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() - mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() + mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice() + mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() + mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() - restHook := createResthook(false, mSdl,mSdl2) + restHook := createResthook(false, mSdl) - mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() + mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() ret2 := restHook.GetAppsInSDL() if ret2 != nil { - t.Logf("SDL Returning: %s \n",*ret2) - }else{ + t.Logf("SDL Returning: %s \n", *ret2) + } else { assert.Nil(t, ret2) } } @@ -360,7 +353,6 @@ func TestUpdateAppDataSucc(t *testing.T) { var params models.RegisterRequest mSdl := new(SdlMock) - mSdl2 := new(SdlMock) mockSdlRetNok := errors.New("some SDL error") var tEndpoint1 string = "10.104.237.59:8087" @@ -381,14 +373,14 @@ func TestUpdateAppDataSucc(t *testing.T) { mockSdlGetRetVal1 := make(map[string]interface{}) mockSdlGetRetVal1[key] = serializedSubsReq1 - mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice() - mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() - mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() + mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice() + mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() + mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() - restHook := createResthook(false, mSdl,mSdl2) + restHook := createResthook(false, mSdl) - mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() - mSdl2.On("Set", mock.Anything).Return(mockSdlRetOk) + mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() + mSdl.On("Set", appDbSdlNs, mock.Anything).Return(mockSdlRetOk) restHook.UpdateAppData(params, true) } @@ -397,12 +389,11 @@ func TestUpdateAppDataSucc1(t *testing.T) { var params models.RegisterRequest mSdl := new(SdlMock) - mSdl2 := new(SdlMock) mockSdlRetNok := errors.New("some SDL error") var tEndpoint1 string = "10.104.237.59:8087" params.HTTPEndpoint = &tEndpoint1 - appsindb := []string{ "10.104.237.59:8088 " , " ", " "," 10.104.237.59:8087"} + appsindb := []string{"10.104.237.59:8088 ", " ", " ", " 10.104.237.59:8087"} serializedSubsReq1, err := json.Marshal(appsindb) if err != nil { t.Logf("error in marshal .. %v", err) @@ -419,27 +410,25 @@ func TestUpdateAppDataSucc1(t *testing.T) { mockSdlGetRetVal1 := make(map[string]interface{}) mockSdlGetRetVal1[value] = serializedSubsReq1 - mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice() - mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() - mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() + mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice() + mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() + mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() - restHook := createResthook(false, mSdl,mSdl2) + restHook := createResthook(false, mSdl) - mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() - mSdl2.On("Set", []string{value}).Return(mockSdlRetOk).Twice() + mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() + mSdl.On("Set", appDbSdlNs, []string{value}).Return(mockSdlRetOk).Twice() - mSdl2.On("Remove").Return(mockSdlRetOk) - mSdl2.On("Set", mock.Anything).Return(mockSdlRetOk) + mSdl.On("Remove", appDbSdlNs, mock.Anything).Return(mockSdlRetOk) + mSdl.On("Set", appDbSdlNs, mock.Anything).Return(mockSdlRetOk) restHook.UpdateAppData(params, true) } - func TestUpdateAppDataSucc2(t *testing.T) { var mockSdlRetOk error var params models.RegisterRequest mSdl := new(SdlMock) - mSdl2 := new(SdlMock) mockSdlRetNok := errors.New("some SDL error") var tEndpoint1 string = "10.104.237.59:8087" @@ -461,17 +450,17 @@ func TestUpdateAppDataSucc2(t *testing.T) { mockSdlGetRetVal1 := make(map[string]interface{}) mockSdlGetRetVal1[value] = serializedSubsReq1 - mSdl.On("GetAll").Return([]string{key}, mockSdlRetOk).Twice() - mSdl.On("Get", []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() - mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() + mSdl.On("GetAll", appmgrSdlNs).Return([]string{key}, mockSdlRetOk).Twice() + mSdl.On("Get", appmgrSdlNs, []string{key}).Return(mockSdlGetRetVal, mockSdlRetNok).Once() + mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() - restHook := createResthook(false, mSdl,mSdl2) + restHook := createResthook(false, mSdl) - mSdl2.On("Get", []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() - mSdl2.On("Set", []string{value}).Return(mockSdlRetOk).Twice() + mSdl.On("Get", appDbSdlNs, []string{value}).Return(mockSdlGetRetVal1, mockSdlRetOk).Once() + mSdl.On("Set", appDbSdlNs, []string{value}).Return(mockSdlRetOk).Twice() - mSdl2.On("Remove").Return(mockSdlRetOk) - mSdl2.On("Set", mock.Anything).Return(mockSdlRetOk) + mSdl.On("Remove", appDbSdlNs, mock.Anything).Return(mockSdlRetOk) + mSdl.On("Set", appDbSdlNs, mock.Anything).Return(mockSdlRetOk) restHook.UpdateAppData(params, true) } func createSubscription(et models.EventType, maxRetries, retryTimer int64, targetUrl string) models.SubscriptionRequest { @@ -503,7 +492,7 @@ func generateXapp(name, status, ver, iname, istatus, ip, port string) (x models. func flushExistingSubscriptions() { var mockSdlRetOk error - mockedSdl.On("RemoveAll").Return(mockSdlRetOk).Once() + mockedSdl.On("RemoveAll", appmgrSdlNs).Return(mockSdlRetOk).Once() rh.FlushSubscriptions() } @@ -530,9 +519,9 @@ func createHTTPServer(t *testing.T, method, url string, port, status int, respDa func (m *SdlMock) expectDbSet(t *testing.T, subsReq models.SubscriptionRequest, mockRet error) { serializedSubReq, _ := json.Marshal(subsReq) - m.On("Set", mock.Anything).Run( + m.On("Set", appmgrSdlNs, mock.Anything).Run( func(args mock.Arguments) { - sdlKVs := args.Get(0).([]interface{}) + sdlKVs := args.Get(1).([]interface{}) assert.Equal(t, 2, len(sdlKVs)) //Validate that subscription request is set to SDL assert.Equal(t, serializedSubReq, sdlKVs[1]) @@ -548,36 +537,36 @@ func TestPublishSubscription(t *testing.T) { v, ok := rh.subscriptions.Get(resp.ID) assert.True(t, ok) if v == nil { - t.Logf("value : %+v",v) + t.Logf("value : %+v", v) } - rh.PublishSubscription(xapp,models.EventTypeUndeployed) + rh.PublishSubscription(xapp, models.EventTypeUndeployed) } type SdlMock struct { mock.Mock } -func (m *SdlMock) Set(pairs ...interface{}) error { - a := m.Called(pairs) +func (m *SdlMock) Set(ns string, pairs ...interface{}) error { + a := m.Called(ns, pairs) return a.Error(0) } -func (m *SdlMock) Get(keys []string) (map[string]interface{}, error) { - a := m.Called(keys) +func (m *SdlMock) Get(ns string, keys []string) (map[string]interface{}, error) { + a := m.Called(ns, keys) return a.Get(0).(map[string]interface{}), a.Error(1) } -func (m *SdlMock) GetAll() ([]string, error) { - a := m.Called() +func (m *SdlMock) GetAll(ns string) ([]string, error) { + a := m.Called(ns) return a.Get(0).([]string), a.Error(1) } -func (m *SdlMock) RemoveAll() error { - a := m.Called() +func (m *SdlMock) RemoveAll(ns string) error { + a := m.Called(ns) return a.Error(0) } -func (m *SdlMock) Remove(keys []string) error { - a := m.Called() +func (m *SdlMock) Remove(ns string, keys []string) error { + a := m.Called(ns) return a.Error(0) } diff --git a/pkg/resthooks/types.go b/pkg/resthooks/types.go index 1376500..881c0e3 100755 --- a/pkg/resthooks/types.go +++ b/pkg/resthooks/types.go @@ -36,7 +36,6 @@ type Resthook struct { client *http.Client subscriptions cmap.ConcurrentMap db iSdl - db2 iSdl Seq int64 } @@ -49,9 +48,9 @@ type SubscriptionNotification struct { } type iSdl interface { - Set(pairs ...interface{}) error - Get(keys []string) (map[string]interface{}, error) - GetAll() ([]string, error) - RemoveAll() error - Remove([]string) error + Set(ns string, pairs ...interface{}) error + Get(ns string, keys []string) (map[string]interface{}, error) + GetAll(ns string) ([]string, error) + RemoveAll(ns string) error + Remove(ns string, keys []string) error } -- 2.16.6