[RICPLT-2527] Fix request model of assoc/dissoc and add dissoc all 09/2109/1
authoris005q <idan.shalom@intl.att.com>
Wed, 25 Dec 2019 07:54:25 +0000 (09:54 +0200)
committeris005q <idan.shalom@intl.att.com>
Wed, 25 Dec 2019 07:54:33 +0000 (09:54 +0200)
Change-Id: I1e48844f93cda7e46b3c2ffd6efe1af129967a30
Signed-off-by: is005q <idan.shalom@intl.att.com>
E2Manager/clients/routing_manager_client.go
E2Manager/clients/routing_manager_client_test.go
E2Manager/handlers/httpmsghandlers/setup_request_handler_test.go
E2Manager/managers/e2t_association_manager_test.go
E2Manager/models/routing_manager_e2t_data_list.go [new file with mode: 0644]

index c584f5b..52e9250 100644 (file)
@@ -65,7 +65,7 @@ func (c *RoutingManagerClient) AddE2TInstance(e2tAddress string) error {
 
 func (c *RoutingManagerClient) AssociateRanToE2TInstance(e2tAddress string, ranName string) error {
 
-       data := models.NewRoutingManagerE2TData(e2tAddress, ranName)
+       data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(e2tAddress, ranName)}
        url := c.config.RoutingManager.BaseUrl + AssociateRanToE2TInstanceApiSuffix
 
        return c.PostMessage(data, url)
@@ -73,13 +73,21 @@ func (c *RoutingManagerClient) AssociateRanToE2TInstance(e2tAddress string, ranN
 
 func (c *RoutingManagerClient) DissociateRanE2TInstance(e2tAddress string, ranName string) error {
 
-       data := models.NewRoutingManagerE2TData(e2tAddress, ranName)
+       data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(e2tAddress, ranName)}
        url := c.config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix
 
        return c.PostMessage(data, url)
 }
 
-func (c *RoutingManagerClient) PostMessage(data *models.RoutingManagerE2TData, url string) error {
+func (c *RoutingManagerClient) DissociateAllRans(e2tAddresses []string) error {
+
+       data := mapE2TAddressesToE2DataList(e2tAddresses)
+       url := c.config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix
+
+       return c.PostMessage(data, url)
+}
+
+func (c *RoutingManagerClient) PostMessage(data interface{}, url string) error {
        marshaled, err := json.Marshal(data)
 
        if err != nil {
@@ -105,4 +113,14 @@ func (c *RoutingManagerClient) PostMessage(data *models.RoutingManagerE2TData, u
 
        c.logger.Errorf("[Routing Manager -> E2M] #RoutingManagerClient.PostMessage - failure. http status code: %d", resp.StatusCode)
        return e2managererrors.NewRoutingManagerError()
-}
\ No newline at end of file
+}
+
+func mapE2TAddressesToE2DataList(e2tAddresses []string) models.RoutingManagerE2TDataList {
+       e2tDataList := make(models.RoutingManagerE2TDataList, len(e2tAddresses))
+
+       for i, v := range e2tAddresses {
+               e2tDataList[i] = models.NewRoutingManagerE2TData(v)
+       }
+
+       return e2tDataList
+}
index 2d02cfd..59e6125 100644 (file)
@@ -88,7 +88,7 @@ func TestAddE2TInstanceFailure(t *testing.T) {
 func TestAssociateRanToE2TInstance_Success(t *testing.T) {
        rmClient, httpClientMock, config := initRoutingManagerClientTest(t)
 
-       data := models.NewRoutingManagerE2TData(E2TAddress,RanName)
+       data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)}
        marshaled, _ := json.Marshal(data)
        body := bytes.NewBuffer(marshaled)
        url := config.RoutingManager.BaseUrl + AssociateRanToE2TInstanceApiSuffix
@@ -101,7 +101,7 @@ func TestAssociateRanToE2TInstance_Success(t *testing.T) {
 func TestAssociateRanToE2TInstance_RoutingManagerError(t *testing.T) {
        rmClient, httpClientMock, config := initRoutingManagerClientTest(t)
 
-       data := models.NewRoutingManagerE2TData(E2TAddress,RanName)
+       data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)}
        marshaled, _ := json.Marshal(data)
        body := bytes.NewBuffer(marshaled)
        url := config.RoutingManager.BaseUrl + AssociateRanToE2TInstanceApiSuffix
@@ -113,7 +113,7 @@ func TestAssociateRanToE2TInstance_RoutingManagerError(t *testing.T) {
 func TestAssociateRanToE2TInstance_RoutingManager_400(t *testing.T) {
        rmClient, httpClientMock, config := initRoutingManagerClientTest(t)
 
-       data := models.NewRoutingManagerE2TData(E2TAddress,RanName)
+       data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)}
        marshaled, _ := json.Marshal(data)
        body := bytes.NewBuffer(marshaled)
        url := config.RoutingManager.BaseUrl + AssociateRanToE2TInstanceApiSuffix
@@ -126,7 +126,7 @@ func TestAssociateRanToE2TInstance_RoutingManager_400(t *testing.T) {
 func TestDissociateRanE2TInstance_Success(t *testing.T) {
        rmClient, httpClientMock, config := initRoutingManagerClientTest(t)
 
-       data := models.NewRoutingManagerE2TData(E2TAddress,RanName)
+       data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)}
        marshaled, _ := json.Marshal(data)
        body := bytes.NewBuffer(marshaled)
        url := config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix
@@ -139,7 +139,7 @@ func TestDissociateRanE2TInstance_Success(t *testing.T) {
 func TestDissociateRanE2TInstance_RoutingManagerError(t *testing.T) {
        rmClient, httpClientMock, config := initRoutingManagerClientTest(t)
 
-       data := models.NewRoutingManagerE2TData(E2TAddress,RanName)
+       data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)}
        marshaled, _ := json.Marshal(data)
        body := bytes.NewBuffer(marshaled)
        url := config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix
@@ -151,7 +151,7 @@ func TestDissociateRanE2TInstance_RoutingManagerError(t *testing.T) {
 func TestDissociateRanE2TInstance_RoutingManager_400(t *testing.T) {
        rmClient, httpClientMock, config := initRoutingManagerClientTest(t)
 
-       data := models.NewRoutingManagerE2TData(E2TAddress,RanName)
+       data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress,RanName)}
        marshaled, _ := json.Marshal(data)
        body := bytes.NewBuffer(marshaled)
        url := config.RoutingManager.BaseUrl + DissociateRanE2TInstanceApiSuffix
index 2fc1c5c..7586791 100644 (file)
@@ -88,7 +88,7 @@ func initSetupRequestTestBasicMocks(t *testing.T, protocol entities.E2Applicatio
 }
 
 func mockHttpClientAssociateRan(httpClientMock *mocks.HttpClientMock) {
-       data := models.NewRoutingManagerE2TData(E2TAddress, RanName)
+       data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress, RanName)}
        marshaled, _ := json.Marshal(data)
        body := bytes.NewBuffer(marshaled)
        url := BaseRMUrl + clients.AssociateRanToE2TInstanceApiSuffix
index 75cfb3b..6754a3b 100644 (file)
@@ -57,7 +57,7 @@ func initE2TAssociationManagerTest(t *testing.T) (*E2TAssociationManager, *mocks
 }
 
 func mockHttpClientAssociateRan(httpClientMock *mocks.HttpClientMock, isSuccessful bool) {
-       data := models.NewRoutingManagerE2TData(E2TAddress, RanName)
+       data := models.RoutingManagerE2TDataList{models.NewRoutingManagerE2TData(E2TAddress, RanName)}
        marshaled, _ := json.Marshal(data)
        body := bytes.NewBuffer(marshaled)
        url := BaseRMUrl + clients.AssociateRanToE2TInstanceApiSuffix
diff --git a/E2Manager/models/routing_manager_e2t_data_list.go b/E2Manager/models/routing_manager_e2t_data_list.go
new file mode 100644 (file)
index 0000000..4179d83
--- /dev/null
@@ -0,0 +1,22 @@
+//
+// Copyright 2019 AT&T Intellectual Property
+// Copyright 2019 Nokia
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//  This source code is part of the near-RT RIC (RAN Intelligent Controller)
+//  platform project (RICP).
+
+package models
+
+type RoutingManagerE2TDataList []*RoutingManagerE2TData