SDK: Fix feedback content (#2276)

Signed-off-by: Avgustin Marinov <Avgustin.Marinov@bosch.com>
This commit is contained in:
Avgustin Marinov
2025-02-13 11:44:27 +02:00
committed by GitHub
parent 1e9d105c74
commit c31c832b23
2 changed files with 18 additions and 21 deletions

View File

@@ -263,7 +263,8 @@ public interface UpdateHandler {
throws NoSuchAlgorithmException, IOException { throws NoSuchAlgorithmException, IOException {
final Validator sizeValidator = sizeValidator(size); final Validator sizeValidator = sizeValidator(size);
final Validator hashValidator = hashValidator(hash); final Validator hashValidator = hashValidator(hash);
final ArtifactHandler.DownloadHandler downloadHandler = artifactHandler.getDownloadHandler(link.getHref()); final String href = link.getHref();
final ArtifactHandler.DownloadHandler downloadHandler = artifactHandler.getDownloadHandler(href);
return HawkbitClient.getLink(link, InputStream.class, ddiController.getTenant(), ddiController.getController(), is -> { return HawkbitClient.getLink(link, InputStream.class, ddiController.getTenant(), ddiController.getController(), is -> {
try { try {
final byte[] buff = new byte[32 * 1024]; final byte[] buff = new byte[32 * 1024];
@@ -275,19 +276,19 @@ public interface UpdateHandler {
sizeValidator.validate(); sizeValidator.validate();
hashValidator.validate(); hashValidator.validate();
final String message = "Downloaded " + link + " (" + size + " bytes)"; final String message = "Downloaded " + href + " (" + size + " bytes)";
log.debug(LOG_PREFIX + message, ddiController.getTenantId(), ddiController.getControllerId()); log.debug(LOG_PREFIX + message, ddiController.getTenantId(), ddiController.getControllerId());
downloadHandler.finished(ArtifactHandler.DownloadHandler.Status.SUCCESS); downloadHandler.finished(ArtifactHandler.DownloadHandler.Status.SUCCESS);
downloadHandler.download().ifPresent(path -> downloads.put(link.getHref(), path)); downloadHandler.download().ifPresent(path -> downloads.put(href, path));
return new UpdateStatus(UpdateStatus.Status.SUCCESSFUL, List.of(message)); return new UpdateStatus(UpdateStatus.Status.SUCCESSFUL, List.of(message));
} catch (final Exception e) { } catch (final Exception e) {
final String message = e.getMessage(); final String message = e.getMessage();
if (log.isTraceEnabled()) { if (log.isTraceEnabled()) {
log.error(LOG_PREFIX + DOWNLOAD_LOG_MESSAGE + link + " failed: " + message, log.error(LOG_PREFIX + DOWNLOAD_LOG_MESSAGE + "{} failed: {}",
ddiController.getTenantId(), ddiController.getControllerId(), e); ddiController.getTenantId(), ddiController.getControllerId(), href, message, e);
} else { } else {
log.error(LOG_PREFIX + DOWNLOAD_LOG_MESSAGE + link + " failed: " + message, log.error(LOG_PREFIX + DOWNLOAD_LOG_MESSAGE + "{} failed: {}" + message,
ddiController.getTenantId(), ddiController.getControllerId()); ddiController.getTenantId(), ddiController.getControllerId(), href, message);
} }
downloadHandler.finished(ArtifactHandler.DownloadHandler.Status.ERROR); downloadHandler.finished(ArtifactHandler.DownloadHandler.Status.ERROR);
return new UpdateStatus(UpdateStatus.Status.FAILURE, List.of(message)); return new UpdateStatus(UpdateStatus.Status.FAILURE, List.of(message));

View File

@@ -89,12 +89,8 @@ public interface UpdateHandler {
try { try {
final UpdateStatus updateStatus = download(); final UpdateStatus updateStatus = download();
dmfController.sendFeedback(updateStatus); dmfController.sendFeedback(updateStatus);
if (updateStatus.status() == DmfActionStatus.ERROR) { if (updateStatus.status() != DmfActionStatus.ERROR && eventTopic != EventTopic.DOWNLOAD) {
return; dmfController.sendFeedback(update());
} else {
if (eventTopic != EventTopic.DOWNLOAD) {
dmfController.sendFeedback(update());
}
} }
} finally { } finally {
cleanup(); cleanup();
@@ -267,8 +263,8 @@ public interface UpdateHandler {
throws NoSuchAlgorithmException, IOException { throws NoSuchAlgorithmException, IOException {
final Validator sizeValidator = sizeValidator(size); final Validator sizeValidator = sizeValidator(size);
final Validator hashValidator = hashValidator(hash); final Validator hashValidator = hashValidator(hash);
final ArtifactHandler.DownloadHandler downloadHandler = artifactHandler.getDownloadHandler(link.getHref()); final String href = link.getHref();
final ArtifactHandler.DownloadHandler downloadHandler = artifactHandler.getDownloadHandler(href);
return HawkbitClient.getLink(link, InputStream.class, dmfController.getTenant(), dmfController.getController(), is -> { return HawkbitClient.getLink(link, InputStream.class, dmfController.getTenant(), dmfController.getController(), is -> {
try { try {
final byte[] buff = new byte[32 * 1024]; final byte[] buff = new byte[32 * 1024];
@@ -280,19 +276,19 @@ public interface UpdateHandler {
sizeValidator.validate(); sizeValidator.validate();
hashValidator.validate(); hashValidator.validate();
final String message = "Downloaded " + link + " (" + size + " bytes)"; final String message = "Downloaded " + href + " (" + size + " bytes)";
log.debug(LOG_PREFIX + message, dmfController.getTenant().getTenantId(), dmfController.getControllerId()); log.debug(LOG_PREFIX + message, dmfController.getTenant().getTenantId(), dmfController.getControllerId());
downloadHandler.finished(ArtifactHandler.DownloadHandler.Status.SUCCESS); downloadHandler.finished(ArtifactHandler.DownloadHandler.Status.SUCCESS);
downloadHandler.download().ifPresent(path -> downloads.put(link.getHref(), path)); downloadHandler.download().ifPresent(path -> downloads.put(href, path));
return new UpdateStatus(DmfActionStatus.FINISHED, List.of(message)); return new UpdateStatus(DmfActionStatus.FINISHED, List.of(message));
} catch (final Exception e) { } catch (final Exception e) {
final String message = e.getMessage(); final String message = e.getMessage();
if (log.isTraceEnabled()) { if (log.isTraceEnabled()) {
log.error(LOG_PREFIX + DOWNLOAD_LOG_MESSAGE + link + " failed: " + message, log.error(LOG_PREFIX + DOWNLOAD_LOG_MESSAGE + "{} failed: {}",
dmfController.getTenant().getTenantId(), dmfController.getControllerId(), e); dmfController.getTenant().getTenantId(), dmfController.getControllerId(), href, message, e);
} else { } else {
log.error(LOG_PREFIX + DOWNLOAD_LOG_MESSAGE + link + " failed: " + message, log.error(LOG_PREFIX + DOWNLOAD_LOG_MESSAGE + "{} failed: {}",
dmfController.getTenant().getTenantId(), dmfController.getControllerId()); dmfController.getTenant().getTenantId(), dmfController.getControllerId(), href, message);
} }
downloadHandler.finished(ArtifactHandler.DownloadHandler.Status.ERROR); downloadHandler.finished(ArtifactHandler.DownloadHandler.Status.ERROR);
return new UpdateStatus(DmfActionStatus.ERROR, List.of(message)); return new UpdateStatus(DmfActionStatus.ERROR, List.of(message));