added UT's to cover LC:85%
[ric-plt/rtmgr.git] / pkg / nbi / nbi.go
index bb0f485..ddbf347 100644 (file)
    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.
    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).
+
 ==================================================================================
 */
 /*
 ==================================================================================
 */
 /*
@@ -26,42 +31,41 @@ package nbi
 
 import (
        "errors"
 
 import (
        "errors"
-       "routing-manager/pkg/rtmgr"
-        "net/url"
-        apiclient "routing-manager/pkg/appmgr_client"
-        "routing-manager/pkg/appmgr_client/operations"
-        "routing-manager/pkg/appmgr_model"
-        httptransport "github.com/go-openapi/runtime/client"
-        "github.com/go-openapi/strfmt"
-        "github.com/go-openapi/swag"
-        "time"
+       "net/url"
+       apiclient "routing-manager/pkg/appmgr_client"
+       "routing-manager/pkg/appmgr_client/operations"
+       "routing-manager/pkg/appmgr_model"
+       "time"
 
 
+       "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
+       httptransport "github.com/go-openapi/runtime/client"
+       "github.com/go-openapi/strfmt"
+       "github.com/go-openapi/swag"
 )
 
 var (
 )
 
 var (
-       SupportedNbis = []*NbiEngineConfig{
-               &NbiEngineConfig{
-                       Name:     "httpGetter",
-                       Version:  "v1",
-                       Protocol: "http",
-                       Instance: NewHttpGetter(),
+       SupportedNbis = []*EngineConfig{
+               {
+                       Name:        "httpGetter",
+                       Version:     "v1",
+                       Protocol:    "http",
+                       Instance:    NewHttpGetter(),
                        IsAvailable: true,
                },
                        IsAvailable: true,
                },
-               &NbiEngineConfig{
-                       Name:     "httpRESTful",
-                       Version:  "v1",
-                       Protocol: "http",
-                       Instance: NewHttpRestful(),
+               {
+                       Name:        "httpRESTful",
+                       Version:     "v1",
+                       Protocol:    "http",
+                       Instance:    NewHttpRestful(),
                        IsAvailable: true,
                },
        }
 )
 
 type Nbi struct {
                        IsAvailable: true,
                },
        }
 )
 
 type Nbi struct {
-
 }
 
 }
 
-func GetNbi(nbiName string) (NbiEngine, error) {
+func GetNbi(nbiName string) (Engine, error) {
        for _, nbi := range SupportedNbis {
                if nbi.Name == nbiName && nbi.IsAvailable {
                        return nbi.Instance, nil
        for _, nbi := range SupportedNbis {
                if nbi.Name == nbiName && nbi.IsAvailable {
                        return nbi.Instance, nil
@@ -71,42 +75,45 @@ func GetNbi(nbiName string) (NbiEngine, error) {
 }
 
 func CreateSubReq(restUrl string, restPort string) *appmgr_model.SubscriptionRequest {
 }
 
 func CreateSubReq(restUrl string, restPort string) *appmgr_model.SubscriptionRequest {
-       // TODO: parametize function
-        subReq := appmgr_model.SubscriptionRequest{
-                TargetURL:  swag.String(restUrl + ":" + restPort + "/ric/v1/handles/xapp-handle/"),
-                EventType:  swag.String("all"),
-                MaxRetries: swag.Int64(5),
-                RetryTimer: swag.Int64(10),
-        }
-
-        return &subReq
+       // TODO: parameterize function
+       subData := appmgr_model.SubscriptionData{
+               TargetURL:  swag.String(restUrl + ":" + restPort + "/ric/v1/handles/xapp-handle/"),
+               EventType:  appmgr_model.EventTypeAll,
+               MaxRetries: swag.Int64(5),
+               RetryTimer: swag.Int64(10),
+       }
+
+       subReq := appmgr_model.SubscriptionRequest{
+               Data: &subData,
+       }
+
+       return &subReq
 }
 
 func PostSubReq(xmUrl string, nbiif string) error {
 }
 
 func PostSubReq(xmUrl string, nbiif string) error {
-        // setting up POST request to Xapp Manager
-        appmgrUrl, err := url.Parse(xmUrl)
-        if err != nil {
-                rtmgr.Logger.Error("Invalid XApp manager url/hostname: " + err.Error())
-                return err
-        }
+       // setting up POST request to Xapp Manager
+       appmgrUrl, err := url.Parse(xmUrl)
+       if err != nil {
+               xapp.Logger.Error("Invalid XApp manager url/hostname: " + err.Error())
+               return err
+       }
        nbiifUrl, err := url.Parse(nbiif)
        if err != nil {
        nbiifUrl, err := url.Parse(nbiif)
        if err != nil {
-               rtmgr.Logger.Error("Invalid NBI address/port: " + err.Error())
+               xapp.Logger.Error("Invalid NBI address/port: " + err.Error())
                return err
        }
                return err
        }
-        transport := httptransport.New(appmgrUrl.Hostname()+":"+appmgrUrl.Port(), "/ric/v1", []string{"http"})
-        client := apiclient.New(transport, strfmt.Default)
-        addSubParams := operations.NewAddSubscriptionParamsWithTimeout(10 * time.Second)
-        // create sub req with rest url and port
-        subReq := CreateSubReq(nbiifUrl.Hostname(), nbiifUrl.Port())
-        resp, postErr := client.Operations.AddSubscription(addSubParams.WithSubscriptionRequest(subReq))
-        if postErr != nil {
-                rtmgr.Logger.Error("POST unsuccessful:"+postErr.Error())
-                return postErr
-        } else {
-                // TODO: use the received ID
-                rtmgr.Logger.Info("POST received: "+string(resp.Payload.ID))
-                return nil
-        }
+       transport := httptransport.New(appmgrUrl.Hostname()+":"+appmgrUrl.Port(), "/ric/v1", []string{"http"})
+       client := apiclient.New(transport, strfmt.Default)
+       addSubParams := operations.NewAddSubscriptionParamsWithTimeout(10 * time.Second)
+       // create sub req with rest url and port
+       subReq := CreateSubReq(nbiifUrl.Scheme+"://"+nbiifUrl.Hostname(), nbiifUrl.Port())
+       resp, postErr := client.Operations.AddSubscription(addSubParams.WithSubscriptionRequest(subReq))
+       if postErr != nil {
+               xapp.Logger.Error("POST unsuccessful:" + postErr.Error())
+               return postErr
+       } else {
+               // TODO: use the received ID
+               xapp.Logger.Info("POST received: " + string(resp.Payload.ID))
+               return nil
+       }
 }
 }
-