Commit c85aea31a0a8c00cc5a834d4d5c780861da3de14

Authored by Volodymyr Babak
1 parent 20a230fd

Added possibility to disable validation for save edge function

... ... @@ -127,7 +127,7 @@ public class EdgeController extends BaseController {
127 127 accessControlService.checkPermission(getCurrentUser(), Resource.EDGE, operation,
128 128 edge.getId(), edge);
129 129
130   - Edge savedEdge = checkNotNull(edgeService.saveEdge(edge));
  130 + Edge savedEdge = checkNotNull(edgeService.saveEdge(edge, true));
131 131
132 132 if (created) {
133 133 ruleChainService.assignRuleChainToEdge(tenantId, edgeTemplateRootRuleChain.getId(), savedEdge.getId());
... ...
... ... @@ -100,7 +100,7 @@ public class DefaultEdgeNotificationService implements EdgeNotificationService {
100 100 @Override
101 101 public Edge setEdgeRootRuleChain(TenantId tenantId, Edge edge, RuleChainId ruleChainId) throws IOException {
102 102 edge.setRootRuleChainId(ruleChainId);
103   - Edge savedEdge = edgeService.saveEdge(edge);
  103 + Edge savedEdge = edgeService.saveEdge(edge, true);
104 104 saveEdgeEvent(tenantId, edge.getId(), EdgeEventType.RULE_CHAIN, EdgeEventActionType.UPDATED, ruleChainId, null);
105 105 return savedEdge;
106 106 }
... ...
... ... @@ -44,7 +44,7 @@ public interface EdgeService {
44 44
45 45 Optional<Edge> findEdgeByRoutingKey(TenantId tenantId, String routingKey);
46 46
47   - Edge saveEdge(Edge edge);
  47 + Edge saveEdge(Edge edge, boolean doValidate);
48 48
49 49 Edge assignEdgeToCustomer(TenantId tenantId, EdgeId edgeId, CustomerId customerId);
50 50
... ...
... ... @@ -180,9 +180,11 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic
180 180
181 181 @CacheEvict(cacheNames = EDGE_CACHE, key = "{#edge.tenantId, #edge.name}")
182 182 @Override
183   - public Edge saveEdge(Edge edge) {
  183 + public Edge saveEdge(Edge edge, boolean doValidate) {
184 184 log.trace("Executing saveEdge [{}]", edge);
185   - edgeValidator.validate(edge, Edge::getTenantId);
  185 + if (doValidate) {
  186 + edgeValidator.validate(edge, Edge::getTenantId);
  187 + }
186 188 try {
187 189 return edgeDao.save(edge.getTenantId(), edge);
188 190 } catch (Exception t) {
... ... @@ -201,7 +203,7 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic
201 203 log.trace("[{}] Executing assignEdgeToCustomer [{}][{}]", tenantId, edgeId, customerId);
202 204 Edge edge = findEdgeById(tenantId, edgeId);
203 205 edge.setCustomerId(customerId);
204   - return saveEdge(edge);
  206 + return saveEdge(edge, true);
205 207 }
206 208
207 209 @Override
... ... @@ -209,7 +211,7 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic
209 211 log.trace("[{}] Executing unassignEdgeFromCustomer [{}]", tenantId, edgeId);
210 212 Edge edge = findEdgeById(tenantId, edgeId);
211 213 edge.setCustomerId(null);
212   - return saveEdge(edge);
  214 + return saveEdge(edge, true);
213 215 }
214 216
215 217 @Override
... ...
... ... @@ -360,7 +360,7 @@ public abstract class BaseDashboardServiceTest extends AbstractServiceTest {
360 360 edge.setRoutingKey(RandomStringUtils.randomAlphanumeric(20));
361 361 edge.setEdgeLicenseKey(RandomStringUtils.randomAlphanumeric(20));
362 362 edge.setCloudEndpoint("http://localhost:8080");
363   - edge = edgeService.saveEdge(edge);
  363 + edge = edgeService.saveEdge(edge, true);
364 364 try {
365 365 dashboardService.assignDashboardToEdge(tenantId, dashboard.getId(), edge.getId());
366 366 } finally {
... ...
... ... @@ -60,7 +60,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
60 60 @Test
61 61 public void testSaveEdge() {
62 62 Edge edge = constructEdge("My edge", "default");
63   - Edge savedEdge = edgeService.saveEdge(edge);
  63 + Edge savedEdge = edgeService.saveEdge(edge, true);
64 64
65 65 Assert.assertNotNull(savedEdge);
66 66 Assert.assertNotNull(savedEdge.getId());
... ... @@ -72,7 +72,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
72 72
73 73 savedEdge.setName("My new edge");
74 74
75   - edgeService.saveEdge(savedEdge);
  75 + edgeService.saveEdge(savedEdge, true);
76 76 Edge foundEdge = edgeService.findEdgeById(tenantId, savedEdge.getId());
77 77 Assert.assertEquals(foundEdge.getName(), savedEdge.getName());
78 78
... ... @@ -84,7 +84,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
84 84 Edge edge = new Edge();
85 85 edge.setType("default");
86 86 edge.setTenantId(tenantId);
87   - edgeService.saveEdge(edge);
  87 + edgeService.saveEdge(edge, true);
88 88 }
89 89
90 90 @Test(expected = DataValidationException.class)
... ... @@ -92,7 +92,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
92 92 Edge edge = new Edge();
93 93 edge.setName("My edge");
94 94 edge.setType("default");
95   - edgeService.saveEdge(edge);
  95 + edgeService.saveEdge(edge, true);
96 96 }
97 97
98 98 @Test(expected = DataValidationException.class)
... ... @@ -101,13 +101,13 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
101 101 edge.setName("My edge");
102 102 edge.setType("default");
103 103 edge.setTenantId(new TenantId(Uuids.timeBased()));
104   - edgeService.saveEdge(edge);
  104 + edgeService.saveEdge(edge, true);
105 105 }
106 106
107 107 @Test(expected = DataValidationException.class)
108 108 public void testAssignEdgeToNonExistentCustomer() {
109 109 Edge edge = constructEdge("My edge", "default");
110   - edge = edgeService.saveEdge(edge);
  110 + edge = edgeService.saveEdge(edge, true);
111 111 try {
112 112 edgeService.assignEdgeToCustomer(tenantId, edge.getId(), new CustomerId(Uuids.timeBased()));
113 113 } finally {
... ... @@ -118,7 +118,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
118 118 @Test(expected = DataValidationException.class)
119 119 public void testAssignEdgeToCustomerFromDifferentTenant() {
120 120 Edge edge = constructEdge("My edge", "default");
121   - edge = edgeService.saveEdge(edge);
  121 + edge = edgeService.saveEdge(edge, true);
122 122 Tenant tenant = new Tenant();
123 123 tenant.setTitle("Test different tenant");
124 124 tenant = tenantService.saveTenant(tenant);
... ... @@ -137,7 +137,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
137 137 @Test
138 138 public void testFindEdgeById() {
139 139 Edge edge = constructEdge("My edge", "default");
140   - Edge savedEdge = edgeService.saveEdge(edge);
  140 + Edge savedEdge = edgeService.saveEdge(edge, true);
141 141 Edge foundEdge = edgeService.findEdgeById(tenantId, savedEdge.getId());
142 142 Assert.assertNotNull(foundEdge);
143 143 Assert.assertEquals(savedEdge, foundEdge);
... ... @@ -150,15 +150,15 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
150 150 try {
151 151 for (int i = 0; i < 3; i++) {
152 152 Edge edge = constructEdge("My edge B" + i, "typeB");
153   - edges.add(edgeService.saveEdge(edge));
  153 + edges.add(edgeService.saveEdge(edge, true));
154 154 }
155 155 for (int i = 0; i < 7; i++) {
156 156 Edge edge = constructEdge("My edge C" + i, "typeC");
157   - edges.add(edgeService.saveEdge(edge));
  157 + edges.add(edgeService.saveEdge(edge, true));
158 158 }
159 159 for (int i = 0; i < 9; i++) {
160 160 Edge edge = constructEdge("My edge A" + i, "typeA");
161   - edges.add(edgeService.saveEdge(edge));
  161 + edges.add(edgeService.saveEdge(edge, true));
162 162 }
163 163 List<EntitySubtype> edgeTypes = edgeService.findEdgeTypesByTenantId(tenantId).get();
164 164 Assert.assertNotNull(edgeTypes);
... ... @@ -176,7 +176,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
176 176 @Test
177 177 public void testDeleteEdge() {
178 178 Edge edge = constructEdge("My edge", "default");
179   - Edge savedEdge = edgeService.saveEdge(edge);
  179 + Edge savedEdge = edgeService.saveEdge(edge, true);
180 180 Edge foundEdge = edgeService.findEdgeById(tenantId, savedEdge.getId());
181 181 Assert.assertNotNull(foundEdge);
182 182 edgeService.deleteEdge(tenantId, savedEdge.getId());
... ... @@ -195,7 +195,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
195 195 List<Edge> edges = new ArrayList<>();
196 196 for (int i = 0; i < 178; i++) {
197 197 Edge edge = constructEdge(tenantId, "Edge " + i, "default");
198   - edges.add(edgeService.saveEdge(edge));
  198 + edges.add(edgeService.saveEdge(edge, true));
199 199 }
200 200
201 201 List<Edge> loadedEdges = new ArrayList<>();
... ... @@ -233,7 +233,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
233 233 String name = title1 + suffix;
234 234 name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase();
235 235 Edge edge = constructEdge(name, "default");
236   - edgesTitle1.add(edgeService.saveEdge(edge));
  236 + edgesTitle1.add(edgeService.saveEdge(edge, true));
237 237 }
238 238 String title2 = "Edge title 2";
239 239 List<Edge> edgesTitle2 = new ArrayList<>();
... ... @@ -242,7 +242,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
242 242 String name = title2 + suffix;
243 243 name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase();
244 244 Edge edge = constructEdge(name, "default");
245   - edgesTitle2.add(edgeService.saveEdge(edge));
  245 + edgesTitle2.add(edgeService.saveEdge(edge, true));
246 246 }
247 247
248 248 List<Edge> loadedEdgesTitle1 = new ArrayList<>();
... ... @@ -305,7 +305,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
305 305 String name = title1 + suffix;
306 306 name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase();
307 307 Edge edge = constructEdge(name, type1);
308   - edgesType1.add(edgeService.saveEdge(edge));
  308 + edgesType1.add(edgeService.saveEdge(edge, true));
309 309 }
310 310 String title2 = "Edge title 2";
311 311 String type2 = "typeB";
... ... @@ -315,7 +315,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
315 315 String name = title2 + suffix;
316 316 name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase();
317 317 Edge edge = constructEdge(name, type2);
318   - edgesType2.add(edgeService.saveEdge(edge));
  318 + edgesType2.add(edgeService.saveEdge(edge, true));
319 319 }
320 320
321 321 List<Edge> loadedEdgesType1 = new ArrayList<>();
... ... @@ -385,7 +385,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
385 385 List<Edge> edges = new ArrayList<>();
386 386 for (int i = 0; i < 278; i++) {
387 387 Edge edge = constructEdge(tenantId, "Edge" + i, "default");
388   - edge = edgeService.saveEdge(edge);
  388 + edge = edgeService.saveEdge(edge, true);
389 389 edges.add(edgeService.assignEdgeToCustomer(tenantId, edge.getId(), customerId));
390 390 }
391 391
... ... @@ -431,7 +431,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
431 431 String name = title1 + suffix;
432 432 name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase();
433 433 Edge edge = constructEdge(name, "default");
434   - edge = edgeService.saveEdge(edge);
  434 + edge = edgeService.saveEdge(edge, true);
435 435 edgesTitle1.add(edgeService.assignEdgeToCustomer(tenantId, edge.getId(), customerId));
436 436 }
437 437 String title2 = "Edge title 2";
... ... @@ -441,7 +441,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
441 441 String name = title2 + suffix;
442 442 name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase();
443 443 Edge edge = constructEdge(name, "default");
444   - edge = edgeService.saveEdge(edge);
  444 + edge = edgeService.saveEdge(edge, true);
445 445 edgesTitle2.add(edgeService.assignEdgeToCustomer(tenantId, edge.getId(), customerId));
446 446 }
447 447
... ... @@ -513,7 +513,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
513 513 String name = title1 + suffix;
514 514 name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase();
515 515 Edge edge = constructEdge(name, type1);
516   - edge = edgeService.saveEdge(edge);
  516 + edge = edgeService.saveEdge(edge, true);
517 517 edgesType1.add(edgeService.assignEdgeToCustomer(tenantId, edge.getId(), customerId));
518 518 }
519 519 String title2 = "Edge title 2";
... ... @@ -524,7 +524,7 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
524 524 String name = title2 + suffix;
525 525 name = i % 2 == 0 ? name.toLowerCase() : name.toUpperCase();
526 526 Edge edge = constructEdge(name, type2);
527   - edge = edgeService.saveEdge(edge);
  527 + edge = edgeService.saveEdge(edge, true);
528 528 edgesType2.add(edgeService.assignEdgeToCustomer(tenantId, edge.getId(), customerId));
529 529 }
530 530
... ... @@ -589,12 +589,12 @@ public abstract class BaseEdgeServiceTest extends AbstractServiceTest {
589 589 String edgeNameAfterRename = RandomStringUtils.randomAlphanumeric(15);
590 590
591 591 Edge edge = constructEdge(tenantId, edgeNameBeforeRename, "default");
592   - edgeService.saveEdge(edge);
  592 + edgeService.saveEdge(edge, true);
593 593
594 594 Edge savedEdge = edgeService.findEdgeByTenantIdAndName(tenantId, edgeNameBeforeRename);
595 595
596 596 savedEdge.setName(edgeNameAfterRename);
597   - edgeService.saveEdge(savedEdge);
  597 + edgeService.saveEdge(savedEdge, true);
598 598
599 599 Edge renamedEdge = edgeService.findEdgeByTenantIdAndName(tenantId, edgeNameBeforeRename);
600 600
... ...
... ... @@ -224,7 +224,7 @@ public abstract class BaseEntityServiceTest extends AbstractServiceTest {
224 224 List<Edge> edges = new ArrayList<>();
225 225 for (int i = 0; i < 97; i++) {
226 226 Edge edge = createEdge(i, "default");
227   - edges.add(edgeService.saveEdge(edge));
  227 + edges.add(edgeService.saveEdge(edge, true));
228 228 }
229 229
230 230 EdgeTypeFilter filter = new EdgeTypeFilter();
... ... @@ -262,7 +262,7 @@ public abstract class BaseEntityServiceTest extends AbstractServiceTest {
262 262 public void testCountHierarchicalEntitiesByEdgeSearchQuery() throws InterruptedException {
263 263 for (int i = 0; i < 5; i++) {
264 264 Edge edge = createEdge(i, "type" + i);
265   - edge = edgeService.saveEdge(edge);
  265 + edge = edgeService.saveEdge(edge, true);
266 266 //TO make sure devices have different created time
267 267 Thread.sleep(1);
268 268
... ...
... ... @@ -495,7 +495,7 @@ public abstract class BaseRuleChainServiceTest extends AbstractServiceTest {
495 495 @Test
496 496 public void testFindEdgeRuleChainsByTenantIdAndName() {
497 497 Edge edge = constructEdge(tenantId, "My edge", "default");
498   - Edge savedEdge = edgeService.saveEdge(edge);
  498 + Edge savedEdge = edgeService.saveEdge(edge, true);
499 499
500 500 String name1 = "Edge RuleChain name 1";
501 501 List<RuleChain> ruleChainsName1 = new ArrayList<>();
... ...