RICPLT-2989 Submgr routing manager client code to support multiple endpoints

Change-Id: I0b4931090c06b4cf9a81b766a11162c8a6ebecf4
Signed-off-by: Juha Hyttinen <juha.hyttinen@nokia.com>
diff --git a/pkg/control/subscription.go b/pkg/control/subscription.go
index 4514d00..45c13ec 100644
--- a/pkg/control/subscription.go
+++ b/pkg/control/subscription.go
@@ -20,39 +20,29 @@
 package control
 
 import (
-	"fmt"
 	"gerrit.o-ran-sc.org/r/ric-plt/e2ap/pkg/e2ap"
 	"gerrit.o-ran-sc.org/r/ric-plt/xapp-frame/pkg/xapp"
 	"strconv"
 	"sync"
-	"time"
 )
 
 //-----------------------------------------------------------------------------
 //
 //-----------------------------------------------------------------------------
 type Subscription struct {
-	mutex      sync.Mutex      // Lock
-	registry   *Registry       // Registry
-	Seq        uint16          // SubsId
-	Meid       *xapp.RMRMeid   // Meid/ RanName
-	EpList     RmrEndpointList // Endpoints
-	DelEpList  RmrEndpointList // Endpoints
-	DelSeq     uint64
+	mutex      sync.Mutex                     // Lock
+	registry   *Registry                      // Registry
+	Seq        uint16                         // SubsId
+	Meid       *xapp.RMRMeid                  // Meid/ RanName
+	EpList     RmrEndpointList                // Endpoints
 	TransLock  sync.Mutex                     // Lock transactions, only one executed per time for subs
 	TheTrans   *Transaction                   // Ongoing transaction from xapp
 	SubReqMsg  *e2ap.E2APSubscriptionRequest  // Subscription information
 	SubRespMsg *e2ap.E2APSubscriptionResponse // Subscription information
 }
 
-func (s *Subscription) stringImpl() string {
-	return "subs(" + strconv.FormatUint(uint64(s.Seq), 10) + "/" + s.Meid.RanName + "/" + s.EpList.String() + ")"
-}
-
 func (s *Subscription) String() string {
-	s.mutex.Lock()
-	defer s.mutex.Unlock()
-	return s.stringImpl()
+	return "subs(" + strconv.FormatUint(uint64(s.Seq), 10) + "/" + s.Meid.RanName + "/" + s.EpList.String() + ")"
 }
 
 func (s *Subscription) GetSubId() uint16 {
@@ -70,68 +60,6 @@
 	return nil
 }
 
-func (s *Subscription) AddEndpoint(ep *RmrEndpoint) error {
-	s.mutex.Lock()
-	defer s.mutex.Unlock()
-	if ep == nil {
-		return fmt.Errorf("AddEndpoint no endpoint given")
-	}
-	if s.EpList.AddEndpoint(ep) {
-		s.DelEpList.DelEndpoint(ep)
-		if s.EpList.Size() == 1 {
-			return s.updateRouteImpl(CREATE)
-		}
-		return s.updateRouteImpl(MERGE)
-	}
-	return nil
-}
-
-func (s *Subscription) DelEndpoint(ep *RmrEndpoint) error {
-	s.mutex.Lock()
-	defer s.mutex.Unlock()
-	var err error
-	if ep == nil {
-		return fmt.Errorf("DelEndpoint no endpoint given")
-	}
-	if s.EpList.HasEndpoint(ep) == false {
-		return fmt.Errorf("DelEndpoint endpoint not found")
-	}
-	if s.DelEpList.HasEndpoint(ep) == true {
-		return fmt.Errorf("DelEndpoint endpoint already under del")
-	}
-	s.DelEpList.AddEndpoint(ep)
-	go s.CleanCheck()
-	return err
-}
-
-func (s *Subscription) CleanCheck() {
-	s.mutex.Lock()
-	defer s.mutex.Unlock()
-	s.DelSeq++
-	// Only one clean ongoing
-	if s.DelSeq > 1 {
-		return
-	}
-	var currSeq uint64 = 0
-	// Make sure that routes to be deleted
-	// are not deleted too fast
-	for currSeq < s.DelSeq {
-		currSeq = s.DelSeq
-		s.mutex.Unlock()
-		time.Sleep(5 * time.Second)
-		s.mutex.Lock()
-	}
-	xapp.Logger.Info("DelEndpoint: delete cleaning %s", s.stringImpl())
-	if s.EpList.Size() <= s.DelEpList.Size() {
-		s.updateRouteImpl(DELETE)
-		go s.registry.DelSubscription(s.Seq)
-	} else if s.EpList.DelEndpoints(&s.DelEpList) {
-		s.updateRouteImpl(MERGE)
-	}
-	s.DelSeq = 0
-
-}
-
 func (s *Subscription) IsTransactionReserved() bool {
 	s.mutex.Lock()
 	defer s.mutex.Unlock()
@@ -163,12 +91,3 @@
 	s.mutex.Unlock()
 	s.TransLock.Unlock()
 }
-
-func (s *Subscription) updateRouteImpl(act Action) error {
-	subRouteAction := SubRouteInfo{act, s.EpList, s.Seq}
-	err := s.registry.rtmgrClient.SubscriptionRequestUpdate(subRouteAction)
-	if err != nil {
-		return fmt.Errorf("%s %s", s.stringImpl(), err.Error())
-	}
-	return nil
-}