type E2RestIds struct {
RestSubsId string
E2SubsId uint32
+ ErrorCause string
}
func (trans *RmrTransactionId) String() string {
// Callback handler for subscription response notifications
//-----------------------------------------------------------------------------
func (tc *E2Stub) SubscriptionRespHandler(resp *clientmodel.SubscriptionResponse) {
+
if tc.subscriptionId == "SUBSCRIPTIONID NOT SET" {
tc.Info("REST notification received for %v while no SubscriptionID was not set for E2EventInstanceID=%v, XappEventInstanceID=%v (%v)",
*resp.SubscriptionID, *resp.SubscriptionInstances[0].E2EventInstanceID, *resp.SubscriptionInstances[0].XappEventInstanceID, tc)
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
+
func (tc *E2Stub) ExpectRESTNotification(t *testing.T, restSubsId string) {
+ tc.expectNotification(t, restSubsId, "")
+}
+
+func (tc *E2Stub) ExpectRESTNotificationOk(t *testing.T, restSubsId string) {
+ tc.expectNotification(t, restSubsId, "allOk")
+}
+
+func (tc *E2Stub) ExpectRESTNotificationNok(t *testing.T, restSubsId string, expectError string) {
+ tc.expectNotification(t, restSubsId, expectError)
+}
+
+func (tc *E2Stub) expectNotification(t *testing.T, restSubsId string, expectError string) {
tc.Info("### Started to wait REST notification for %v on port %v f(RMR port %v), %v responses expected", restSubsId, *tc.clientEndpoint.HTTPPort, *tc.clientEndpoint.RMRPort, tc.requestCount)
tc.restSubsIdList = []string{restSubsId}
tc.TestError(t, "### REST notification count unexpectedly ZERO for %s (%v)", restSubsId, tc)
} else if e2Ids.RestSubsId != restSubsId {
tc.TestError(t, "### Unexpected REST notifications received |%s:%s| (%v)", e2Ids.RestSubsId, restSubsId, tc)
+ } else if e2Ids.ErrorCause == "" && expectError == "allFail" {
+ tc.TestError(t, "### Unexpected ok cause received from REST notifications |%s:%s| (%v)", e2Ids.RestSubsId, restSubsId, tc)
+ } else if e2Ids.ErrorCause != "" && expectError == "allOk" {
+ tc.TestError(t, "### Unexpected error cause (%s) received from REST notifications |%s:%s| (%v)", e2Ids.ErrorCause, e2Ids.RestSubsId, restSubsId, tc)
} else {
tc.requestCount--
if tc.requestCount == 0 {
} else {
tc.Info("### Expected REST notifications received for %s, (%v)", e2Ids.RestSubsId, tc)
}
+ if e2Ids.ErrorCause != "" && expectError == "allFail" {
+ tc.Info("### REST Notification: %s, ErrorCause: %v", e2Ids.RestSubsId, e2Ids.ErrorCause)
+ }
tc.Info("### REST Notification received Notif for %s : %v", e2Ids.RestSubsId, e2Ids.E2SubsId)
tc.ListedRESTNotifications <- e2Ids
}
tc.restSubsIdList = append(tc.restSubsIdList[:i], tc.restSubsIdList[i+1:]...)
//tc.Info("Removed %s from Listed REST notifications, %v entries left", *resp.SubscriptionID, len(tc.restSubsIdList))
- tc.CallBackListedNotifications <- E2RestIds{*resp.SubscriptionID, uint32(*resp.SubscriptionInstances[0].E2EventInstanceID)}
+ if resp.SubscriptionInstances[0].ErrorCause != nil {
+ tc.CallBackListedNotifications <- E2RestIds{*resp.SubscriptionID, uint32(*resp.SubscriptionInstances[0].E2EventInstanceID), *resp.SubscriptionInstances[0].ErrorCause}
+ } else {
+ tc.CallBackListedNotifications <- E2RestIds{*resp.SubscriptionID, uint32(*resp.SubscriptionInstances[0].E2EventInstanceID), ""}
+ }
if len(tc.restSubsIdList) == 0 {
//tc.Info("All listed REST notifications received for endpoint=%s", tc.clientEndpoint)
return ""
}
- tc.subscriptionId = "SUBSCIPTIONID NOT SET"
+ tc.subscriptionId = "SUBSCRIPTIONID NOT SET"
resp, err := xapp.Subscription.Subscribe(¶ms.SubsReqParams)
if err != nil {
reqId := int64(requestCount) + 1
subscriptionDetail := &clientmodel.SubscriptionDetail{
XappEventInstanceID: &reqId,
- EventTriggers: &clientmodel.EventTriggerDefinition{
- OctetString: "1234" + strconv.Itoa(requestCount),
+ EventTriggers: clientmodel.EventTriggerDefinition{
+ int64(1234 + requestCount),
},
ActionToBeSetupList: clientmodel.ActionsToBeSetup{
&clientmodel.ActionToBeSetup{
ActionID: &actionId,
ActionType: &actionType,
- ActionDefinition: &clientmodel.ActionDefinition{
- OctetString: "5678" + strconv.Itoa(requestCount),
+ ActionDefinition: clientmodel.ActionDefinition{
+ int64(5678 + requestCount),
},
SubsequentAction: &clientmodel.SubsequentAction{
SubsequentActionType: &subsequestActioType,
}
}
-func (p *RESTSubsReqParams) SetSubActionDefinition(actionDefinition string) {
+func (p *RESTSubsReqParams) SetSubActionDefinition(actionDefinition []int64) {
for _, subDetail := range p.SubsReqParams.SubscriptionDetails {
for _, action := range subDetail.ActionToBeSetupList {
if action != nil {
- action.ActionDefinition.OctetString = actionDefinition
+ action.ActionDefinition = actionDefinition
}
}
}
}
-func (p *RESTSubsReqParams) SetSubEventTriggerDefinition(eventTriggerDefinition string) {
+func (p *RESTSubsReqParams) SetSubEventTriggerDefinition(eventTriggerDefinition []int64) {
for _, subDetail := range p.SubsReqParams.SubscriptionDetails {
if subDetail != nil {
- subDetail.EventTriggers.OctetString = eventTriggerDefinition
+ subDetail.EventTriggers = eventTriggerDefinition
}
}
}
-func (p *RESTSubsReqParams) AppendActionToActionToBeSetupList(actionId int64, actionType string, actionDefinition string, subsequentActionType string, timeToWait string) {
+func (p *RESTSubsReqParams) AppendActionToActionToBeSetupList(actionId int64, actionType string, actionDefinition []int64, subsequentActionType string, timeToWait string) {
actionToBeSetup := &clientmodel.ActionToBeSetup{
- ActionID: &actionId,
- ActionType: &actionType,
- ActionDefinition: &clientmodel.ActionDefinition{
- OctetString: actionDefinition,
- },
+ ActionID: &actionId,
+ ActionType: &actionType,
+ ActionDefinition: clientmodel.ActionDefinition(actionDefinition),
SubsequentAction: &clientmodel.SubsequentAction{
SubsequentActionType: &subsequentActionType,
TimeToWait: &timeToWait,
reqId := int64(requestCount) + 1
subscriptionDetail := &clientmodel.SubscriptionDetail{
XappEventInstanceID: &reqId,
- EventTriggers: &clientmodel.EventTriggerDefinition{
- OctetString: "1234" + strconv.Itoa(requestCount),
+ EventTriggers: clientmodel.EventTriggerDefinition{
+ int64(1234 + requestCount),
},
ActionToBeSetupList: clientmodel.ActionsToBeSetup{
&clientmodel.ActionToBeSetup{
ActionID: &actionId,
ActionType: &actionType,
- ActionDefinition: &clientmodel.ActionDefinition{
- OctetString: "5678" + strconv.Itoa(requestCount),
+ ActionDefinition: clientmodel.ActionDefinition{
+ int64(5678 + requestCount),
},
SubsequentAction: &clientmodel.SubsequentAction{
SubsequentActionType: &subsequestActioType,