[VOL-4301] onuimage download failure status in case of wrong device-id
Change-Id: I591e98cd91e9ab6da72b9a30d4b6ad2b612ddcbb
diff --git a/VERSION b/VERSION
index 4db4b03..93ea0c9 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.9.3
+2.9.4
diff --git a/rw_core/core/device/manager.go b/rw_core/core/device/manager.go
index 0b34bfb..75435b1 100755
--- a/rw_core/core/device/manager.go
+++ b/rw_core/core/device/manager.go
@@ -1666,22 +1666,46 @@
go func(deviceID string, req *voltha.DeviceImageDownloadRequest, ch chan []*voltha.DeviceImageState) {
agent := dMgr.getDeviceAgent(ctx, deviceID)
if agent == nil {
- logger.Errorw(ctx, "Not-found", log.Fields{"device-id": deviceID})
- ch <- nil
+ logger.Errorw(ctx, "Device-agent-not-found", log.Fields{"device-id": deviceID})
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: req.GetImage().GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_FAILED,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
resp, err := agent.downloadImageToDevice(ctx, req)
if err != nil {
logger.Errorw(ctx, "download-image-to-device-failed", log.Fields{"device-id": deviceID, "error": err})
- ch <- nil
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: req.GetImage().GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_FAILED,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
err = dMgr.validateDeviceImageResponse(resp)
if err != nil {
logger.Errorw(ctx, "download-image-to-device-failed", log.Fields{"device-id": deviceID, "error": err})
- ch <- nil
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: req.GetImage().GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_FAILED,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
ch <- resp.GetDeviceImageStates()
@@ -1713,22 +1737,46 @@
go func(deviceID string, req *voltha.DeviceImageRequest, ch chan []*voltha.DeviceImageState) {
agent := dMgr.getDeviceAgent(ctx, deviceID)
if agent == nil {
- logger.Errorw(ctx, "Not-found", log.Fields{"device-id": deviceID})
- ch <- nil
+ logger.Errorw(ctx, "Device-agent-not-found", log.Fields{"device-id": deviceID})
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
resp, err := agent.getImageStatus(ctx, req)
if err != nil {
logger.Errorw(ctx, "get-image-status-failed", log.Fields{"device-id": deviceID, "error": err})
- ch <- nil
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
err = dMgr.validateDeviceImageResponse(resp)
if err != nil {
logger.Errorw(ctx, "get-image-status-failed", log.Fields{"device-id": deviceID, "error": err})
- ch <- nil
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
ch <- resp.GetDeviceImageStates()
@@ -1760,22 +1808,46 @@
go func(deviceID string, req *voltha.DeviceImageRequest, ch chan []*voltha.DeviceImageState) {
agent := dMgr.getDeviceAgent(ctx, deviceID)
if agent == nil {
- logger.Errorw(ctx, "Not-found", log.Fields{"device-id": deviceID})
- ch <- nil
+ logger.Errorw(ctx, "Device-agent-not-found", log.Fields{"device-id": deviceID})
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
resp, err := agent.abortImageUpgradeToDevice(ctx, req)
if err != nil {
logger.Errorw(ctx, "abort-image-upgrade-to-device-failed", log.Fields{"device-id": deviceID, "error": err})
- ch <- nil
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
err = dMgr.validateDeviceImageResponse(resp)
if err != nil {
logger.Errorw(ctx, "abort-image-upgrade-to-device-failed", log.Fields{"device-id": deviceID, "error": err})
- ch <- nil
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
ch <- resp.GetDeviceImageStates()
@@ -1829,22 +1901,46 @@
go func(deviceID string, req *voltha.DeviceImageRequest, ch chan []*voltha.DeviceImageState) {
agent := dMgr.getDeviceAgent(ctx, deviceID)
if agent == nil {
- logger.Errorw(ctx, "Not-found", log.Fields{"device-id": deviceID})
- ch <- nil
+ logger.Errorw(ctx, "Device-agent-not-found", log.Fields{"device-id": deviceID})
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_ACTIVATION_ABORTED,
+ },
+ }}
return
}
resp, err := agent.activateImageOnDevice(ctx, req)
if err != nil {
logger.Errorw(ctx, "activate-image-failed", log.Fields{"device-id": deviceID, "error": err})
- ch <- nil
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_ACTIVATION_ABORTED,
+ },
+ }}
return
}
err = dMgr.validateDeviceImageResponse(resp)
if err != nil {
logger.Errorw(ctx, "activate-image-failed", log.Fields{"device-id": deviceID, "error": err})
- ch <- nil
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
@@ -1876,22 +1972,46 @@
go func(deviceID string, req *voltha.DeviceImageRequest, ch chan []*voltha.DeviceImageState) {
agent := dMgr.getDeviceAgent(ctx, deviceID)
if agent == nil {
- logger.Errorw(ctx, "Not-found", log.Fields{"device-id": deviceID})
- ch <- nil
+ logger.Errorw(ctx, "Device-agent-not-found", log.Fields{"device-id": deviceID})
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_COMMIT_ABORTED,
+ },
+ }}
return
}
resp, err := agent.commitImage(ctx, req)
if err != nil {
logger.Errorw(ctx, "commit-image-failed", log.Fields{"device-id": deviceID, "error": err})
- ch <- nil
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_COMMIT_ABORTED,
+ },
+ }}
return
}
err = dMgr.validateDeviceImageResponse(resp)
if err != nil {
logger.Errorf(ctx, "commit-image-failed", log.Fields{"device-id": deviceID, "error": err})
- ch <- nil
+ ch <- []*voltha.DeviceImageState{{
+ DeviceId: deviceID,
+ ImageState: &voltha.ImageState{
+ Version: request.GetVersion(),
+ DownloadState: voltha.ImageState_DOWNLOAD_UNKNOWN,
+ Reason: voltha.ImageState_UNKNOWN_ERROR,
+ ImageState: voltha.ImageState_IMAGE_UNKNOWN,
+ },
+ }}
return
}
ch <- resp.GetDeviceImageStates()