From 769428c42e2099f4e64b784d0d46faa29f8d5adc Mon Sep 17 00:00:00 2001 From: Artem Babak Date: Tue, 15 Dec 2020 09:51:18 +0200 Subject: [PATCH 1/4] Fix edge import --- ui/src/app/import-export/import-export.service.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ui/src/app/import-export/import-export.service.js b/ui/src/app/import-export/import-export.service.js index 17457ae8d6..dc0fbf1ea7 100644 --- a/ui/src/app/import-export/import-export.service.js +++ b/ui/src/app/import-export/import-export.service.js @@ -614,6 +614,16 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, } ); return deferred.promise; + case types.entityType.edge: + openImportDialogCSV($event, entityType, 'edge.import', 'edge.edge-file').then( + function success() { + deferred.resolve(); + }, + function fail() { + deferred.reject(); + } + ); + return deferred.promise; } } From 720c89f1097394ba4c2bd3f362a6e3f6bb60cd7c Mon Sep 17 00:00:00 2001 From: Artem Babak Date: Tue, 15 Dec 2020 09:53:16 +0200 Subject: [PATCH 2/4] Fix edge import locale --- ui/src/app/locale/locale.constant-en_US.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ui/src/app/locale/locale.constant-en_US.json b/ui/src/app/locale/locale.constant-en_US.json index 5ec07cf6cf..e97afff89f 100644 --- a/ui/src/app/locale/locale.constant-en_US.json +++ b/ui/src/app/locale/locale.constant-en_US.json @@ -765,6 +765,7 @@ "edge": { "edge": "Edge", "edges": "Edges", + "edge-file": "Edge file", "management": "Edge management", "no-edges-matching": "No edges matching '{{entity}}' were found.", "add": "Add Edge", From 6cdb54970435156281e3cdd74195aa08e0977401 Mon Sep 17 00:00:00 2001 From: Artem Babak Date: Tue, 15 Dec 2020 11:06:39 +0200 Subject: [PATCH 3/4] Added ConstraintViolationException for saveEdge --- .../server/dao/edge/EdgeServiceImpl.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java index 07059da06e..e23c19be19 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java @@ -25,6 +25,7 @@ import org.apache.http.HttpHost; import org.apache.http.conn.ssl.DefaultHostnameVerifier; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; +import org.hibernate.exception.ConstraintViolationException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.Cache; @@ -172,6 +173,21 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic public Edge saveEdge(Edge edge) { log.trace("Executing saveEdge [{}]", edge); edgeValidator.validate(edge, Edge::getTenantId); + Edge savedEdge; + if (!sqlDatabaseUsed) { + savedEdge = edgeDao.save(edge.getTenantId(), edge); + } else { + try { + savedEdge = edgeDao.save(edge.getTenantId(), edge); + } catch (Exception t) { + ConstraintViolationException e = extractConstraintViolationException(t).orElse(null); + if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("edge_name_unq_key")) { + throw new DataValidationException("Edge with such name already exists!"); + } else { + throw t; + } + } + } return edgeDao.save(edge.getTenantId(), edge); } From 1178e5779a139cd6566f432779c205cb84c3f35f Mon Sep 17 00:00:00 2001 From: Artem Babak Date: Tue, 15 Dec 2020 11:15:37 +0200 Subject: [PATCH 4/4] Fix for ConstraintViolationException for saveEdge --- .../java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java index e23c19be19..db0da5016e 100644 --- a/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java +++ b/dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java @@ -188,7 +188,7 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic } } } - return edgeDao.save(edge.getTenantId(), edge); + return savedEdge; } @Override