4 "gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
5 "github.com/go-openapi/loads"
6 "github.com/go-openapi/runtime/middleware"
9 "routing-manager/pkg/nbi"
10 "routing-manager/pkg/restapi"
11 "routing-manager/pkg/restapi/operations"
12 "routing-manager/pkg/restapi/operations/debug"
13 "routing-manager/pkg/restapi/operations/handle"
17 func LaunchRest(nbiif string) {
18 swaggerSpec, err := loads.Embedded(restapi.SwaggerJSON, restapi.FlatSwaggerJSON)
21 xapp.Logger.Error(err.Error())
24 nbiUrl, err := url.Parse(nbiif)
26 xapp.Logger.Error(err.Error())
29 api := operations.NewRoutingManagerAPI(swaggerSpec)
30 server := restapi.NewServer(api)
31 defer server.Shutdown()
33 server.Port, err = strconv.Atoi(nbiUrl.Port())
35 xapp.Logger.Error("Invalid NBI RestAPI port")
38 server.Host = "0.0.0.0"
40 api.HandleProvideXappHandleHandler = handle.ProvideXappHandleHandlerFunc(
41 func(params handle.ProvideXappHandleParams) middleware.Responder {
42 xapp.Logger.Info("Data received on Http interface")
43 err := nbi.ProvideXappHandleHandlerImpl(params.XappCallbackData)
45 xapp.Logger.Error("RoutingManager->AppManager request Failed: " + err.Error())
46 return handle.NewProvideXappHandleBadRequest()
48 xapp.Logger.Info("RoutingManager->AppManager request Success")
49 return handle.NewGetHandlesOK()
52 api.HandleProvideXappSubscriptionHandleHandler = handle.ProvideXappSubscriptionHandleHandlerFunc(
53 func(params handle.ProvideXappSubscriptionHandleParams) middleware.Responder {
54 err := nbi.ProvideXappSubscriptionHandleImpl(params.XappSubscriptionData)
56 xapp.Logger.Error("RoutingManager->SubManager Add Request Failed: " + err.Error())
57 return handle.NewProvideXappSubscriptionHandleBadRequest()
59 xapp.Logger.Info("RoutingManager->SubManager Add Request Success, subid = %v, requestor = %v", *params. XappSubscriptionData.SubscriptionID, *params.XappSubscriptionData.Address)
60 return handle.NewGetHandlesOK()
63 api.HandleDeleteXappSubscriptionHandleHandler = handle.DeleteXappSubscriptionHandleHandlerFunc(
64 func(params handle.DeleteXappSubscriptionHandleParams) middleware.Responder {
65 err := nbi.DeleteXappSubscriptionHandleImpl(params.XappSubscriptionData)
67 xapp.Logger.Error("RoutingManager->SubManager Delete Request Failed: " + err.Error())
68 return handle.NewDeleteXappSubscriptionHandleNoContent()
70 xapp.Logger.Info("RoutingManager->SubManager Delete Request Success, subid = %v, requestor = %v", *params. XappSubscriptionData.SubscriptionID, *params.XappSubscriptionData.Address)
71 return handle.NewGetHandlesOK()
74 api.HandleUpdateXappSubscriptionHandleHandler = handle.UpdateXappSubscriptionHandleHandlerFunc(
75 func(params handle.UpdateXappSubscriptionHandleParams) middleware.Responder {
76 err := nbi.UpdateXappSubscriptionHandleImpl(¶ms.XappList, params.SubscriptionID)
78 return handle.NewUpdateXappSubscriptionHandleBadRequest()
80 return handle.NewUpdateXappSubscriptionHandleCreated()
83 api.HandleCreateNewE2tHandleHandler = handle.CreateNewE2tHandleHandlerFunc(
84 func(params handle.CreateNewE2tHandleParams) middleware.Responder {
85 err := nbi.CreateNewE2tHandleHandlerImpl(params.E2tData)
87 xapp.Logger.Error("RoutingManager->E2Manager AddE2T Request Failed: " + err.Error())
88 return handle.NewCreateNewE2tHandleBadRequest()
90 xapp.Logger.Info("RoutingManager->E2Manager AddE2T Request Success, E2T = %v", *params.E2tData.E2TAddress)
91 return handle.NewCreateNewE2tHandleCreated()
95 api.HandleAssociateRanToE2tHandleHandler = handle.AssociateRanToE2tHandleHandlerFunc(
96 func(params handle.AssociateRanToE2tHandleParams) middleware.Responder {
97 err := nbi.AssociateRanToE2THandlerImpl(params.RanE2tList)
99 xapp.Logger.Error("RoutingManager->E2Manager associateRanToE2T Request Failed: " + err.Error())
100 return handle.NewAssociateRanToE2tHandleBadRequest()
102 xapp.Logger.Info("RoutingManager->E2Manager associateRanToE2T Request Success, E2T = %v", params.RanE2tList)
103 return handle.NewAssociateRanToE2tHandleCreated()
107 api.HandleDissociateRanHandler = handle.DissociateRanHandlerFunc(
108 func(params handle.DissociateRanParams) middleware.Responder {
109 err := nbi.DisassociateRanToE2THandlerImpl(params.DissociateList)
111 xapp.Logger.Error("RoutingManager->E2Manager DisassociateRanToE2T Request Failed: " + err.Error())
112 return handle.NewDissociateRanBadRequest()
114 xapp.Logger.Info("RoutingManager->E2Manager DisassociateRanToE2T Request Success, E2T = %v", params.DissociateList)
115 return handle.NewDissociateRanCreated()
118 api.HandleDeleteE2tHandleHandler = handle.DeleteE2tHandleHandlerFunc(
119 func(params handle.DeleteE2tHandleParams) middleware.Responder {
120 err := nbi.DeleteE2tHandleHandlerImpl(params.E2tData)
122 xapp.Logger.Error("RoutingManager->E2Manager DeleteE2T Request Failed: " + err.Error())
123 return handle.NewDeleteE2tHandleBadRequest()
125 xapp.Logger.Info("RoutingManager->E2Manager DeleteE2T Request Success, E2T = %v", *params.E2tData.E2TAddress)
126 return handle.NewDeleteE2tHandleCreated()
129 api.DebugGetDebuginfoHandler = debug.GetDebuginfoHandlerFunc(
130 func(params debug.GetDebuginfoParams) middleware.Responder {
131 response, err := nbi.DumpDebugData()
133 return debug.NewGetDebuginfoCreated()
135 return debug.NewGetDebuginfoOK().WithPayload(&response)
138 api.HandleAddRmrRouteHandler = handle.AddRmrRouteHandlerFunc(
139 func(params handle.AddRmrRouteParams) middleware.Responder {
140 err := nbi.Adddelrmrroute(params.RoutesList, true)
142 return handle.NewAddRmrRouteBadRequest()
144 return handle.NewAddRmrRouteCreated()
148 api.HandleDelRmrRouteHandler = handle.DelRmrRouteHandlerFunc(
149 func(params handle.DelRmrRouteParams) middleware.Responder {
150 err := nbi.Adddelrmrroute(params.RoutesList, false)
152 return handle.NewDelRmrRouteBadRequest()
154 return handle.NewDelRmrRouteCreated()
158 // start to serve API
159 xapp.Logger.Info("Starting the HTTP Rest service")
160 if err := server.Serve(); err != nil {
161 xapp.Logger.Error(err.Error())