Commit 138a0ba5813a253a12ecab5a3cbdfbcf0576d1f7

Authored by VoBa
Committed by GitHub
2 parents ef12b7be a540298a

Merge pull request #11 from BohdanSmetanyuk/bug/similar_edges_in_db

fixed bug with saving similar edges in db
@@ -32,14 +32,12 @@ import org.springframework.stereotype.Service; @@ -32,14 +32,12 @@ import org.springframework.stereotype.Service;
32 import org.springframework.util.StringUtils; 32 import org.springframework.util.StringUtils;
33 import org.thingsboard.server.common.data.Customer; 33 import org.thingsboard.server.common.data.Customer;
34 import org.thingsboard.server.common.data.Dashboard; 34 import org.thingsboard.server.common.data.Dashboard;
35 -import org.thingsboard.server.common.data.DashboardInfo;  
36 import org.thingsboard.server.common.data.DataConstants; 35 import org.thingsboard.server.common.data.DataConstants;
37 import org.thingsboard.server.common.data.Device; 36 import org.thingsboard.server.common.data.Device;
38 import org.thingsboard.server.common.data.EntitySubtype; 37 import org.thingsboard.server.common.data.EntitySubtype;
39 import org.thingsboard.server.common.data.EntityType; 38 import org.thingsboard.server.common.data.EntityType;
40 import org.thingsboard.server.common.data.EntityView; 39 import org.thingsboard.server.common.data.EntityView;
41 import org.thingsboard.server.common.data.Event; 40 import org.thingsboard.server.common.data.Event;
42 -import org.thingsboard.server.common.data.ShortEdgeInfo;  
43 import org.thingsboard.server.common.data.Tenant; 41 import org.thingsboard.server.common.data.Tenant;
44 import org.thingsboard.server.common.data.alarm.Alarm; 42 import org.thingsboard.server.common.data.alarm.Alarm;
45 import org.thingsboard.server.common.data.asset.Asset; 43 import org.thingsboard.server.common.data.asset.Asset;
@@ -47,13 +45,10 @@ import org.thingsboard.server.common.data.edge.Edge; @@ -47,13 +45,10 @@ import org.thingsboard.server.common.data.edge.Edge;
47 import org.thingsboard.server.common.data.edge.EdgeQueueEntityType; 45 import org.thingsboard.server.common.data.edge.EdgeQueueEntityType;
48 import org.thingsboard.server.common.data.edge.EdgeQueueEntry; 46 import org.thingsboard.server.common.data.edge.EdgeQueueEntry;
49 import org.thingsboard.server.common.data.edge.EdgeSearchQuery; 47 import org.thingsboard.server.common.data.edge.EdgeSearchQuery;
50 -import org.thingsboard.server.common.data.id.AssetId;  
51 import org.thingsboard.server.common.data.id.CustomerId; 48 import org.thingsboard.server.common.data.id.CustomerId;
52 import org.thingsboard.server.common.data.id.DashboardId; 49 import org.thingsboard.server.common.data.id.DashboardId;
53 -import org.thingsboard.server.common.data.id.DeviceId;  
54 import org.thingsboard.server.common.data.id.EdgeId; 50 import org.thingsboard.server.common.data.id.EdgeId;
55 import org.thingsboard.server.common.data.id.EntityId; 51 import org.thingsboard.server.common.data.id.EntityId;
56 -import org.thingsboard.server.common.data.id.EntityViewId;  
57 import org.thingsboard.server.common.data.id.RuleChainId; 52 import org.thingsboard.server.common.data.id.RuleChainId;
58 import org.thingsboard.server.common.data.id.TenantId; 53 import org.thingsboard.server.common.data.id.TenantId;
59 import org.thingsboard.server.common.data.page.TextPageData; 54 import org.thingsboard.server.common.data.page.TextPageData;
@@ -730,6 +725,11 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic @@ -730,6 +725,11 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic
730 throw new DataValidationException("Edge with such name already exists!"); 725 throw new DataValidationException("Edge with such name already exists!");
731 } 726 }
732 ); 727 );
  728 + edgeDao.findByRoutingKey(edge.getTenantId().getId(), edge.getRoutingKey()).ifPresent(
  729 + d -> {
  730 + throw new DataValidationException("Edge with such routing_key already exists");
  731 + }
  732 + );
733 } 733 }
734 } 734 }
735 735
@@ -743,6 +743,13 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic @@ -743,6 +743,13 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic
743 } 743 }
744 } 744 }
745 ); 745 );
  746 + edgeDao.findByRoutingKey(edge.getTenantId().getId(), edge.getRoutingKey()).ifPresent(
  747 + e -> {
  748 + if (!e.getUuidId().equals(edge.getUuidId())) {
  749 + throw new DataValidationException("Edge with such routing_key already exists!");
  750 + }
  751 + }
  752 + );
746 } 753 }
747 } 754 }
748 755
@@ -266,5 +266,7 @@ CREATE TABLE IF NOT EXISTS edge ( @@ -266,5 +266,7 @@ CREATE TABLE IF NOT EXISTS edge (
266 routing_key varchar(255), 266 routing_key varchar(255),
267 secret varchar(255), 267 secret varchar(255),
268 search_text varchar(255), 268 search_text varchar(255),
269 - tenant_id varchar(31) 269 + tenant_id varchar(31),
  270 + CONSTRAINT edge_name_unq_key UNIQUE (tenant_id, name),
  271 + CONSTRAINT edge_routing_key_unq_key UNIQUE (routing_key)
270 ); 272 );
@@ -266,7 +266,9 @@ CREATE TABLE IF NOT EXISTS edge ( @@ -266,7 +266,9 @@ CREATE TABLE IF NOT EXISTS edge (
266 routing_key varchar(255), 266 routing_key varchar(255),
267 secret varchar(255), 267 secret varchar(255),
268 search_text varchar(255), 268 search_text varchar(255),
269 - tenant_id varchar(31) 269 + tenant_id varchar(31),
  270 + CONSTRAINT edge_name_unq_key UNIQUE (tenant_id, name),
  271 + CONSTRAINT edge_routing_key_unq_key UNIQUE (routing_key)
270 ); 272 );
271 273
272 CREATE OR REPLACE PROCEDURE cleanup_events_by_ttl(IN ttl bigint, IN debug_ttl bigint, INOUT deleted bigint) 274 CREATE OR REPLACE PROCEDURE cleanup_events_by_ttl(IN ttl bigint, IN debug_ttl bigint, INOUT deleted bigint)