var SubDelReqTime time.Duration = 5 * time.Second
type Control struct {
- e2ap *E2ap
- registry *Registry
- rtmgrClient *RtmgrClient
- tracker *Tracker
- timerMap *TimerMap
- rmrSendMutex sync.Mutex
- skipRouteUpdate bool // temp solution to skip routeupdate in unittests
+ e2ap *E2ap
+ registry *Registry
+ rtmgrClient *RtmgrClient
+ tracker *Tracker
+ timerMap *TimerMap
+ rmrSendMutex sync.Mutex
}
type RMRMeid struct {
rtmgrClient := RtmgrClient{client, handle, deleteHandle}
return &Control{e2ap: new(E2ap),
- registry: registry,
- rtmgrClient: &rtmgrClient,
- tracker: tracker,
- timerMap: timerMap,
- skipRouteUpdate: false,
+ registry: registry,
+ rtmgrClient: &rtmgrClient,
+ tracker: tracker,
+ timerMap: timerMap,
}
}
subRouteAction := SubRouteInfo{CREATE, *srcAddr, *srcPort, newSubId}
xapp.Logger.Info("SubReq: Starting routing manager update. SubId: %v, Xid: %s", params.SubId, params.Xid)
- if c.skipRouteUpdate == false {
- err = c.rtmgrClient.SubscriptionRequestUpdate(subRouteAction)
- if err != nil {
- xapp.Logger.Error("SubReq: Failed to update routing manager. Dropping this SubReq msg. Err: %v, SubId: %v, Xid: %s", err, params.SubId, params.Xid)
- return
- }
+ err = c.rtmgrClient.SubscriptionRequestUpdate(subRouteAction)
+ if err != nil {
+ xapp.Logger.Error("SubReq: Failed to update routing manager. Dropping this SubReq msg. Err: %v, SubId: %v, Xid: %s", err, params.SubId, params.Xid)
+ return
}
// Setting new subscription ID in the RMR header
time.Sleep(3 * time.Second)
- if c.skipRouteUpdate == false {
- xapp.Logger.Info("SubFail: Starting routing manager update. SubId: %v, Xid: %s", params.SubId, params.Xid)
- subRouteAction := SubRouteInfo{CREATE, transaction.XappInstanceAddress, transaction.XappPort, payloadSeqNum}
- err = c.rtmgrClient.SubscriptionRequestUpdate(subRouteAction)
- if err != nil {
- xapp.Logger.Error("SubFail: Failed to update routing manager. Err: %v, SubId: %v, Xid: %s", err, params.SubId, params.Xid)
- }
+ xapp.Logger.Info("SubFail: Starting routing manager update. SubId: %v, Xid: %s", params.SubId, params.Xid)
+ subRouteAction := SubRouteInfo{CREATE, transaction.XappInstanceAddress, transaction.XappPort, payloadSeqNum}
+ err = c.rtmgrClient.SubscriptionRequestUpdate(subRouteAction)
+ if err != nil {
+ xapp.Logger.Error("SubFail: Failed to update routing manager. Err: %v, SubId: %v, Xid: %s", err, params.SubId, params.Xid)
}
xapp.Logger.Info("SubFail: Deleting transaction record. SubId: %v, Xid: %s", params.SubId, params.Xid)
time.Sleep(3 * time.Second)
- if c.skipRouteUpdate == false {
- xapp.Logger.Info("SubDelResp: Starting routing manager update. SubId: %v, Xid: %s", params.SubId, params.Xid)
- subRouteAction := SubRouteInfo{DELETE, transaction.XappInstanceAddress, transaction.XappPort, payloadSeqNum}
- err = c.rtmgrClient.SubscriptionRequestUpdate(subRouteAction)
- if err != nil {
- xapp.Logger.Error("SubDelResp: Failed to update routing manager. Err: %v, SubId: %v, Xid: %s", err, params.SubId, params.Xid)
- return
- }
+ xapp.Logger.Info("SubDelResp: Starting routing manager update. SubId: %v, Xid: %s", params.SubId, params.Xid)
+ subRouteAction := SubRouteInfo{DELETE, transaction.XappInstanceAddress, transaction.XappPort, payloadSeqNum}
+ err = c.rtmgrClient.SubscriptionRequestUpdate(subRouteAction)
+ if err != nil {
+ xapp.Logger.Error("SubDelResp: Failed to update routing manager. Err: %v, SubId: %v, Xid: %s", err, params.SubId, params.Xid)
+ return
}
xapp.Logger.Info("SubDelResp: Deleting transaction record. SubId: %v, Xid: %s", params.SubId, params.Xid)
time.Sleep(3 * time.Second)
- if c.skipRouteUpdate == false {
- xapp.Logger.Info("SubDelFail: Starting routing manager update. SubId: %v, Xid: %s", params.SubId, params.Xid)
- subRouteAction := SubRouteInfo{DELETE, transaction.XappInstanceAddress, transaction.XappPort, payloadSeqNum}
- c.rtmgrClient.SubscriptionRequestUpdate(subRouteAction)
- if err != nil {
- xapp.Logger.Error("SubDelFail: Failed to update routing manager. Err: %v, SubId: %v, Xid: %s", err, params.SubId, params.Xid)
- return
- }
+ xapp.Logger.Info("SubDelFail: Starting routing manager update. SubId: %v, Xid: %s", params.SubId, params.Xid)
+ subRouteAction := SubRouteInfo{DELETE, transaction.XappInstanceAddress, transaction.XappPort, payloadSeqNum}
+ c.rtmgrClient.SubscriptionRequestUpdate(subRouteAction)
+ if err != nil {
+ xapp.Logger.Error("SubDelFail: Failed to update routing manager. Err: %v, SubId: %v, Xid: %s", err, params.SubId, params.Xid)
+ return
}
xapp.Logger.Info("SubDelFail: Deleting transaction record. SubId: %v, Xid: %s", params.SubId, params.Xid)
"fmt"
"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
"io/ioutil"
+ "net/http"
"os"
"testing"
"time"
//Cfg creation won't work like this as xapp-frame reads it during init.
//
/*
- cfgstr:=`{
- "local": {
- "host": ":8080"
- },
- "logger": {
- "level": 4
- },
- "rmr": {
- "protPort": "tcp:14560",
- "maxSize": 4096,
- "numWorkers": 1,
- "txMessages": ["RIC_SUB_REQ", "RIC_SUB_DEL_REQ"],
- "rxMessages": ["RIC_SUB_RESP", "RIC_SUB_FAILURE", "RIC_SUB_DEL_RESP", "RIC_SUB_DEL_FAILURE", "RIC_INDICATION"]
- },
- "db": {
- "host": "localhost",
- "port": 6379,
- "namespaces": ["sdl", "rnib"]
- }
- }`
-
- cfgfilename,_ := testCreateTmpFile(cfgstr)
- defer os.Remove(cfgfilename)
- os.Setenv("CFG_FILE", cfgfilename)
+ cfgstr:=`{
+ "local": {
+ "host": ":8080"
+ },
+ "logger": {
+ "level": 4
+ },
+ "rmr": {
+ "protPort": "tcp:14560",
+ "maxSize": 4096,
+ "numWorkers": 1,
+ "txMessages": ["RIC_SUB_REQ", "RIC_SUB_DEL_REQ"],
+ "rxMessages": ["RIC_SUB_RESP", "RIC_SUB_FAILURE", "RIC_SUB_DEL_RESP", "RIC_SUB_DEL_FAILURE", "RIC_INDICATION"]
+ },
+ "db": {
+ "host": "localhost",
+ "port": 6379,
+ "namespaces": ["sdl", "rnib"]
+ },
+ "rtmgr" : {
+ "HostAddr" : "localhost",
+ "port" : "8989",
+ "baseUrl" : "/"
+ }
+ `
+
+ cfgfilename,_ := testCreateTmpFile(cfgstr)
+ defer os.Remove(cfgfilename)
+ os.Setenv("CFG_FILE", cfgfilename)
*/
xapp.Logger.Info("Using cfg file %s", os.Getenv("CFG_FILE"))
os.Setenv("RMR_SRC_ID", "localhost:14560")
c := NewControl()
- c.skipRouteUpdate = true
xapp.SetReadyCB(mainCtrl.ReadyCB, nil)
go xapp.RunWithParams(c, false)
<-mainCtrl.syncChan
defer os.Remove(e2termrtfilename)
e2termConn = createNewRmrControl("e2termConn", e2termrtfilename, "15560", "RMRE2TERMSTUB")
+ //---------------------------------
+ //
+ //---------------------------------
+ http_handler := func(w http.ResponseWriter, r *http.Request) {
+ xapp.Logger.Info("(http handler) handling")
+ w.WriteHeader(200)
+ }
+
+ go func() {
+ http.HandleFunc("/", http_handler)
+ http.ListenAndServe("localhost:8989", nil)
+ }()
+
+ //---------------------------------
+ //
+ //---------------------------------
code := m.Run()
os.Exit(code)
}