Wrapper for OtaPackageInfo with usesUrl boolean field
This commit is contained in:
parent
6d0e6b3596
commit
b158528c2a
@ -32,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
import org.thingsboard.server.common.data.EntityType;
|
import org.thingsboard.server.common.data.EntityType;
|
||||||
import org.thingsboard.server.common.data.OtaPackage;
|
import org.thingsboard.server.common.data.OtaPackage;
|
||||||
import org.thingsboard.server.common.data.OtaPackageInfo;
|
import org.thingsboard.server.common.data.OtaPackageInfo;
|
||||||
|
import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest;
|
||||||
import org.thingsboard.server.common.data.audit.ActionType;
|
import org.thingsboard.server.common.data.audit.ActionType;
|
||||||
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
import org.thingsboard.server.common.data.exception.ThingsboardException;
|
||||||
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
||||||
@ -109,12 +110,12 @@ public class OtaPackageController extends BaseController {
|
|||||||
@PreAuthorize("hasAnyAuthority('TENANT_ADMIN')")
|
@PreAuthorize("hasAnyAuthority('TENANT_ADMIN')")
|
||||||
@RequestMapping(value = "/otaPackage", method = RequestMethod.POST)
|
@RequestMapping(value = "/otaPackage", method = RequestMethod.POST)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public OtaPackageInfo saveOtaPackageInfo(@RequestBody OtaPackageInfo otaPackageInfo, @RequestParam boolean isUrl) throws ThingsboardException {
|
public OtaPackageInfo saveOtaPackageInfo(@RequestBody SaveOtaPackageInfoRequest otaPackageInfo) throws ThingsboardException {
|
||||||
boolean created = otaPackageInfo.getId() == null;
|
boolean created = otaPackageInfo.getId() == null;
|
||||||
try {
|
try {
|
||||||
otaPackageInfo.setTenantId(getTenantId());
|
otaPackageInfo.setTenantId(getTenantId());
|
||||||
checkEntity(otaPackageInfo.getId(), otaPackageInfo, Resource.OTA_PACKAGE);
|
checkEntity(otaPackageInfo.getId(), otaPackageInfo, Resource.OTA_PACKAGE);
|
||||||
OtaPackageInfo savedOtaPackageInfo = otaPackageService.saveOtaPackageInfo(otaPackageInfo, isUrl);
|
OtaPackageInfo savedOtaPackageInfo = otaPackageService.saveOtaPackageInfo(new OtaPackageInfo(otaPackageInfo), otaPackageInfo.isUsesUrl());
|
||||||
logEntityAction(savedOtaPackageInfo.getId(), savedOtaPackageInfo,
|
logEntityAction(savedOtaPackageInfo.getId(), savedOtaPackageInfo,
|
||||||
null, created ? ActionType.ADDED : ActionType.UPDATED, null);
|
null, created ? ActionType.ADDED : ActionType.UPDATED, null);
|
||||||
return savedOtaPackageInfo;
|
return savedOtaPackageInfo;
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import org.thingsboard.common.util.JacksonUtil;
|
|||||||
import org.thingsboard.server.common.data.DeviceProfile;
|
import org.thingsboard.server.common.data.DeviceProfile;
|
||||||
import org.thingsboard.server.common.data.OtaPackage;
|
import org.thingsboard.server.common.data.OtaPackage;
|
||||||
import org.thingsboard.server.common.data.OtaPackageInfo;
|
import org.thingsboard.server.common.data.OtaPackageInfo;
|
||||||
|
import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest;
|
||||||
import org.thingsboard.server.common.data.Tenant;
|
import org.thingsboard.server.common.data.Tenant;
|
||||||
import org.thingsboard.server.common.data.User;
|
import org.thingsboard.server.common.data.User;
|
||||||
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
import org.thingsboard.server.common.data.id.DeviceProfileId;
|
||||||
@ -92,13 +93,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSaveFirmware() throws Exception {
|
public void testSaveFirmware() throws Exception {
|
||||||
OtaPackageInfo firmwareInfo = new OtaPackageInfo();
|
SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
|
||||||
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
||||||
firmwareInfo.setType(FIRMWARE);
|
firmwareInfo.setType(FIRMWARE);
|
||||||
firmwareInfo.setTitle(TITLE);
|
firmwareInfo.setTitle(TITLE);
|
||||||
firmwareInfo.setVersion(VERSION);
|
firmwareInfo.setVersion(VERSION);
|
||||||
|
firmwareInfo.setUsesUrl(false);
|
||||||
|
|
||||||
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false);
|
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
|
||||||
|
|
||||||
Assert.assertNotNull(savedFirmwareInfo);
|
Assert.assertNotNull(savedFirmwareInfo);
|
||||||
Assert.assertNotNull(savedFirmwareInfo.getId());
|
Assert.assertNotNull(savedFirmwareInfo.getId());
|
||||||
@ -109,7 +111,7 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
|
|||||||
|
|
||||||
savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode());
|
savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode());
|
||||||
|
|
||||||
save(savedFirmwareInfo, false);
|
save(new SaveOtaPackageInfoRequest(savedFirmwareInfo, false));
|
||||||
|
|
||||||
OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class);
|
OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class);
|
||||||
Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle());
|
Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle());
|
||||||
@ -117,13 +119,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSaveFirmwareData() throws Exception {
|
public void testSaveFirmwareData() throws Exception {
|
||||||
OtaPackageInfo firmwareInfo = new OtaPackageInfo();
|
SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
|
||||||
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
||||||
firmwareInfo.setType(FIRMWARE);
|
firmwareInfo.setType(FIRMWARE);
|
||||||
firmwareInfo.setTitle(TITLE);
|
firmwareInfo.setTitle(TITLE);
|
||||||
firmwareInfo.setVersion(VERSION);
|
firmwareInfo.setVersion(VERSION);
|
||||||
|
firmwareInfo.setUsesUrl(false);
|
||||||
|
|
||||||
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false);
|
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
|
||||||
|
|
||||||
Assert.assertNotNull(savedFirmwareInfo);
|
Assert.assertNotNull(savedFirmwareInfo);
|
||||||
Assert.assertNotNull(savedFirmwareInfo.getId());
|
Assert.assertNotNull(savedFirmwareInfo.getId());
|
||||||
@ -134,7 +137,7 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
|
|||||||
|
|
||||||
savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode());
|
savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode());
|
||||||
|
|
||||||
save(savedFirmwareInfo, false);
|
save(new SaveOtaPackageInfoRequest(savedFirmwareInfo, false));
|
||||||
|
|
||||||
OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class);
|
OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class);
|
||||||
Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle());
|
Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle());
|
||||||
@ -151,28 +154,33 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateFirmwareFromDifferentTenant() throws Exception {
|
public void testUpdateFirmwareFromDifferentTenant() throws Exception {
|
||||||
OtaPackageInfo firmwareInfo = new OtaPackageInfo();
|
SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
|
||||||
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
||||||
firmwareInfo.setType(FIRMWARE);
|
firmwareInfo.setType(FIRMWARE);
|
||||||
firmwareInfo.setTitle(TITLE);
|
firmwareInfo.setTitle(TITLE);
|
||||||
firmwareInfo.setVersion(VERSION);
|
firmwareInfo.setVersion(VERSION);
|
||||||
|
firmwareInfo.setUsesUrl(false);
|
||||||
|
|
||||||
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false);
|
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
|
||||||
|
|
||||||
loginDifferentTenant();
|
loginDifferentTenant();
|
||||||
doPost("/api/otaPackage?isUrl=false", savedFirmwareInfo, OtaPackageInfo.class, status().isForbidden());
|
doPost("/api/otaPackage",
|
||||||
|
new SaveOtaPackageInfoRequest(savedFirmwareInfo, false),
|
||||||
|
OtaPackageInfo.class,
|
||||||
|
status().isForbidden());
|
||||||
deleteDifferentTenant();
|
deleteDifferentTenant();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFindFirmwareInfoById() throws Exception {
|
public void testFindFirmwareInfoById() throws Exception {
|
||||||
OtaPackageInfo firmwareInfo = new OtaPackageInfo();
|
SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
|
||||||
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
||||||
firmwareInfo.setType(FIRMWARE);
|
firmwareInfo.setType(FIRMWARE);
|
||||||
firmwareInfo.setTitle(TITLE);
|
firmwareInfo.setTitle(TITLE);
|
||||||
firmwareInfo.setVersion(VERSION);
|
firmwareInfo.setVersion(VERSION);
|
||||||
|
firmwareInfo.setUsesUrl(false);
|
||||||
|
|
||||||
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false);
|
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
|
||||||
|
|
||||||
OtaPackageInfo foundFirmware = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class);
|
OtaPackageInfo foundFirmware = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class);
|
||||||
Assert.assertNotNull(foundFirmware);
|
Assert.assertNotNull(foundFirmware);
|
||||||
@ -181,13 +189,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testFindFirmwareById() throws Exception {
|
public void testFindFirmwareById() throws Exception {
|
||||||
OtaPackageInfo firmwareInfo = new OtaPackageInfo();
|
SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
|
||||||
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
||||||
firmwareInfo.setType(FIRMWARE);
|
firmwareInfo.setType(FIRMWARE);
|
||||||
firmwareInfo.setTitle(TITLE);
|
firmwareInfo.setTitle(TITLE);
|
||||||
firmwareInfo.setVersion(VERSION);
|
firmwareInfo.setVersion(VERSION);
|
||||||
|
firmwareInfo.setUsesUrl(false);
|
||||||
|
|
||||||
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false);
|
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
|
||||||
|
|
||||||
MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array());
|
MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array());
|
||||||
|
|
||||||
@ -201,13 +210,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDeleteFirmware() throws Exception {
|
public void testDeleteFirmware() throws Exception {
|
||||||
OtaPackageInfo firmwareInfo = new OtaPackageInfo();
|
SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
|
||||||
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
||||||
firmwareInfo.setType(FIRMWARE);
|
firmwareInfo.setType(FIRMWARE);
|
||||||
firmwareInfo.setTitle(TITLE);
|
firmwareInfo.setTitle(TITLE);
|
||||||
firmwareInfo.setVersion(VERSION);
|
firmwareInfo.setVersion(VERSION);
|
||||||
|
firmwareInfo.setUsesUrl(false);
|
||||||
|
|
||||||
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false);
|
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
|
||||||
|
|
||||||
doDelete("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString())
|
doDelete("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString())
|
||||||
.andExpect(status().isOk());
|
.andExpect(status().isOk());
|
||||||
@ -220,13 +230,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
|
|||||||
public void testFindTenantFirmwares() throws Exception {
|
public void testFindTenantFirmwares() throws Exception {
|
||||||
List<OtaPackageInfo> otaPackages = new ArrayList<>();
|
List<OtaPackageInfo> otaPackages = new ArrayList<>();
|
||||||
for (int i = 0; i < 165; i++) {
|
for (int i = 0; i < 165; i++) {
|
||||||
OtaPackageInfo firmwareInfo = new OtaPackageInfo();
|
SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
|
||||||
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
||||||
firmwareInfo.setType(FIRMWARE);
|
firmwareInfo.setType(FIRMWARE);
|
||||||
firmwareInfo.setTitle(TITLE);
|
firmwareInfo.setTitle(TITLE);
|
||||||
firmwareInfo.setVersion(VERSION + i);
|
firmwareInfo.setVersion(VERSION + i);
|
||||||
|
firmwareInfo.setUsesUrl(false);
|
||||||
|
|
||||||
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false);
|
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
|
||||||
|
|
||||||
if (i > 100) {
|
if (i > 100) {
|
||||||
MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array());
|
MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array());
|
||||||
@ -263,13 +274,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
|
|||||||
List<OtaPackageInfo> allOtaPackages = new ArrayList<>();
|
List<OtaPackageInfo> allOtaPackages = new ArrayList<>();
|
||||||
|
|
||||||
for (int i = 0; i < 165; i++) {
|
for (int i = 0; i < 165; i++) {
|
||||||
OtaPackageInfo firmwareInfo = new OtaPackageInfo();
|
SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
|
||||||
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
firmwareInfo.setDeviceProfileId(deviceProfileId);
|
||||||
firmwareInfo.setType(FIRMWARE);
|
firmwareInfo.setType(FIRMWARE);
|
||||||
firmwareInfo.setTitle(TITLE);
|
firmwareInfo.setTitle(TITLE);
|
||||||
firmwareInfo.setVersion(VERSION + i);
|
firmwareInfo.setVersion(VERSION + i);
|
||||||
|
firmwareInfo.setUsesUrl(false);
|
||||||
|
|
||||||
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false);
|
OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
|
||||||
|
|
||||||
if (i > 100) {
|
if (i > 100) {
|
||||||
MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array());
|
MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array());
|
||||||
@ -316,8 +328,8 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
|
|||||||
Assert.assertEquals(allOtaPackages, allLoadedOtaPackages);
|
Assert.assertEquals(allOtaPackages, allLoadedOtaPackages);
|
||||||
}
|
}
|
||||||
|
|
||||||
private OtaPackageInfo save(OtaPackageInfo firmwareInfo, boolean isUrl) throws Exception {
|
private OtaPackageInfo save(SaveOtaPackageInfoRequest firmwareInfo) throws Exception {
|
||||||
return doPost("/api/otaPackage?isUrl=" + isUrl, firmwareInfo, OtaPackageInfo.class);
|
return doPost("/api/otaPackage", firmwareInfo, OtaPackageInfo.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected OtaPackageInfo savaData(String urlTemplate, MockMultipartFile content, String... params) throws Exception {
|
protected OtaPackageInfo savaData(String urlTemplate, MockMultipartFile content, String... params) throws Exception {
|
||||||
|
|||||||
@ -0,0 +1,37 @@
|
|||||||
|
/**
|
||||||
|
* Copyright © 2016-2021 The Thingsboard Authors
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package org.thingsboard.server.common.data;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class SaveOtaPackageInfoRequest extends OtaPackageInfo{
|
||||||
|
boolean usesUrl;
|
||||||
|
|
||||||
|
public SaveOtaPackageInfoRequest(OtaPackageInfo otaPackageInfo, boolean usesUrl) {
|
||||||
|
super(otaPackageInfo);
|
||||||
|
this.usesUrl = usesUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SaveOtaPackageInfoRequest(SaveOtaPackageInfoRequest saveOtaPackageInfoRequest) {
|
||||||
|
super(saveOtaPackageInfoRequest);
|
||||||
|
this.usesUrl = saveOtaPackageInfoRequest.isUsesUrl();
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user