+
+func updateSubscription(data *rtmgr.XappList) {
+
+ var subdata models.XappSubscriptionData
+ var id int32
+ var matchingsubid, deletecount uint8
+ id = int32(data.SubscriptionID)
+ subdata.SubscriptionID = &id
+ for _, subs := range rtmgr.Subs {
+ if int32(data.SubscriptionID) == subs.SubID {
+ matchingsubid++
+ }
+ }
+
+ for deletecount < matchingsubid {
+ for _, subs := range rtmgr.Subs {
+ if int32(data.SubscriptionID) == subs.SubID {
+ subdata.SubscriptionID = &subs.SubID
+ subdata.Address = &subs.Fqdn
+ subdata.Port = &subs.Port
+ xapp.Logger.Debug("Deletion Subscription List has %v", subdata)
+ delSubscription(&rtmgr.Subs, &subdata)
+ break
+ }
+ }
+ deletecount++
+ }
+
+ for _, items := range data.FqdnList {
+ subdata.Address = items.Address
+ subdata.Port = items.Port
+ xapp.Logger.Debug("Adding Subscription List has %v", subdata)
+ addSubscription(&rtmgr.Subs, &subdata)
+ }
+
+}
+
+func PopulateSubscription(sub_list xfmodel.SubscriptionList) {
+ for _, sub_row := range sub_list {
+ var subdata models.XappSubscriptionData
+ id := int32(sub_row.SubscriptionID)
+ subdata.SubscriptionID = &id
+ for _, ep := range sub_row.Endpoint {
+
+ stringSlice := strings.Split(ep, ":")
+ subdata.Address = &stringSlice[0]
+ intportval, _ := strconv.Atoi( stringSlice[1])
+ value := uint16(intportval)
+ subdata.Port = &value
+ xapp.Logger.Debug("Adding Subscription List has Address :%v, port :%v, SubscriptionID :%v ", subdata.Address, subdata.Address, subdata.SubscriptionID)
+ addSubscription(&rtmgr.Subs, &subdata)
+ }
+ }
+}