Commit b158528c2a6d56f1617f7c83460e33841aa53cd4

Authored by AndrewVolosytnykhThingsboard
1 parent 6d0e6b35

Wrapper for OtaPackageInfo with usesUrl boolean field

@@ -32,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile; @@ -32,6 +32,7 @@ import org.springframework.web.multipart.MultipartFile;
32 import org.thingsboard.server.common.data.EntityType; 32 import org.thingsboard.server.common.data.EntityType;
33 import org.thingsboard.server.common.data.OtaPackage; 33 import org.thingsboard.server.common.data.OtaPackage;
34 import org.thingsboard.server.common.data.OtaPackageInfo; 34 import org.thingsboard.server.common.data.OtaPackageInfo;
  35 +import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest;
35 import org.thingsboard.server.common.data.audit.ActionType; 36 import org.thingsboard.server.common.data.audit.ActionType;
36 import org.thingsboard.server.common.data.exception.ThingsboardException; 37 import org.thingsboard.server.common.data.exception.ThingsboardException;
37 import org.thingsboard.server.common.data.id.DeviceProfileId; 38 import org.thingsboard.server.common.data.id.DeviceProfileId;
@@ -109,12 +110,12 @@ public class OtaPackageController extends BaseController { @@ -109,12 +110,12 @@ public class OtaPackageController extends BaseController {
109 @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')") 110 @PreAuthorize("hasAnyAuthority('TENANT_ADMIN')")
110 @RequestMapping(value = "/otaPackage", method = RequestMethod.POST) 111 @RequestMapping(value = "/otaPackage", method = RequestMethod.POST)
111 @ResponseBody 112 @ResponseBody
112 - public OtaPackageInfo saveOtaPackageInfo(@RequestBody OtaPackageInfo otaPackageInfo, @RequestParam boolean isUrl) throws ThingsboardException { 113 + public OtaPackageInfo saveOtaPackageInfo(@RequestBody SaveOtaPackageInfoRequest otaPackageInfo) throws ThingsboardException {
113 boolean created = otaPackageInfo.getId() == null; 114 boolean created = otaPackageInfo.getId() == null;
114 try { 115 try {
115 otaPackageInfo.setTenantId(getTenantId()); 116 otaPackageInfo.setTenantId(getTenantId());
116 checkEntity(otaPackageInfo.getId(), otaPackageInfo, Resource.OTA_PACKAGE); 117 checkEntity(otaPackageInfo.getId(), otaPackageInfo, Resource.OTA_PACKAGE);
117 - OtaPackageInfo savedOtaPackageInfo = otaPackageService.saveOtaPackageInfo(otaPackageInfo, isUrl); 118 + OtaPackageInfo savedOtaPackageInfo = otaPackageService.saveOtaPackageInfo(new OtaPackageInfo(otaPackageInfo), otaPackageInfo.isUsesUrl());
118 logEntityAction(savedOtaPackageInfo.getId(), savedOtaPackageInfo, 119 logEntityAction(savedOtaPackageInfo.getId(), savedOtaPackageInfo,
119 null, created ? ActionType.ADDED : ActionType.UPDATED, null); 120 null, created ? ActionType.ADDED : ActionType.UPDATED, null);
120 return savedOtaPackageInfo; 121 return savedOtaPackageInfo;
@@ -27,6 +27,7 @@ import org.thingsboard.common.util.JacksonUtil; @@ -27,6 +27,7 @@ import org.thingsboard.common.util.JacksonUtil;
27 import org.thingsboard.server.common.data.DeviceProfile; 27 import org.thingsboard.server.common.data.DeviceProfile;
28 import org.thingsboard.server.common.data.OtaPackage; 28 import org.thingsboard.server.common.data.OtaPackage;
29 import org.thingsboard.server.common.data.OtaPackageInfo; 29 import org.thingsboard.server.common.data.OtaPackageInfo;
  30 +import org.thingsboard.server.common.data.SaveOtaPackageInfoRequest;
30 import org.thingsboard.server.common.data.Tenant; 31 import org.thingsboard.server.common.data.Tenant;
31 import org.thingsboard.server.common.data.User; 32 import org.thingsboard.server.common.data.User;
32 import org.thingsboard.server.common.data.id.DeviceProfileId; 33 import org.thingsboard.server.common.data.id.DeviceProfileId;
@@ -92,13 +93,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes @@ -92,13 +93,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
92 93
93 @Test 94 @Test
94 public void testSaveFirmware() throws Exception { 95 public void testSaveFirmware() throws Exception {
95 - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); 96 + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
96 firmwareInfo.setDeviceProfileId(deviceProfileId); 97 firmwareInfo.setDeviceProfileId(deviceProfileId);
97 firmwareInfo.setType(FIRMWARE); 98 firmwareInfo.setType(FIRMWARE);
98 firmwareInfo.setTitle(TITLE); 99 firmwareInfo.setTitle(TITLE);
99 firmwareInfo.setVersion(VERSION); 100 firmwareInfo.setVersion(VERSION);
  101 + firmwareInfo.setUsesUrl(false);
100 102
101 - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); 103 + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
102 104
103 Assert.assertNotNull(savedFirmwareInfo); 105 Assert.assertNotNull(savedFirmwareInfo);
104 Assert.assertNotNull(savedFirmwareInfo.getId()); 106 Assert.assertNotNull(savedFirmwareInfo.getId());
@@ -109,7 +111,7 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes @@ -109,7 +111,7 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
109 111
110 savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode()); 112 savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode());
111 113
112 - save(savedFirmwareInfo, false); 114 + save(new SaveOtaPackageInfoRequest(savedFirmwareInfo, false));
113 115
114 OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); 116 OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class);
115 Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle()); 117 Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle());
@@ -117,13 +119,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes @@ -117,13 +119,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
117 119
118 @Test 120 @Test
119 public void testSaveFirmwareData() throws Exception { 121 public void testSaveFirmwareData() throws Exception {
120 - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); 122 + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
121 firmwareInfo.setDeviceProfileId(deviceProfileId); 123 firmwareInfo.setDeviceProfileId(deviceProfileId);
122 firmwareInfo.setType(FIRMWARE); 124 firmwareInfo.setType(FIRMWARE);
123 firmwareInfo.setTitle(TITLE); 125 firmwareInfo.setTitle(TITLE);
124 firmwareInfo.setVersion(VERSION); 126 firmwareInfo.setVersion(VERSION);
  127 + firmwareInfo.setUsesUrl(false);
125 128
126 - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); 129 + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
127 130
128 Assert.assertNotNull(savedFirmwareInfo); 131 Assert.assertNotNull(savedFirmwareInfo);
129 Assert.assertNotNull(savedFirmwareInfo.getId()); 132 Assert.assertNotNull(savedFirmwareInfo.getId());
@@ -134,7 +137,7 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes @@ -134,7 +137,7 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
134 137
135 savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode()); 138 savedFirmwareInfo.setAdditionalInfo(JacksonUtil.newObjectNode());
136 139
137 - save(savedFirmwareInfo, false); 140 + save(new SaveOtaPackageInfoRequest(savedFirmwareInfo, false));
138 141
139 OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); 142 OtaPackageInfo foundFirmwareInfo = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class);
140 Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle()); 143 Assert.assertEquals(foundFirmwareInfo.getTitle(), savedFirmwareInfo.getTitle());
@@ -151,28 +154,33 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes @@ -151,28 +154,33 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
151 154
152 @Test 155 @Test
153 public void testUpdateFirmwareFromDifferentTenant() throws Exception { 156 public void testUpdateFirmwareFromDifferentTenant() throws Exception {
154 - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); 157 + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
155 firmwareInfo.setDeviceProfileId(deviceProfileId); 158 firmwareInfo.setDeviceProfileId(deviceProfileId);
156 firmwareInfo.setType(FIRMWARE); 159 firmwareInfo.setType(FIRMWARE);
157 firmwareInfo.setTitle(TITLE); 160 firmwareInfo.setTitle(TITLE);
158 firmwareInfo.setVersion(VERSION); 161 firmwareInfo.setVersion(VERSION);
  162 + firmwareInfo.setUsesUrl(false);
159 163
160 - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); 164 + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
161 165
162 loginDifferentTenant(); 166 loginDifferentTenant();
163 - doPost("/api/otaPackage?isUrl=false", savedFirmwareInfo, OtaPackageInfo.class, status().isForbidden()); 167 + doPost("/api/otaPackage",
  168 + new SaveOtaPackageInfoRequest(savedFirmwareInfo, false),
  169 + OtaPackageInfo.class,
  170 + status().isForbidden());
164 deleteDifferentTenant(); 171 deleteDifferentTenant();
165 } 172 }
166 173
167 @Test 174 @Test
168 public void testFindFirmwareInfoById() throws Exception { 175 public void testFindFirmwareInfoById() throws Exception {
169 - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); 176 + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
170 firmwareInfo.setDeviceProfileId(deviceProfileId); 177 firmwareInfo.setDeviceProfileId(deviceProfileId);
171 firmwareInfo.setType(FIRMWARE); 178 firmwareInfo.setType(FIRMWARE);
172 firmwareInfo.setTitle(TITLE); 179 firmwareInfo.setTitle(TITLE);
173 firmwareInfo.setVersion(VERSION); 180 firmwareInfo.setVersion(VERSION);
  181 + firmwareInfo.setUsesUrl(false);
174 182
175 - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); 183 + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
176 184
177 OtaPackageInfo foundFirmware = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class); 185 OtaPackageInfo foundFirmware = doGet("/api/otaPackage/info/" + savedFirmwareInfo.getId().getId().toString(), OtaPackageInfo.class);
178 Assert.assertNotNull(foundFirmware); 186 Assert.assertNotNull(foundFirmware);
@@ -181,13 +189,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes @@ -181,13 +189,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
181 189
182 @Test 190 @Test
183 public void testFindFirmwareById() throws Exception { 191 public void testFindFirmwareById() throws Exception {
184 - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); 192 + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
185 firmwareInfo.setDeviceProfileId(deviceProfileId); 193 firmwareInfo.setDeviceProfileId(deviceProfileId);
186 firmwareInfo.setType(FIRMWARE); 194 firmwareInfo.setType(FIRMWARE);
187 firmwareInfo.setTitle(TITLE); 195 firmwareInfo.setTitle(TITLE);
188 firmwareInfo.setVersion(VERSION); 196 firmwareInfo.setVersion(VERSION);
  197 + firmwareInfo.setUsesUrl(false);
189 198
190 - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); 199 + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
191 200
192 MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); 201 MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array());
193 202
@@ -201,13 +210,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes @@ -201,13 +210,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
201 210
202 @Test 211 @Test
203 public void testDeleteFirmware() throws Exception { 212 public void testDeleteFirmware() throws Exception {
204 - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); 213 + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
205 firmwareInfo.setDeviceProfileId(deviceProfileId); 214 firmwareInfo.setDeviceProfileId(deviceProfileId);
206 firmwareInfo.setType(FIRMWARE); 215 firmwareInfo.setType(FIRMWARE);
207 firmwareInfo.setTitle(TITLE); 216 firmwareInfo.setTitle(TITLE);
208 firmwareInfo.setVersion(VERSION); 217 firmwareInfo.setVersion(VERSION);
  218 + firmwareInfo.setUsesUrl(false);
209 219
210 - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); 220 + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
211 221
212 doDelete("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString()) 222 doDelete("/api/otaPackage/" + savedFirmwareInfo.getId().getId().toString())
213 .andExpect(status().isOk()); 223 .andExpect(status().isOk());
@@ -220,13 +230,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes @@ -220,13 +230,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
220 public void testFindTenantFirmwares() throws Exception { 230 public void testFindTenantFirmwares() throws Exception {
221 List<OtaPackageInfo> otaPackages = new ArrayList<>(); 231 List<OtaPackageInfo> otaPackages = new ArrayList<>();
222 for (int i = 0; i < 165; i++) { 232 for (int i = 0; i < 165; i++) {
223 - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); 233 + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
224 firmwareInfo.setDeviceProfileId(deviceProfileId); 234 firmwareInfo.setDeviceProfileId(deviceProfileId);
225 firmwareInfo.setType(FIRMWARE); 235 firmwareInfo.setType(FIRMWARE);
226 firmwareInfo.setTitle(TITLE); 236 firmwareInfo.setTitle(TITLE);
227 firmwareInfo.setVersion(VERSION + i); 237 firmwareInfo.setVersion(VERSION + i);
  238 + firmwareInfo.setUsesUrl(false);
228 239
229 - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); 240 + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
230 241
231 if (i > 100) { 242 if (i > 100) {
232 MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); 243 MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array());
@@ -263,13 +274,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes @@ -263,13 +274,14 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
263 List<OtaPackageInfo> allOtaPackages = new ArrayList<>(); 274 List<OtaPackageInfo> allOtaPackages = new ArrayList<>();
264 275
265 for (int i = 0; i < 165; i++) { 276 for (int i = 0; i < 165; i++) {
266 - OtaPackageInfo firmwareInfo = new OtaPackageInfo(); 277 + SaveOtaPackageInfoRequest firmwareInfo = new SaveOtaPackageInfoRequest();
267 firmwareInfo.setDeviceProfileId(deviceProfileId); 278 firmwareInfo.setDeviceProfileId(deviceProfileId);
268 firmwareInfo.setType(FIRMWARE); 279 firmwareInfo.setType(FIRMWARE);
269 firmwareInfo.setTitle(TITLE); 280 firmwareInfo.setTitle(TITLE);
270 firmwareInfo.setVersion(VERSION + i); 281 firmwareInfo.setVersion(VERSION + i);
  282 + firmwareInfo.setUsesUrl(false);
271 283
272 - OtaPackageInfo savedFirmwareInfo = save(firmwareInfo, false); 284 + OtaPackageInfo savedFirmwareInfo = save(firmwareInfo);
273 285
274 if (i > 100) { 286 if (i > 100) {
275 MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array()); 287 MockMultipartFile testData = new MockMultipartFile("file", FILE_NAME, CONTENT_TYPE, DATA.array());
@@ -316,8 +328,8 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes @@ -316,8 +328,8 @@ public abstract class BaseOtaPackageControllerTest extends AbstractControllerTes
316 Assert.assertEquals(allOtaPackages, allLoadedOtaPackages); 328 Assert.assertEquals(allOtaPackages, allLoadedOtaPackages);
317 } 329 }
318 330
319 - private OtaPackageInfo save(OtaPackageInfo firmwareInfo, boolean isUrl) throws Exception {  
320 - return doPost("/api/otaPackage?isUrl=" + isUrl, firmwareInfo, OtaPackageInfo.class); 331 + private OtaPackageInfo save(SaveOtaPackageInfoRequest firmwareInfo) throws Exception {
  332 + return doPost("/api/otaPackage", firmwareInfo, OtaPackageInfo.class);
321 } 333 }
322 334
323 protected OtaPackageInfo savaData(String urlTemplate, MockMultipartFile content, String... params) throws Exception { 335 protected OtaPackageInfo savaData(String urlTemplate, MockMultipartFile content, String... params) throws Exception {
  1 +/**
  2 + * Copyright © 2016-2021 The Thingsboard Authors
  3 + *
  4 + * Licensed under the Apache License, Version 2.0 (the "License");
  5 + * you may not use this file except in compliance with the License.
  6 + * You may obtain a copy of the License at
  7 + *
  8 + * http://www.apache.org/licenses/LICENSE-2.0
  9 + *
  10 + * Unless required by applicable law or agreed to in writing, software
  11 + * distributed under the License is distributed on an "AS IS" BASIS,
  12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13 + * See the License for the specific language governing permissions and
  14 + * limitations under the License.
  15 + */
  16 +package org.thingsboard.server.common.data;
  17 +
  18 +import lombok.Data;
  19 +import lombok.EqualsAndHashCode;
  20 +import lombok.NoArgsConstructor;
  21 +
  22 +@Data
  23 +@EqualsAndHashCode(callSuper = true)
  24 +@NoArgsConstructor
  25 +public class SaveOtaPackageInfoRequest extends OtaPackageInfo{
  26 + boolean usesUrl;
  27 +
  28 + public SaveOtaPackageInfoRequest(OtaPackageInfo otaPackageInfo, boolean usesUrl) {
  29 + super(otaPackageInfo);
  30 + this.usesUrl = usesUrl;
  31 + }
  32 +
  33 + public SaveOtaPackageInfoRequest(SaveOtaPackageInfoRequest saveOtaPackageInfoRequest) {
  34 + super(saveOtaPackageInfoRequest);
  35 + this.usesUrl = saveOtaPackageInfoRequest.isUsesUrl();
  36 + }
  37 +}