X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fnbi%2Fnbi.go;h=ddbf34739ba0839eddcb48a4ee29af5558b62f6c;hb=380fef30236d9f081dec4cea70dd0b5da5e2b5c4;hp=bb0f48562c7dc7aca9334dd127599d2f046c3622;hpb=92162653c9741f2417d1a36ec1c211d6863d0a68;p=ric-plt%2Frtmgr.git diff --git a/pkg/nbi/nbi.go b/pkg/nbi/nbi.go index bb0f485..ddbf347 100644 --- a/pkg/nbi/nbi.go +++ b/pkg/nbi/nbi.go @@ -14,6 +14,11 @@ 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" - "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 ( - SupportedNbis = []*NbiEngineConfig{ - &NbiEngineConfig{ - Name: "httpGetter", - Version: "v1", - Protocol: "http", - Instance: NewHttpGetter(), + SupportedNbis = []*EngineConfig{ + { + Name: "httpGetter", + Version: "v1", + Protocol: "http", + Instance: NewHttpGetter(), IsAvailable: true, }, - &NbiEngineConfig{ - Name: "httpRESTful", - Version: "v1", - Protocol: "http", - Instance: NewHttpRestful(), + { + Name: "httpRESTful", + Version: "v1", + Protocol: "http", + Instance: NewHttpRestful(), 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 @@ -71,42 +75,45 @@ func GetNbi(nbiName string) (NbiEngine, error) { } 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 { - // 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 { - rtmgr.Logger.Error("Invalid NBI address/port: " + err.Error()) + xapp.Logger.Error("Invalid NBI address/port: " + err.Error()) 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 + } } -