VOL-3368 Added object+error pair for funtion within error handling. This patch include modification requested for omci_cc send functions.
Change-Id: I2a8ed3123f4a2f3a33ae7a418bd9d1dbabbf103d
diff --git a/internal/pkg/onuadaptercore/mib_download.go b/internal/pkg/onuadaptercore/mib_download.go
index e79abe2..b369766 100644
--- a/internal/pkg/onuadaptercore/mib_download.go
+++ b/internal/pkg/onuadaptercore/mib_download.go
@@ -45,17 +45,40 @@
func (onuDeviceEntry *OnuDeviceEntry) enterCreatingGalState(ctx context.Context, e *fsm.Event) {
logger.Debugw(ctx, "MibDownload FSM", log.Fields{"Tx create::GAL Ethernet Profile in state": e.FSM.Current(), "device-id": onuDeviceEntry.deviceID})
- meInstance := onuDeviceEntry.PDevOmciCC.sendCreateGalEthernetProfile(log.WithSpanFromContext(context.TODO(), ctx), onuDeviceEntry.pOpenOnuAc.omciTimeout, true)
+ meInstance, err := onuDeviceEntry.PDevOmciCC.sendCreateGalEthernetProfile(log.WithSpanFromContext(context.TODO(), ctx), onuDeviceEntry.pOpenOnuAc.omciTimeout, true)
//accept also nil as (error) return value for writing to LastTx
// - this avoids misinterpretation of new received OMCI messages
+ if err != nil {
+ logger.Errorw(ctx, "GalEthernetProfile create failed, aborting MibDownload FSM!",
+ log.Fields{"device-id": onuDeviceEntry.deviceID})
+ pMibDlFsm := onuDeviceEntry.pMibDownloadFsm
+ if pMibDlFsm != nil {
+ go func(a_pAFsm *AdapterFsm) {
+ _ = a_pAFsm.pFsm.Event(dlEvReset)
+ }(pMibDlFsm)
+ }
+ return
+ }
onuDeviceEntry.PDevOmciCC.pLastTxMeInstance = meInstance
}
func (onuDeviceEntry *OnuDeviceEntry) enterSettingOnu2gState(ctx context.Context, e *fsm.Event) {
logger.Debugw(ctx, "MibDownload FSM", log.Fields{"Tx Set::ONU2-G in state": e.FSM.Current(), "device-id": onuDeviceEntry.deviceID})
- meInstance := onuDeviceEntry.PDevOmciCC.sendSetOnu2g(log.WithSpanFromContext(context.TODO(), ctx), onuDeviceEntry.pOpenOnuAc.omciTimeout, true)
+ meInstance, err := onuDeviceEntry.PDevOmciCC.sendSetOnu2g(log.WithSpanFromContext(context.TODO(), ctx),
+ onuDeviceEntry.pOpenOnuAc.omciTimeout, true)
//accept also nil as (error) return value for writing to LastTx
// - this avoids misinterpretation of new received OMCI messages
+ if err != nil {
+ logger.Errorw(ctx, "ONU2-G set failed, aborting MibDownload FSM!",
+ log.Fields{"device-id": onuDeviceEntry.deviceID})
+ pMibDlFsm := onuDeviceEntry.pMibDownloadFsm
+ if pMibDlFsm != nil {
+ go func(a_pAFsm *AdapterFsm) {
+ _ = a_pAFsm.pFsm.Event(dlEvReset)
+ }(pMibDlFsm)
+ }
+ return
+ }
onuDeviceEntry.PDevOmciCC.pLastTxMeInstance = meInstance
}
@@ -243,11 +266,16 @@
"device-id": onuDeviceEntry.deviceID, "for PortNo": uniNo})
//create MBSP
- meInstance := onuDeviceEntry.PDevOmciCC.sendCreateMBServiceProfile(
+ meInstance, err := onuDeviceEntry.PDevOmciCC.sendCreateMBServiceProfile(
log.WithSpanFromContext(context.TODO(), ctx), uniPort, onuDeviceEntry.pOpenOnuAc.omciTimeout, true)
+ if err != nil {
+ logger.Errorw(ctx, "MBServiceProfile create failed, aborting MibDownload FSM!", log.Fields{"device-id": onuDeviceEntry.deviceID})
+ _ = onuDeviceEntry.pMibDownloadFsm.pFsm.Event(dlEvReset)
+ return
+ }
onuDeviceEntry.PDevOmciCC.pLastTxMeInstance = meInstance
//verify response
- err := onuDeviceEntry.waitforOmciResponse(ctx, meInstance)
+ err = onuDeviceEntry.waitforOmciResponse(ctx, meInstance)
if err != nil {
logger.Errorw(ctx, "InitialBridgeSetup failed at MBSP, aborting MIB Download!",
log.Fields{"device-id": onuDeviceEntry.deviceID})
@@ -256,8 +284,14 @@
}
//create MBPCD
- meInstance = onuDeviceEntry.PDevOmciCC.sendCreateMBPConfigData(
+ meInstance, err = onuDeviceEntry.PDevOmciCC.sendCreateMBPConfigData(
log.WithSpanFromContext(context.TODO(), ctx), uniPort, onuDeviceEntry.pOpenOnuAc.omciTimeout, true)
+ if err != nil {
+ logger.Errorw(ctx, "MBPConfigData create failed, aborting MibDownload FSM!",
+ log.Fields{"device-id": onuDeviceEntry.deviceID})
+ _ = onuDeviceEntry.pMibDownloadFsm.pFsm.Event(dlEvReset)
+ return
+ }
onuDeviceEntry.PDevOmciCC.pLastTxMeInstance = meInstance
//verify response
err = onuDeviceEntry.waitforOmciResponse(ctx, meInstance)
@@ -269,8 +303,14 @@
}
//create EVTOCD
- meInstance = onuDeviceEntry.PDevOmciCC.sendCreateEVTOConfigData(
+ meInstance, err = onuDeviceEntry.PDevOmciCC.sendCreateEVTOConfigData(
log.WithSpanFromContext(context.TODO(), ctx), uniPort, onuDeviceEntry.pOpenOnuAc.omciTimeout, true)
+ if err != nil {
+ logger.Errorw(ctx, "EVTOConfigData create failed, aborting MibDownload FSM!",
+ log.Fields{"device-id": onuDeviceEntry.deviceID})
+ _ = onuDeviceEntry.pMibDownloadFsm.pFsm.Event(dlEvReset)
+ return
+ }
onuDeviceEntry.PDevOmciCC.pLastTxMeInstance = meInstance
//verify response
err = onuDeviceEntry.waitforOmciResponse(ctx, meInstance)