"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
)
+const e2SubSdlNs = "submgr_e2SubsDb"
+
type SubscriptionInfo struct {
- Valid bool
- ReqId RequestId
- Meid xapp.RMRMeid
- EpList xapp.RmrEndpointList
- SubReqMsg e2ap.E2APSubscriptionRequest
- SubRespMsg e2ap.E2APSubscriptionResponse
- SubRespRcvd string
+ Valid bool
+ ReqId RequestId
+ Meid xapp.RMRMeid
+ EpList xapp.RmrEndpointList
+ SubReqMsg e2ap.E2APSubscriptionRequest
+ SubRespMsg e2ap.E2APSubscriptionResponse
+ SubRespRcvd string
+ PolicyUpdate bool
}
func CreateSdl() Sdlnterface {
- return sdl.NewSdlInstance("submgr_e2SubsDb", sdl.NewDatabase())
+ return sdl.NewSyncStorage()
}
func (c *Control) WriteSubscriptionToSdl(subId uint32, subs *Subscription) error {
subscriptionInfo.Meid = *subs.Meid
subscriptionInfo.EpList = subs.EpList
subscriptionInfo.SubReqMsg = *subs.SubReqMsg
+ subscriptionInfo.PolicyUpdate = subs.PolicyUpdate
if typeofSubsMessage(subs.SubRFMsg) == "SubResp" {
subscriptionInfo.SubRespRcvd = "SubResp"
return fmt.Errorf("SDL: WriteSubscriptionToSdl() json.Marshal error: %s", err.Error())
}
- if err = c.e2SubsDb.Set(strconv.FormatUint(uint64(subId), 10), jsonData); err != nil {
+ if err = c.e2SubsDb.Set(e2SubSdlNs, strconv.FormatUint(uint64(subId), 10), jsonData); err != nil {
c.UpdateCounter(cSDLWriteFailure)
return fmt.Errorf("SDL: WriteSubscriptionToSdl(): %s", err.Error())
} else {
// This function is now just for testing purpose
key := strconv.FormatUint(uint64(subId), 10)
- retMap, err := c.e2SubsDb.Get([]string{key})
+ retMap, err := c.e2SubsDb.Get(e2SubSdlNs, []string{key})
if err != nil {
c.UpdateCounter(cSDLReadFailure)
return nil, fmt.Errorf("SDL: ReadSubscriptionFromSdl(): %s", err.Error())
subReq := e2ap.E2APSubscriptionRequest{}
subReq = subscriptionInfo.SubReqMsg
subs.SubReqMsg = &subReq
+ subs.PolicyUpdate = subscriptionInfo.PolicyUpdate
if subscriptionInfo.SubRespRcvd == "SubResp" {
subs.SubRespRcvd = true
func (c *Control) RemoveSubscriptionFromSdl(subId uint32) error {
key := strconv.FormatUint(uint64(subId), 10)
- if err := c.e2SubsDb.Remove([]string{key}); err != nil {
+ if err := c.e2SubsDb.Remove(e2SubSdlNs, []string{key}); err != nil {
return fmt.Errorf("SDL: RemoveSubscriptionfromSdl(): %s\n", err.Error())
} else {
xapp.Logger.Debug("SDL: Subscription removed from e2SubsDb. subId = %v", subId)
retMap := make(map[uint32]*Subscription)
// Get all keys
- keys, err := c.e2SubsDb.GetAll()
+ keys, err := c.e2SubsDb.GetAll(e2SubSdlNs)
if err != nil {
c.UpdateCounter(cSDLReadFailure)
return nil, nil, fmt.Errorf("SDL: ReadAllSubscriptionsFromSdl(), GetAll(). Error while reading E2 subscriptions keys from DBAAS %s\n", err.Error())
}
// Get all subscriptionInfos
- iSubscriptionMap, err := c.e2SubsDb.Get(keys)
+ iSubscriptionMap, err := c.e2SubsDb.Get(e2SubSdlNs, keys)
if err != nil {
c.UpdateCounter(cSDLReadFailure)
return nil, nil, fmt.Errorf("SDL: ReadAllSubscriptionsFromSdl(), Get(): Error while reading E2 subscriptions from DBAAS %s\n", err.Error())
}
func (c *Control) RemoveAllSubscriptionsFromSdl() error {
- if err := c.e2SubsDb.RemoveAll(); err != nil {
+ if err := c.e2SubsDb.RemoveAll(e2SubSdlNs); err != nil {
c.UpdateCounter(cSDLRemoveFailure)
return fmt.Errorf("SDL: RemoveAllSubscriptionsFromSdl(): %s\n", err.Error())
} else {
}
return nil
}
+
+func (c *Control) GetE2KeyCount() (int, error) {
+
+ // Get all keys
+ keys, err := c.e2SubsDb.GetAll(e2SubSdlNs)
+ if err != nil {
+ c.UpdateCounter(cSDLReadFailure)
+ return 0, fmt.Errorf("SDL: GetE2KeyCount(), GetAll(). Error while reading E2 subscriptions keys from DBAAS %s\n", err.Error())
+ }
+ return len(keys), nil
+}