diff --git a/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/basicosgpfunctions/AuthorizePlatformFunctionsSteps.java b/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/basicosgpfunctions/AuthorizePlatformFunctionsSteps.java index e93d24d0dda..3fc190bfebd 100644 --- a/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/basicosgpfunctions/AuthorizePlatformFunctionsSteps.java +++ b/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/basicosgpfunctions/AuthorizePlatformFunctionsSteps.java @@ -37,6 +37,7 @@ import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeDeviceModelRequest; import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeFirmwareRequest; import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeManufacturerRequest; +import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeableFirmware; import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.DeviceModel; import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindAllDeviceModelsRequest; import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindAllManufacturersRequest; @@ -335,12 +336,11 @@ private void changeFirmware(final Map requestParameters) throws WebServiceSecurityException, GeneralSecurityException, IOException { final ChangeFirmwareRequest request = new ChangeFirmwareRequest(); request.setId(PlatformCommonDefaults.FIRMWARE_ID); - final Firmware firmware = new Firmware(); + final ChangeableFirmware firmware = new ChangeableFirmware(); firmware.setDescription(PlatformCommonDefaults.FIRMWARE_DESCRIPTION); final DeviceModel deviceModel = new DeviceModel(); deviceModel.setModelCode(PlatformCommonDefaults.DEVICE_MODEL_MODEL_CODE); deviceModel.setManufacturer(PlatformCommonDefaults.DEFAULT_MANUFACTURER_CODE); - firmware.getDeviceModels().add(deviceModel); firmware.setPushToNewDevices(PlatformCommonDefaults.FIRMWARE_PUSH_TO_NEW_DEVICE); request.setFirmware(firmware); ScenarioContext.current() diff --git a/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/core/firmwaremanagement/ChangeFirmwareSteps.java b/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/core/firmwaremanagement/ChangeFirmwareSteps.java index 231f23fb534..f8922cf7148 100644 --- a/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/core/firmwaremanagement/ChangeFirmwareSteps.java +++ b/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/core/firmwaremanagement/ChangeFirmwareSteps.java @@ -13,7 +13,7 @@ import org.opensmartgridplatform.adapter.ws.schema.core.common.OsgpResultType; import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeFirmwareRequest; import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeFirmwareResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.Firmware; +import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeableFirmware; import org.opensmartgridplatform.cucumber.core.ScenarioContext; import org.opensmartgridplatform.cucumber.platform.PlatformKeys; import org.opensmartgridplatform.cucumber.platform.common.PlatformCommonKeys; @@ -49,8 +49,7 @@ public void receivingAnChangeFirmwareRequest(final Map requestPa request.setId((int) firmwareFileId); - final Firmware firmware = this.createAndGetFirmware(requestParameters); - firmware.setId((int) firmwareFileId); + final ChangeableFirmware firmware = this.createAndGetChangeableFirmware(requestParameters); request.setFirmware(firmware); try { diff --git a/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/core/firmwaremanagement/FirmwareSteps.java b/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/core/firmwaremanagement/FirmwareSteps.java index 0625b2aa405..602039bb86f 100644 --- a/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/core/firmwaremanagement/FirmwareSteps.java +++ b/integration-tests/cucumber-tests-platform-common/src/test/java/org/opensmartgridplatform/cucumber/platform/common/glue/steps/ws/core/firmwaremanagement/FirmwareSteps.java @@ -16,6 +16,7 @@ import java.util.Map.Entry; import java.util.SortedSet; import java.util.stream.Collectors; +import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeableFirmware; import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.DeviceModel; import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.Firmware; import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FirmwareModuleData; @@ -116,6 +117,59 @@ protected Firmware createAndGetFirmware(final Map requestParamet return firmware; } + protected ChangeableFirmware createAndGetChangeableFirmware( + final Map requestParameters) { + final ChangeableFirmware firmware = new ChangeableFirmware(); + firmware.setDescription(getString(requestParameters, PlatformKeys.FIRMWARE_DESCRIPTION, null)); + firmware.setPushToNewDevices( + getBoolean( + requestParameters, + PlatformKeys.FIRMWARE_PUSH_TO_NEW_DEVICES, + PlatformDefaults.FIRMWARE_PUSH_TO_NEW_DEVICE)); + + firmware.setFirmwareModuleData(new FirmwareModuleData()); + if (requestParameters.containsKey(PlatformKeys.FIRMWARE_MODULE_VERSION_COMM)) { + firmware + .getFirmwareModuleData() + .setModuleVersionComm( + getString(requestParameters, PlatformKeys.FIRMWARE_MODULE_VERSION_COMM, null)); + } + if (requestParameters.containsKey(PlatformKeys.FIRMWARE_MODULE_VERSION_FUNC)) { + firmware + .getFirmwareModuleData() + .setModuleVersionFunc( + getString(requestParameters, PlatformKeys.FIRMWARE_MODULE_VERSION_FUNC, null)); + } + if (requestParameters.containsKey(PlatformKeys.FIRMWARE_MODULE_VERSION_MA)) { + firmware + .getFirmwareModuleData() + .setModuleVersionMa( + getString(requestParameters, PlatformKeys.FIRMWARE_MODULE_VERSION_MA, null)); + } + if (requestParameters.containsKey(PlatformKeys.FIRMWARE_MODULE_VERSION_MBUS)) { + firmware + .getFirmwareModuleData() + .setModuleVersionMbus( + getString(requestParameters, PlatformKeys.FIRMWARE_MODULE_VERSION_MBUS, null)); + } + if (requestParameters.containsKey(PlatformKeys.FIRMWARE_MODULE_VERSION_SEC)) { + firmware + .getFirmwareModuleData() + .setModuleVersionSec( + getString(requestParameters, PlatformKeys.FIRMWARE_MODULE_VERSION_SEC, null)); + } + if (requestParameters.containsKey(PlatformKeys.FIRMWARE_MODULE_VERSION_M_BUS_DRIVER_ACTIVE)) { + firmware + .getFirmwareModuleData() + .setModuleVersionMBusDriverActive( + getString( + requestParameters, + PlatformKeys.FIRMWARE_MODULE_VERSION_M_BUS_DRIVER_ACTIVE, + null)); + } + return firmware; + } + protected void assertFirmwareFileExists( final String identification, final Map firmwareFileProperties) { final Firmware expectedFirmware = this.createAndGetFirmware(firmwareFileProperties); diff --git a/integration-tests/cucumber-tests-platform-common/src/test/resources/features/common/osgp-adapter-ws-core/FirmwareManagement/ChangeFirmware.feature b/integration-tests/cucumber-tests-platform-common/src/test/resources/features/common/osgp-adapter-ws-core/FirmwareManagement/ChangeFirmware.feature index 6cbeb2f85d8..74ad9ffdb63 100644 --- a/integration-tests/cucumber-tests-platform-common/src/test/resources/features/common/osgp-adapter-ws-core/FirmwareManagement/ChangeFirmware.feature +++ b/integration-tests/cucumber-tests-platform-common/src/test/resources/features/common/osgp-adapter-ws-core/FirmwareManagement/ChangeFirmware.feature @@ -13,46 +13,21 @@ Feature: FirmwareManagement change firmware | DeviceIdentification | TEST1024000000001 | And a firmware | DeviceIdentification | TEST1024000000001 | - | FirmwareFilename | OldFirmware | + | FirmwareFilename | Filename | | FirmwarePushToNewDevices | true | | ManufacturerName | Test | | ModelCode | TestModel | | Description | | When receiving an change firmware request - | FirmwareFilename | NewFirmware | | FirmwarePushToNewDevices | false | - | ManufacturerName | Test | - | ModelCode | TestModel | | FirmwareDescription | Firmware is changed! | Then the change firmware response contains | Result | OK | And the entity firmware exists | ModelCode | TestModel | - | FirmwareFilename | NewFirmware | + | FirmwareFilename | Filename | | FirmwareDescription | Firmware is changed! | - Scenario Outline: Change firmware with an unknown or empty devicemodel - Given a device - | DeviceIdentification | TEST1024000000001 | - And a firmware - | DeviceIdentification | TEST1024000000001 | - | FirmwareFilename | Firmware | - | FirmwarePushToNewDevices | true | - | ManufacturerName | Test | - | ModelCode | TestModel | - | Description | | - When receiving an change firmware request - | ModelCode | unknown | - Then the change firmware response contains soap fault - | FaultCode | SOAP-ENV:Server | - | FaultString | UNKNOWN_DEVICEMODEL | - | InnerMessage | DeviceModel with id "unknown" could not be found. | - - Examples: - | ModelCode | - | unknown | - | | - Scenario: Change the firmware for an unknown firmware When receiving an change firmware request | FirmwareFilename | Firmware | diff --git a/osgp/platform/osgp-adapter-ws-core/src/main/java/org/opensmartgridplatform/adapter/ws/core/application/services/FirmwareManagementService.java b/osgp/platform/osgp-adapter-ws-core/src/main/java/org/opensmartgridplatform/adapter/ws/core/application/services/FirmwareManagementService.java index 9794cdf6a8e..cadf23a8d96 100644 --- a/osgp/platform/osgp-adapter-ws-core/src/main/java/org/opensmartgridplatform/adapter/ws/core/application/services/FirmwareManagementService.java +++ b/osgp/platform/osgp-adapter-ws-core/src/main/java/org/opensmartgridplatform/adapter/ws/core/application/services/FirmwareManagementService.java @@ -21,6 +21,7 @@ import org.apache.commons.lang3.StringUtils; import org.opensmartgridplatform.adapter.ws.core.infra.jms.CommonRequestMessage; import org.opensmartgridplatform.adapter.ws.core.infra.jms.CommonRequestMessageSender; +import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeableFirmware; import org.opensmartgridplatform.adapter.ws.shared.db.domain.repositories.writable.WritableDeviceFirmwareFileRepository; import org.opensmartgridplatform.adapter.ws.shared.db.domain.repositories.writable.WritableDeviceModelRepository; import org.opensmartgridplatform.adapter.ws.shared.db.domain.repositories.writable.WritableDeviceRepository; @@ -805,9 +806,7 @@ public void saveDeviceFirmwareFile(final DeviceFirmwareFile deviceFirmwareFile) public void changeFirmware( @Identification final String organisationIdentification, final int id, - final FirmwareFileRequest firmwareFileRequest, - final String manufacturer, - final String modelCode, + final ChangeableFirmware firmwareFileRequest, final FirmwareModuleData firmwareModuleData) throws FunctionalException { @@ -818,83 +817,23 @@ public void changeFirmware( FirmwareFile changedFirmwareFile = this.firmwareFileRepository .findById((long) id) - .orElseThrow( - supplyFirmwareFileNotFoundException(id, firmwareFileRequest.getFileName())); - - final Manufacturer databaseManufacturer = - this.manufacturerRepository.findByCodeIgnoreCase(manufacturer); + .orElseThrow(supplyFirmwareFileNotFoundException(id)); - if (databaseManufacturer == null) { - LOGGER.info("Manufacturer {} doesn't exist.", manufacturer); - throw new FunctionalException( - FunctionalExceptionType.UNKNOWN_MANUFACTURER, - ComponentType.WS_CORE, - new UnknownEntityException(Manufacturer.class, manufacturer)); + changedFirmwareFile.updateFirmwareModuleData( + firmwareModuleData.getVersionsByModule(this.firmwareModuleRepository, false)); + if (!firmwareFileRequest.getDescription().isEmpty()) { + changedFirmwareFile.setDescription(firmwareFileRequest.getDescription()); } - - final DeviceModel databaseDeviceModel = - this.deviceModelRepository.findByManufacturerAndModelCodeIgnoreCase( - databaseManufacturer, modelCode); - - if (databaseDeviceModel == null) { - LOGGER.info( - "DeviceModel unknown for manufacturer {} and model code {}.", manufacturer, modelCode); - throw new FunctionalException( - FunctionalExceptionType.UNKNOWN_DEVICEMODEL, - ComponentType.WS_CORE, - new UnknownEntityException(DeviceModel.class, modelCode)); + if (firmwareFileRequest.isPushToNewDevices() != null) { + changedFirmwareFile.setPushToNewDevices(firmwareFileRequest.isPushToNewDevices()); } - - changedFirmwareFile.setDescription(firmwareFileRequest.getDescription()); - /* - * A firmware file has been changed to be related to (possibly) multiple - * device models to be usable across different value streams for all - * kinds of devices. - * - * This code mimics the earlier behavior with a single device model - * linked to the firmware file, where the device model is changed. - * - * If multiple device models are related, it is not clear what to do, - * and which if the device models (if any) should be removed. In such - * case the device model will be added for now. - * - * 2021-06-02: In case of multiple DeviceModels all existing must be deleted - * and all new DeviceModels in the request must be added - */ - final Set existingDeviceModels = changedFirmwareFile.getDeviceModels(); - if (existingDeviceModels.size() > 1) { - LOGGER.warn( - "Change Firmware (FirmwareFile id={}) with {} existing DeviceModels, adding {}", - changedFirmwareFile.getId(), - existingDeviceModels.size(), - databaseDeviceModel); - } else { - LOGGER.warn( - "Change Firmware (FirmwareFile id={}) with {} existing DeviceModel(s), replacing by {}", - changedFirmwareFile.getId(), - existingDeviceModels.size(), - databaseDeviceModel); + if (firmwareFileRequest.isActive() != null) { + changedFirmwareFile.setActive(firmwareFileRequest.isActive()); } - existingDeviceModels.clear(); - - changedFirmwareFile.addDeviceModel(databaseDeviceModel); - changedFirmwareFile.setFilename(firmwareFileRequest.getFileName()); - changedFirmwareFile.updateFirmwareModuleData( - firmwareModuleData.getVersionsByModule(this.firmwareModuleRepository, false)); - changedFirmwareFile.setPushToNewDevices(firmwareFileRequest.isPushToNewDevices()); - changedFirmwareFile.setActive(firmwareFileRequest.isActive()); // Save the changed firmware entity changedFirmwareFile = this.firmwareFileRepository.save(changedFirmwareFile); - // Set all devicefirmwares.pushToNewDevices on false - if (firmwareFileRequest.isPushToNewDevices()) { - final List firmwareFiles = - this.firmwareFileRepository.findByDeviceModel(databaseDeviceModel); - firmwareFiles.remove(changedFirmwareFile); - this.setPushToNewDevicesToFalse(firmwareFiles); - } - this.firmwareFileRepository.save(changedFirmwareFile); } diff --git a/osgp/platform/osgp-adapter-ws-core/src/main/java/org/opensmartgridplatform/adapter/ws/core/endpoints/FirmwareManagementEndpoint.java b/osgp/platform/osgp-adapter-ws-core/src/main/java/org/opensmartgridplatform/adapter/ws/core/endpoints/FirmwareManagementEndpoint.java index 770218c1115..53cee1c2eab 100644 --- a/osgp/platform/osgp-adapter-ws-core/src/main/java/org/opensmartgridplatform/adapter/ws/core/endpoints/FirmwareManagementEndpoint.java +++ b/osgp/platform/osgp-adapter-ws-core/src/main/java/org/opensmartgridplatform/adapter/ws/core/endpoints/FirmwareManagementEndpoint.java @@ -16,56 +16,7 @@ import org.opensmartgridplatform.adapter.ws.endpointinterceptors.OrganisationIdentification; import org.opensmartgridplatform.adapter.ws.schema.core.common.AsyncResponse; import org.opensmartgridplatform.adapter.ws.schema.core.common.OsgpResultType; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.AddDeviceModelRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.AddDeviceModelResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.AddFirmwareRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.AddFirmwareResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.AddManufacturerRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.AddManufacturerResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.AddOrChangeFirmwareRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.AddOrChangeFirmwareResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeDeviceModelRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeDeviceModelResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeFirmwareRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeFirmwareResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeManufacturerRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.ChangeManufacturerResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.DeviceFirmwareHistory; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindAllDeviceModelsRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindAllDeviceModelsResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindAllFirmwaresRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindAllFirmwaresResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindAllManufacturersRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindAllManufacturersResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindDeviceModelRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindDeviceModelResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindFirmwareRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FindFirmwareResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.Firmware; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FirmwareModuleType; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.FirmwareVersion; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.GetDeviceFirmwareHistoryRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.GetDeviceFirmwareHistoryResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.GetFirmwareVersionAsyncRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.GetFirmwareVersionAsyncResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.GetFirmwareVersionRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.GetFirmwareVersionResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.RemoveDeviceModelRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.RemoveDeviceModelResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.RemoveFirmwareRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.RemoveFirmwareResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.RemoveManufacturerRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.RemoveManufacturerResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.SaveCurrentDeviceFirmwareRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.SaveCurrentDeviceFirmwareResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.SwitchFirmwareAsyncRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.SwitchFirmwareAsyncResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.SwitchFirmwareRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.SwitchFirmwareResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.UpdateFirmwareAsyncRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.UpdateFirmwareAsyncResponse; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.UpdateFirmwareRequest; -import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.UpdateFirmwareResponse; +import org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.*; import org.opensmartgridplatform.domain.core.entities.Device; import org.opensmartgridplatform.domain.core.entities.DeviceFirmwareFile; import org.opensmartgridplatform.domain.core.entities.DeviceModel; @@ -919,27 +870,15 @@ public ChangeFirmwareResponse changeFirmware( @OrganisationIdentification final String organisationIdentification, @RequestPayload final ChangeFirmwareRequest request) throws OsgpException { - final Firmware firmware = request.getFirmware(); - - LOGGER.info("Changing firmware:{}.", firmware.getFilename()); + final ChangeableFirmware firmware = request.getFirmware(); final FirmwareModuleData firmwareModuleData = this.firmwareManagementMapper.map( firmware.getFirmwareModuleData(), FirmwareModuleData.class); - // The ChangeFirmwareRequest accepts multiple DeviceModels to be related to a Firmware. - // This FirmwareManagementService only accepts ONE for now - final String manufacturer = this.getManufacturerFromFirmware(firmware); - final String modelCode = this.getModelCodeFromFirmware(firmware); - try { this.firmwareManagementService.changeFirmware( - organisationIdentification, - request.getId(), - this.firmwareFileRequestFor(firmware), - manufacturer, - modelCode, - firmwareModuleData); + organisationIdentification, request.getId(), request.getFirmware(), firmwareModuleData); } catch (final ConstraintViolationException e) { LOGGER.error("Exception Changing firmware", e); this.handleException(e); @@ -947,7 +886,7 @@ public ChangeFirmwareResponse changeFirmware( LOGGER.error( "Exception: {} while Changing firmware: {} for organisation {}", e.getMessage(), - firmware.getFilename(), + request.getId(), organisationIdentification, e); this.handleException(e); diff --git a/osgp/shared/osgp-ws-core/src/main/resources/schemas/firmwaremanagement-ws-core.xsd b/osgp/shared/osgp-ws-core/src/main/resources/schemas/firmwaremanagement-ws-core.xsd index 7d5e634771f..863f8726fb2 100644 --- a/osgp/shared/osgp-ws-core/src/main/resources/schemas/firmwaremanagement-ws-core.xsd +++ b/osgp/shared/osgp-ws-core/src/main/resources/schemas/firmwaremanagement-ws-core.xsd @@ -345,7 +345,7 @@ - + @@ -472,6 +472,21 @@ + + + + + + + + + + + + + + +