Notify edge in case assign entity to public customer
This commit is contained in:
parent
59b4049560
commit
09b41e1aef
@ -426,11 +426,7 @@ public class EntityViewController extends BaseController {
|
|||||||
checkParameter(ENTITY_VIEW_ID, strEntityViewId);
|
checkParameter(ENTITY_VIEW_ID, strEntityViewId);
|
||||||
EntityViewId entityViewId = new EntityViewId(toUUID(strEntityViewId));
|
EntityViewId entityViewId = new EntityViewId(toUUID(strEntityViewId));
|
||||||
checkEntityViewId(entityViewId, Operation.ASSIGN_TO_CUSTOMER);
|
checkEntityViewId(entityViewId, Operation.ASSIGN_TO_CUSTOMER);
|
||||||
|
return tbEntityViewService.assignEntityViewToPublicCustomer(getTenantId(), entityViewId, getCurrentUser());
|
||||||
Customer publicCustomer = customerService.findOrCreatePublicCustomer(getTenantId());
|
|
||||||
|
|
||||||
return tbEntityViewService.assignEntityViewToPublicCustomer(getTenantId(), getCurrentUser().getCustomerId(),
|
|
||||||
publicCustomer, entityViewId, getCurrentUser());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "Assign entity view to edge (assignEntityViewToEdge)",
|
@ApiOperation(value = "Assign entity view to edge (assignEntityViewToEdge)",
|
||||||
|
|||||||
@ -130,13 +130,9 @@ public class DefaultTbNotificationEntityService implements TbNotificationEntityS
|
|||||||
public <E extends HasName, I extends EntityId> void notifyAssignOrUnassignEntityToCustomer(TenantId tenantId, I entityId,
|
public <E extends HasName, I extends EntityId> void notifyAssignOrUnassignEntityToCustomer(TenantId tenantId, I entityId,
|
||||||
CustomerId customerId, E entity,
|
CustomerId customerId, E entity,
|
||||||
ActionType actionType,
|
ActionType actionType,
|
||||||
User user, boolean sendToEdge,
|
User user, Object... additionalInfo) {
|
||||||
Object... additionalInfo) {
|
|
||||||
logEntityAction(tenantId, entityId, entity, customerId, actionType, user, additionalInfo);
|
logEntityAction(tenantId, entityId, entity, customerId, actionType, user, additionalInfo);
|
||||||
|
sendEntityNotificationMsg(tenantId, entityId, edgeTypeByActionType(actionType), JacksonUtil.toString(customerId));
|
||||||
if (sendToEdge) {
|
|
||||||
sendEntityNotificationMsg(tenantId, entityId, edgeTypeByActionType(actionType), JacksonUtil.toString(customerId));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -73,8 +73,7 @@ public interface TbNotificationEntityService {
|
|||||||
<E extends HasName, I extends EntityId> void notifyAssignOrUnassignEntityToCustomer(TenantId tenantId, I entityId,
|
<E extends HasName, I extends EntityId> void notifyAssignOrUnassignEntityToCustomer(TenantId tenantId, I entityId,
|
||||||
CustomerId customerId, E entity,
|
CustomerId customerId, E entity,
|
||||||
ActionType actionType,
|
ActionType actionType,
|
||||||
User user, boolean sendToEdge,
|
User user, Object... additionalInfo);
|
||||||
Object... additionalInfo);
|
|
||||||
|
|
||||||
<E extends HasName, I extends EntityId> void notifyAssignOrUnassignEntityToEdge(TenantId tenantId, I entityId,
|
<E extends HasName, I extends EntityId> void notifyAssignOrUnassignEntityToEdge(TenantId tenantId, I entityId,
|
||||||
CustomerId customerId, EdgeId edgeId,
|
CustomerId customerId, EdgeId edgeId,
|
||||||
|
|||||||
@ -98,7 +98,7 @@ public class DefaultTbAssetService extends AbstractTbEntityService implements Tb
|
|||||||
try {
|
try {
|
||||||
Asset savedAsset = checkNotNull(assetService.assignAssetToCustomer(tenantId, assetId, customerId));
|
Asset savedAsset = checkNotNull(assetService.assignAssetToCustomer(tenantId, assetId, customerId));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, assetId, customerId, savedAsset,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, assetId, customerId, savedAsset,
|
||||||
actionType, user, true, assetId.toString(), customerId.toString(), customer.getName());
|
actionType, user, assetId.toString(), customerId.toString(), customer.getName());
|
||||||
|
|
||||||
return savedAsset;
|
return savedAsset;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -115,7 +115,7 @@ public class DefaultTbAssetService extends AbstractTbEntityService implements Tb
|
|||||||
Asset savedAsset = checkNotNull(assetService.unassignAssetFromCustomer(tenantId, assetId));
|
Asset savedAsset = checkNotNull(assetService.unassignAssetFromCustomer(tenantId, assetId));
|
||||||
CustomerId customerId = customer.getId();
|
CustomerId customerId = customer.getId();
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, assetId, customerId, savedAsset,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, assetId, customerId, savedAsset,
|
||||||
actionType, user, true, assetId.toString(), customerId.toString(), customer.getName());
|
actionType, user, assetId.toString(), customerId.toString(), customer.getName());
|
||||||
|
|
||||||
return savedAsset;
|
return savedAsset;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -131,7 +131,7 @@ public class DefaultTbAssetService extends AbstractTbEntityService implements Tb
|
|||||||
Customer publicCustomer = customerService.findOrCreatePublicCustomer(tenantId);
|
Customer publicCustomer = customerService.findOrCreatePublicCustomer(tenantId);
|
||||||
Asset savedAsset = checkNotNull(assetService.assignAssetToCustomer(tenantId, assetId, publicCustomer.getId()));
|
Asset savedAsset = checkNotNull(assetService.assignAssetToCustomer(tenantId, assetId, publicCustomer.getId()));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, assetId, savedAsset.getCustomerId(), savedAsset,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, assetId, savedAsset.getCustomerId(), savedAsset,
|
||||||
actionType, user, false, actionType.toString(), publicCustomer.getId().toString(), publicCustomer.getName());
|
actionType, user, assetId.toString(), publicCustomer.getId().toString(), publicCustomer.getName());
|
||||||
|
|
||||||
return savedAsset;
|
return savedAsset;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|||||||
@ -84,7 +84,7 @@ public class DefaultTbDashboardService extends AbstractTbEntityService implement
|
|||||||
try {
|
try {
|
||||||
Dashboard savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(tenantId, dashboardId, customerId));
|
Dashboard savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(tenantId, dashboardId, customerId));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, customerId, savedDashboard,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, customerId, savedDashboard,
|
||||||
actionType, user, true, dashboardId.toString(), customerId.toString(), customer.getName());
|
actionType, user, dashboardId.toString(), customerId.toString(), customer.getName());
|
||||||
return savedDashboard;
|
return savedDashboard;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.DASHBOARD), actionType,
|
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.DASHBOARD), actionType,
|
||||||
@ -102,7 +102,7 @@ public class DefaultTbDashboardService extends AbstractTbEntityService implement
|
|||||||
Customer publicCustomer = customerService.findOrCreatePublicCustomer(tenantId);
|
Customer publicCustomer = customerService.findOrCreatePublicCustomer(tenantId);
|
||||||
Dashboard savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(tenantId, dashboardId, publicCustomer.getId()));
|
Dashboard savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(tenantId, dashboardId, publicCustomer.getId()));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, publicCustomer.getId(), savedDashboard,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, publicCustomer.getId(), savedDashboard,
|
||||||
actionType, user, false, dashboardId.toString(),
|
actionType, user, dashboardId.toString(),
|
||||||
publicCustomer.getId().toString(), publicCustomer.getName());
|
publicCustomer.getId().toString(), publicCustomer.getName());
|
||||||
return savedDashboard;
|
return savedDashboard;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -120,7 +120,7 @@ public class DefaultTbDashboardService extends AbstractTbEntityService implement
|
|||||||
Customer publicCustomer = customerService.findOrCreatePublicCustomer(tenantId);
|
Customer publicCustomer = customerService.findOrCreatePublicCustomer(tenantId);
|
||||||
Dashboard savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboardId, publicCustomer.getId()));
|
Dashboard savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboardId, publicCustomer.getId()));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, publicCustomer.getId(), dashboard,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, publicCustomer.getId(), dashboard,
|
||||||
actionType, user, false, dashboardId.toString(),
|
actionType, user, dashboardId.toString(),
|
||||||
publicCustomer.getId().toString(), publicCustomer.getName());
|
publicCustomer.getId().toString(), publicCustomer.getName());
|
||||||
return savedDashboard;
|
return savedDashboard;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -160,14 +160,14 @@ public class DefaultTbDashboardService extends AbstractTbEntityService implement
|
|||||||
savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(tenantId, dashboardId, customerId));
|
savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(tenantId, dashboardId, customerId));
|
||||||
ShortCustomerInfo customerInfo = savedDashboard.getAssignedCustomerInfo(customerId);
|
ShortCustomerInfo customerInfo = savedDashboard.getAssignedCustomerInfo(customerId);
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, savedDashboard.getId(), customerId, savedDashboard,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, savedDashboard.getId(), customerId, savedDashboard,
|
||||||
actionType, user, true, dashboardId.toString(), customerId.toString(), customerInfo.getTitle());
|
actionType, user, dashboardId.toString(), customerId.toString(), customerInfo.getTitle());
|
||||||
}
|
}
|
||||||
actionType = ActionType.UNASSIGNED_FROM_CUSTOMER;
|
actionType = ActionType.UNASSIGNED_FROM_CUSTOMER;
|
||||||
for (CustomerId customerId : removedCustomerIds) {
|
for (CustomerId customerId : removedCustomerIds) {
|
||||||
ShortCustomerInfo customerInfo = dashboard.getAssignedCustomerInfo(customerId);
|
ShortCustomerInfo customerInfo = dashboard.getAssignedCustomerInfo(customerId);
|
||||||
savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboardId, customerId));
|
savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboardId, customerId));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, savedDashboard.getId(), customerId, savedDashboard,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, savedDashboard.getId(), customerId, savedDashboard,
|
||||||
ActionType.UNASSIGNED_FROM_CUSTOMER, user, true, dashboardId.toString(), customerId.toString(), customerInfo.getTitle());
|
ActionType.UNASSIGNED_FROM_CUSTOMER, user, dashboardId.toString(), customerId.toString(), customerInfo.getTitle());
|
||||||
}
|
}
|
||||||
return savedDashboard;
|
return savedDashboard;
|
||||||
}
|
}
|
||||||
@ -197,7 +197,7 @@ public class DefaultTbDashboardService extends AbstractTbEntityService implement
|
|||||||
savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(tenantId, dashboardId, customerId));
|
savedDashboard = checkNotNull(dashboardService.assignDashboardToCustomer(tenantId, dashboardId, customerId));
|
||||||
ShortCustomerInfo customerInfo = savedDashboard.getAssignedCustomerInfo(customerId);
|
ShortCustomerInfo customerInfo = savedDashboard.getAssignedCustomerInfo(customerId);
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, customerId, savedDashboard,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, customerId, savedDashboard,
|
||||||
actionType, user, true, dashboardId.toString(), customerId.toString(), customerInfo.getTitle());
|
actionType, user, dashboardId.toString(), customerId.toString(), customerInfo.getTitle());
|
||||||
}
|
}
|
||||||
return savedDashboard;
|
return savedDashboard;
|
||||||
}
|
}
|
||||||
@ -227,7 +227,7 @@ public class DefaultTbDashboardService extends AbstractTbEntityService implement
|
|||||||
ShortCustomerInfo customerInfo = dashboard.getAssignedCustomerInfo(customerId);
|
ShortCustomerInfo customerInfo = dashboard.getAssignedCustomerInfo(customerId);
|
||||||
savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboardId, customerId));
|
savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboardId, customerId));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, customerId, savedDashboard,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, customerId, savedDashboard,
|
||||||
actionType, user, true, dashboardId.toString(), customerId.toString(), customerInfo.getTitle());
|
actionType, user, dashboardId.toString(), customerId.toString(), customerInfo.getTitle());
|
||||||
}
|
}
|
||||||
return savedDashboard;
|
return savedDashboard;
|
||||||
}
|
}
|
||||||
@ -282,7 +282,7 @@ public class DefaultTbDashboardService extends AbstractTbEntityService implement
|
|||||||
try {
|
try {
|
||||||
Dashboard savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboardId, customer.getId()));
|
Dashboard savedDashboard = checkNotNull(dashboardService.unassignDashboardFromCustomer(tenantId, dashboardId, customer.getId()));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, customer.getId(), savedDashboard,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, dashboardId, customer.getId(), savedDashboard,
|
||||||
actionType, user, true, dashboardId.toString(), customer.getId().toString(), customer.getName());
|
actionType, user, dashboardId.toString(), customer.getId().toString(), customer.getName());
|
||||||
return savedDashboard;
|
return savedDashboard;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.DASHBOARD), actionType, user, e, dashboardId.toString());
|
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.DASHBOARD), actionType, user, e, dashboardId.toString());
|
||||||
|
|||||||
@ -117,7 +117,7 @@ public class DefaultTbDeviceService extends AbstractTbEntityService implements T
|
|||||||
try {
|
try {
|
||||||
Device savedDevice = checkNotNull(deviceService.assignDeviceToCustomer(tenantId, deviceId, customerId));
|
Device savedDevice = checkNotNull(deviceService.assignDeviceToCustomer(tenantId, deviceId, customerId));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, deviceId, customerId, savedDevice,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, deviceId, customerId, savedDevice,
|
||||||
actionType, user, true, deviceId.toString(), customerId.toString(), customer.getName());
|
actionType, user, deviceId.toString(), customerId.toString(), customer.getName());
|
||||||
|
|
||||||
return savedDevice;
|
return savedDevice;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -137,7 +137,7 @@ public class DefaultTbDeviceService extends AbstractTbEntityService implements T
|
|||||||
CustomerId customerId = customer.getId();
|
CustomerId customerId = customer.getId();
|
||||||
|
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, deviceId, customerId, savedDevice,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, deviceId, customerId, savedDevice,
|
||||||
actionType, user, true, deviceId.toString(), customerId.toString(), customer.getName());
|
actionType, user, deviceId.toString(), customerId.toString(), customer.getName());
|
||||||
|
|
||||||
return savedDevice;
|
return savedDevice;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -155,7 +155,7 @@ public class DefaultTbDeviceService extends AbstractTbEntityService implements T
|
|||||||
Device savedDevice = checkNotNull(deviceService.assignDeviceToCustomer(tenantId, deviceId, publicCustomer.getId()));
|
Device savedDevice = checkNotNull(deviceService.assignDeviceToCustomer(tenantId, deviceId, publicCustomer.getId()));
|
||||||
|
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, deviceId, savedDevice.getCustomerId(), savedDevice,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, deviceId, savedDevice.getCustomerId(), savedDevice,
|
||||||
actionType, user, true, deviceId.toString(),
|
actionType, user, deviceId.toString(),
|
||||||
publicCustomer.getId().toString(), publicCustomer.getName());
|
publicCustomer.getId().toString(), publicCustomer.getName());
|
||||||
|
|
||||||
return savedDevice;
|
return savedDevice;
|
||||||
|
|||||||
@ -87,7 +87,7 @@ public class DefaultTbEdgeService extends AbstractTbEntityService implements TbE
|
|||||||
try {
|
try {
|
||||||
Edge savedEdge = checkNotNull(edgeService.assignEdgeToCustomer(tenantId, edgeId, customerId));
|
Edge savedEdge = checkNotNull(edgeService.assignEdgeToCustomer(tenantId, edgeId, customerId));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, edgeId, customerId, savedEdge,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, edgeId, customerId, savedEdge,
|
||||||
actionType, user, true, edgeId.toString(), customerId.toString(), customer.getName());
|
actionType, user, edgeId.toString(), customerId.toString(), customer.getName());
|
||||||
|
|
||||||
return savedEdge;
|
return savedEdge;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -106,7 +106,7 @@ public class DefaultTbEdgeService extends AbstractTbEntityService implements TbE
|
|||||||
try {
|
try {
|
||||||
Edge savedEdge = checkNotNull(edgeService.unassignEdgeFromCustomer(tenantId, edgeId));
|
Edge savedEdge = checkNotNull(edgeService.unassignEdgeFromCustomer(tenantId, edgeId));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, edgeId, customerId, savedEdge,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, edgeId, customerId, savedEdge,
|
||||||
actionType, user, true, edgeId.toString(), customerId.toString(), customer.getName());
|
actionType, user, edgeId.toString(), customerId.toString(), customer.getName());
|
||||||
return savedEdge;
|
return savedEdge;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.EDGE),
|
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.EDGE),
|
||||||
|
|||||||
@ -149,7 +149,7 @@ public class DefaultTbEntityViewService extends AbstractTbEntityService implemen
|
|||||||
try {
|
try {
|
||||||
EntityView savedEntityView = checkNotNull(entityViewService.assignEntityViewToCustomer(tenantId, entityViewId, customerId));
|
EntityView savedEntityView = checkNotNull(entityViewService.assignEntityViewToCustomer(tenantId, entityViewId, customerId));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, entityViewId, customerId, savedEntityView,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, entityViewId, customerId, savedEntityView,
|
||||||
ActionType.ASSIGNED_TO_CUSTOMER, user, true, entityViewId.toString(), customerId.toString(), customer.getName());
|
ActionType.ASSIGNED_TO_CUSTOMER, user, entityViewId.toString(), customerId.toString(), customer.getName());
|
||||||
return savedEntityView;
|
return savedEntityView;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.ENTITY_VIEW),
|
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.ENTITY_VIEW),
|
||||||
@ -159,18 +159,19 @@ public class DefaultTbEntityViewService extends AbstractTbEntityService implemen
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EntityView assignEntityViewToPublicCustomer(TenantId tenantId, CustomerId customerId, Customer publicCustomer,
|
public EntityView assignEntityViewToPublicCustomer(TenantId tenantId, EntityViewId entityViewId, User user) throws ThingsboardException {
|
||||||
EntityViewId entityViewId, User user) throws ThingsboardException {
|
ActionType actionType = ActionType.ASSIGNED_TO_CUSTOMER;
|
||||||
|
Customer publicCustomer = customerService.findOrCreatePublicCustomer(tenantId);
|
||||||
try {
|
try {
|
||||||
EntityView savedEntityView = checkNotNull(entityViewService.assignEntityViewToCustomer(tenantId,
|
EntityView savedEntityView = checkNotNull(entityViewService.assignEntityViewToCustomer(tenantId,
|
||||||
entityViewId, publicCustomer.getId()));
|
entityViewId, publicCustomer.getId()));
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, entityViewId, customerId, savedEntityView,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, entityViewId, savedEntityView.getCustomerId(), savedEntityView,
|
||||||
ActionType.ASSIGNED_TO_CUSTOMER, user, false, savedEntityView.getEntityId().toString(),
|
actionType, user, savedEntityView.getId().toString(),
|
||||||
publicCustomer.getId().toString(), publicCustomer.getName());
|
publicCustomer.getId().toString(), publicCustomer.getName());
|
||||||
return savedEntityView;
|
return savedEntityView;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.ENTITY_VIEW),
|
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.ENTITY_VIEW),
|
||||||
ActionType.ASSIGNED_TO_CUSTOMER, user, e, entityViewId.toString());
|
actionType, user, e, entityViewId.toString());
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -211,14 +212,17 @@ public class DefaultTbEntityViewService extends AbstractTbEntityService implemen
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public EntityView unassignEntityViewFromCustomer(TenantId tenantId, EntityViewId entityViewId, Customer customer, User user) throws ThingsboardException {
|
public EntityView unassignEntityViewFromCustomer(TenantId tenantId, EntityViewId entityViewId, Customer customer, User user) throws ThingsboardException {
|
||||||
|
ActionType actionType = ActionType.UNASSIGNED_FROM_CUSTOMER;
|
||||||
try {
|
try {
|
||||||
EntityView savedEntityView = checkNotNull(entityViewService.unassignEntityViewFromCustomer(tenantId, entityViewId));
|
EntityView savedEntityView = checkNotNull(entityViewService.unassignEntityViewFromCustomer(tenantId, entityViewId));
|
||||||
|
|
||||||
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, entityViewId, customer.getId(), savedEntityView,
|
notificationEntityService.notifyAssignOrUnassignEntityToCustomer(tenantId, entityViewId, customer.getId(), savedEntityView,
|
||||||
ActionType.UNASSIGNED_FROM_CUSTOMER, user, true, customer.getId().toString(), customer.getName());
|
actionType, user, savedEntityView.getId().toString(), customer.getId().toString(), customer.getName());
|
||||||
|
|
||||||
return savedEntityView;
|
return savedEntityView;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.ENTITY_VIEW),
|
notificationEntityService.logEntityAction(tenantId, emptyId(EntityType.ENTITY_VIEW),
|
||||||
ActionType.UNASSIGNED_FROM_CUSTOMER, user, e, entityViewId.toString());
|
actionType, user, e, entityViewId.toString());
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -39,8 +39,7 @@ public interface TbEntityViewService extends ComponentLifecycleListener {
|
|||||||
|
|
||||||
EntityView assignEntityViewToCustomer(TenantId tenantId, EntityViewId entityViewId, Customer customer, User user) throws ThingsboardException;
|
EntityView assignEntityViewToCustomer(TenantId tenantId, EntityViewId entityViewId, Customer customer, User user) throws ThingsboardException;
|
||||||
|
|
||||||
EntityView assignEntityViewToPublicCustomer(TenantId tenantId, CustomerId customerId, Customer publicCustomer,
|
EntityView assignEntityViewToPublicCustomer(TenantId tenantId, EntityViewId entityViewId, User user) throws ThingsboardException;
|
||||||
EntityViewId entityViewId, User user) throws ThingsboardException;
|
|
||||||
|
|
||||||
EntityView assignEntityViewToEdge(TenantId tenantId, CustomerId customerId, EntityViewId entityViewId, Edge edge, User user) throws ThingsboardException;
|
EntityView assignEntityViewToEdge(TenantId tenantId, CustomerId customerId, EntityViewId entityViewId, Edge edge, User user) throws ThingsboardException;
|
||||||
|
|
||||||
|
|||||||
@ -398,6 +398,41 @@ public abstract class BaseAssetControllerTest extends AbstractControllerTest {
|
|||||||
Assert.assertEquals(ModelConstants.NULL_UUID, foundAsset.getCustomerId().getId());
|
Assert.assertEquals(ModelConstants.NULL_UUID, foundAsset.getCustomerId().getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAssignUnassignAssetToPublicCustomer() throws Exception {
|
||||||
|
Asset asset = new Asset();
|
||||||
|
asset.setName("My asset");
|
||||||
|
asset.setType("default");
|
||||||
|
Asset savedAsset = doPost("/api/asset", asset, Asset.class);
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
Asset assignedAsset = doPost("/api/customer/public/asset/" + savedAsset.getId().getId().toString(), Asset.class);
|
||||||
|
|
||||||
|
Customer publicCustomer = doGet("/api/customer/" + assignedAsset.getCustomerId(), Customer.class);
|
||||||
|
Assert.assertTrue(publicCustomer.isPublic());
|
||||||
|
|
||||||
|
testNotifyEntityAllOneTime(assignedAsset, assignedAsset.getId(), assignedAsset.getId(),
|
||||||
|
savedTenant.getId(), publicCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.ASSIGNED_TO_CUSTOMER, assignedAsset.getId().toString(), publicCustomer.getId().toString(), publicCustomer.getTitle());
|
||||||
|
|
||||||
|
Asset foundAsset = doGet("/api/asset/" + savedAsset.getId().getId().toString(), Asset.class);
|
||||||
|
Assert.assertEquals(publicCustomer.getId(), foundAsset.getCustomerId());
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
Asset unassignedAsset =
|
||||||
|
doDelete("/api/customer/asset/" + savedAsset.getId().getId().toString(), Asset.class);
|
||||||
|
Assert.assertEquals(ModelConstants.NULL_UUID, unassignedAsset.getCustomerId().getId());
|
||||||
|
|
||||||
|
testNotifyEntityAllOneTime(savedAsset, savedAsset.getId(), savedAsset.getId(),
|
||||||
|
savedTenant.getId(), publicCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(),
|
||||||
|
ActionType.UNASSIGNED_FROM_CUSTOMER, savedAsset.getId().toString(), publicCustomer.getId().toString(), publicCustomer.getTitle());
|
||||||
|
|
||||||
|
foundAsset = doGet("/api/asset/" + savedAsset.getId().getId().toString(), Asset.class);
|
||||||
|
Assert.assertEquals(ModelConstants.NULL_UUID, foundAsset.getCustomerId().getId());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAssignAssetToNonExistentCustomer() throws Exception {
|
public void testAssignAssetToNonExistentCustomer() throws Exception {
|
||||||
Asset asset = new Asset();
|
Asset asset = new Asset();
|
||||||
|
|||||||
@ -30,6 +30,7 @@ import org.springframework.test.context.ContextConfiguration;
|
|||||||
import org.thingsboard.server.common.data.Customer;
|
import org.thingsboard.server.common.data.Customer;
|
||||||
import org.thingsboard.server.common.data.Dashboard;
|
import org.thingsboard.server.common.data.Dashboard;
|
||||||
import org.thingsboard.server.common.data.DashboardInfo;
|
import org.thingsboard.server.common.data.DashboardInfo;
|
||||||
|
import org.thingsboard.server.common.data.ShortCustomerInfo;
|
||||||
import org.thingsboard.server.common.data.StringUtils;
|
import org.thingsboard.server.common.data.StringUtils;
|
||||||
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;
|
||||||
@ -216,6 +217,49 @@ public abstract class BaseDashboardControllerTest extends AbstractControllerTest
|
|||||||
Assert.assertTrue(foundDashboard.getAssignedCustomers() == null || foundDashboard.getAssignedCustomers().isEmpty());
|
Assert.assertTrue(foundDashboard.getAssignedCustomers() == null || foundDashboard.getAssignedCustomers().isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAssignUnassignDashboardToPublicCustomer() throws Exception {
|
||||||
|
Dashboard dashboard = new Dashboard();
|
||||||
|
dashboard.setTitle("My dashboard");
|
||||||
|
Dashboard savedDashboard = doPost("/api/dashboard", dashboard, Dashboard.class);
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
Dashboard assignedDashboard = doPost("/api/customer/public/dashboard/" + savedDashboard.getId().getId().toString(), Dashboard.class);
|
||||||
|
|
||||||
|
CustomerId publicCustomerId = null;
|
||||||
|
for (ShortCustomerInfo assignedCustomer : assignedDashboard.getAssignedCustomers()) {
|
||||||
|
if (assignedCustomer.isPublic()) {
|
||||||
|
publicCustomerId = assignedCustomer.getCustomerId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Assert.assertNotNull(publicCustomerId);
|
||||||
|
Customer publicCustomer = doGet("/api/customer/" + publicCustomerId, Customer.class);
|
||||||
|
Assert.assertTrue(publicCustomer.isPublic());
|
||||||
|
|
||||||
|
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(assignedDashboard, assignedDashboard.getId(), assignedDashboard.getId(),
|
||||||
|
savedTenant.getId(), publicCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ASSIGNED_TO_CUSTOMER,
|
||||||
|
assignedDashboard .getId().getId().toString(), publicCustomer.getId().getId().toString(), publicCustomer.getTitle());
|
||||||
|
|
||||||
|
Dashboard foundDashboard = doGet("/api/dashboard/" + savedDashboard.getId().getId().toString(), Dashboard.class);
|
||||||
|
Assert.assertTrue(foundDashboard.getAssignedCustomers().contains(publicCustomer.toShortCustomerInfo()));
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
Dashboard unassignedDashboard =
|
||||||
|
doDelete("/api/customer/public/dashboard/" + savedDashboard.getId().getId().toString(), Dashboard.class);
|
||||||
|
|
||||||
|
testNotifyEntityAllOneTimeLogEntityActionEntityEqClass(assignedDashboard, assignedDashboard.getId(), assignedDashboard.getId(),
|
||||||
|
savedTenant.getId(), publicCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.UNASSIGNED_FROM_CUSTOMER,
|
||||||
|
unassignedDashboard.getId().getId().toString(), publicCustomer.getId().getId().toString(), publicCustomer.getTitle());
|
||||||
|
|
||||||
|
Assert.assertTrue(unassignedDashboard.getAssignedCustomers() == null || unassignedDashboard.getAssignedCustomers().isEmpty());
|
||||||
|
|
||||||
|
foundDashboard = doGet("/api/dashboard/" + savedDashboard.getId().getId().toString(), Dashboard.class);
|
||||||
|
|
||||||
|
Assert.assertTrue(foundDashboard.getAssignedCustomers() == null || foundDashboard.getAssignedCustomers().isEmpty());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAssignDashboardToNonExistentCustomer() throws Exception {
|
public void testAssignDashboardToNonExistentCustomer() throws Exception {
|
||||||
Dashboard dashboard = new Dashboard();
|
Dashboard dashboard = new Dashboard();
|
||||||
|
|||||||
@ -521,6 +521,45 @@ public abstract class BaseDeviceControllerTest extends AbstractControllerTest {
|
|||||||
Assert.assertEquals(ModelConstants.NULL_UUID, foundDevice.getCustomerId().getId());
|
Assert.assertEquals(ModelConstants.NULL_UUID, foundDevice.getCustomerId().getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAssignUnassignDeviceToPublicCustomer() throws Exception {
|
||||||
|
Device device = new Device();
|
||||||
|
device.setName("My device");
|
||||||
|
device.setType("default");
|
||||||
|
Device savedDevice = doPost("/api/device", device, Device.class);
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService, gatewayNotificationsService);
|
||||||
|
|
||||||
|
Device assignedDevice = doPost("/api/customer/public/device/" + savedDevice.getId().getId(), Device.class);
|
||||||
|
|
||||||
|
Customer publicCustomer = doGet("/api/customer/" + assignedDevice.getCustomerId(), Customer.class);
|
||||||
|
Assert.assertTrue(publicCustomer.isPublic());
|
||||||
|
|
||||||
|
testNotifyEntityAllOneTime(assignedDevice, assignedDevice.getId(), assignedDevice.getId(), savedTenant.getId(),
|
||||||
|
publicCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.ASSIGNED_TO_CUSTOMER,
|
||||||
|
assignedDevice.getId().getId().toString(), publicCustomer.getId().getId().toString(),
|
||||||
|
publicCustomer.getTitle());
|
||||||
|
testNotificationUpdateGatewayNever();
|
||||||
|
|
||||||
|
Device foundDevice = doGet("/api/device/" + savedDevice.getId().getId(), Device.class);
|
||||||
|
Assert.assertEquals(publicCustomer.getId(), foundDevice.getCustomerId());
|
||||||
|
|
||||||
|
Mockito.reset(tbClusterService, auditLogService, gatewayNotificationsService);
|
||||||
|
|
||||||
|
Device unassignedDevice =
|
||||||
|
doDelete("/api/customer/device/" + savedDevice.getId().getId(), Device.class);
|
||||||
|
Assert.assertEquals(ModelConstants.NULL_UUID, unassignedDevice.getCustomerId().getId());
|
||||||
|
|
||||||
|
testNotifyEntityAllOneTime(unassignedDevice, unassignedDevice.getId(), unassignedDevice.getId(), savedTenant.getId(),
|
||||||
|
publicCustomer.getId(), tenantAdmin.getId(), tenantAdmin.getEmail(), ActionType.UNASSIGNED_FROM_CUSTOMER,
|
||||||
|
unassignedDevice.getId().getId().toString(), publicCustomer.getId().getId().toString(),
|
||||||
|
publicCustomer.getTitle());
|
||||||
|
testNotificationDeleteGatewayNever();
|
||||||
|
|
||||||
|
foundDevice = doGet("/api/device/" + savedDevice.getId().getId(), Device.class);
|
||||||
|
Assert.assertEquals(ModelConstants.NULL_UUID, foundDevice.getCustomerId().getId());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAssignDeviceToNonExistentCustomer() throws Exception {
|
public void testAssignDeviceToNonExistentCustomer() throws Exception {
|
||||||
Device device = new Device();
|
Device device = new Device();
|
||||||
|
|||||||
@ -313,6 +313,39 @@ public abstract class BaseEntityViewControllerTest extends AbstractControllerTes
|
|||||||
savedView.getCustomerId().getId().toString(), savedCustomer.getTitle());
|
savedView.getCustomerId().getId().toString(), savedCustomer.getTitle());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAssignAndUnAssignedEntityViewToPublicCustomer() throws Exception {
|
||||||
|
EntityView savedView = getNewSavedEntityView("Test entity view");
|
||||||
|
Mockito.reset(tbClusterService, auditLogService);
|
||||||
|
|
||||||
|
EntityView assignedView = doPost(
|
||||||
|
"/api/customer/public/entityView/" + savedView.getId().getId().toString(),
|
||||||
|
EntityView.class);
|
||||||
|
Customer publicCustomer = doGet("/api/customer/" + assignedView.getCustomerId(), Customer.class);
|
||||||
|
Assert.assertTrue(publicCustomer.isPublic());
|
||||||
|
|
||||||
|
testBroadcastEntityStateChangeEventNever(assignedView.getId());
|
||||||
|
testNotifyEntityAllOneTime(assignedView, assignedView.getId(), assignedView.getId(),
|
||||||
|
tenantId, assignedView.getCustomerId(), tenantAdminUserId, TENANT_ADMIN_EMAIL,
|
||||||
|
ActionType.ASSIGNED_TO_CUSTOMER,
|
||||||
|
assignedView.getId().getId().toString(), assignedView.getCustomerId().getId().toString(), publicCustomer.getTitle());
|
||||||
|
|
||||||
|
EntityView foundView = doGet("/api/entityView/" + savedView.getId().getId().toString(), EntityView.class);
|
||||||
|
assertEquals(publicCustomer.getId(), foundView.getCustomerId());
|
||||||
|
|
||||||
|
EntityView unAssignedView = doDelete("/api/customer/entityView/" + savedView.getId().getId().toString(), EntityView.class);
|
||||||
|
assertEquals(ModelConstants.NULL_UUID, unAssignedView.getCustomerId().getId());
|
||||||
|
|
||||||
|
foundView = doGet("/api/entityView/" + savedView.getId().getId().toString(), EntityView.class);
|
||||||
|
assertEquals(ModelConstants.NULL_UUID, foundView.getCustomerId().getId());
|
||||||
|
|
||||||
|
testBroadcastEntityStateChangeEventNever(foundView.getId());
|
||||||
|
testNotifyEntityAllOneTime(unAssignedView, unAssignedView.getId(), unAssignedView.getId(),
|
||||||
|
tenantId, publicCustomer.getId(), tenantAdminUserId, TENANT_ADMIN_EMAIL,
|
||||||
|
ActionType.UNASSIGNED_FROM_CUSTOMER,
|
||||||
|
unAssignedView.getId().getId().toString(), publicCustomer.getId().getId().toString(), publicCustomer.getTitle());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAssignEntityViewToNonExistentCustomer() throws Exception {
|
public void testAssignEntityViewToNonExistentCustomer() throws Exception {
|
||||||
EntityView savedView = getNewSavedEntityView("Test entity view");
|
EntityView savedView = getNewSavedEntityView("Test entity view");
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.test.context.TestPropertySource;
|
import org.springframework.test.context.TestPropertySource;
|
||||||
import org.thingsboard.common.util.JacksonUtil;
|
import org.thingsboard.common.util.JacksonUtil;
|
||||||
import org.thingsboard.server.cluster.TbClusterService;
|
import org.thingsboard.server.cluster.TbClusterService;
|
||||||
|
import org.thingsboard.server.common.data.Customer;
|
||||||
import org.thingsboard.server.common.data.Device;
|
import org.thingsboard.server.common.data.Device;
|
||||||
import org.thingsboard.server.common.data.DeviceProfile;
|
import org.thingsboard.server.common.data.DeviceProfile;
|
||||||
import org.thingsboard.server.common.data.OtaPackageInfo;
|
import org.thingsboard.server.common.data.OtaPackageInfo;
|
||||||
@ -70,6 +71,7 @@ import org.thingsboard.server.edge.imitator.EdgeImitator;
|
|||||||
import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg;
|
import org.thingsboard.server.gen.edge.v1.AdminSettingsUpdateMsg;
|
||||||
import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg;
|
import org.thingsboard.server.gen.edge.v1.AssetProfileUpdateMsg;
|
||||||
import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg;
|
import org.thingsboard.server.gen.edge.v1.AssetUpdateMsg;
|
||||||
|
import org.thingsboard.server.gen.edge.v1.CustomerUpdateMsg;
|
||||||
import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg;
|
import org.thingsboard.server.gen.edge.v1.DeviceProfileUpdateMsg;
|
||||||
import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg;
|
import org.thingsboard.server.gen.edge.v1.DeviceUpdateMsg;
|
||||||
import org.thingsboard.server.gen.edge.v1.EdgeConfiguration;
|
import org.thingsboard.server.gen.edge.v1.EdgeConfiguration;
|
||||||
@ -142,7 +144,7 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
|||||||
installation();
|
installation();
|
||||||
|
|
||||||
edgeImitator = new EdgeImitator("localhost", 7070, edge.getRoutingKey(), edge.getSecret());
|
edgeImitator = new EdgeImitator("localhost", 7070, edge.getRoutingKey(), edge.getSecret());
|
||||||
edgeImitator.expectMessageAmount(21);
|
edgeImitator.expectMessageAmount(22);
|
||||||
edgeImitator.connect();
|
edgeImitator.connect();
|
||||||
|
|
||||||
requestEdgeRuleChainMetadata();
|
requestEdgeRuleChainMetadata();
|
||||||
@ -269,6 +271,9 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
// 1 message from user fetcher
|
// 1 message from user fetcher
|
||||||
validateUsers();
|
validateUsers();
|
||||||
|
|
||||||
|
// 1 message from public customer fetcher
|
||||||
|
validatePublicCustomer();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateEdgeConfiguration() throws Exception {
|
private void validateEdgeConfiguration() throws Exception {
|
||||||
@ -442,6 +447,17 @@ abstract public class AbstractEdgeTest extends AbstractControllerTest {
|
|||||||
testAutoGeneratedCodeByProtobuf(userUpdateMsg);
|
testAutoGeneratedCodeByProtobuf(userUpdateMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void validatePublicCustomer() throws Exception {
|
||||||
|
Optional<CustomerUpdateMsg> customerUpdateMsgOpt = edgeImitator.findMessageByType(CustomerUpdateMsg.class);
|
||||||
|
Assert.assertTrue(customerUpdateMsgOpt.isPresent());
|
||||||
|
CustomerUpdateMsg customerUpdateMsg = customerUpdateMsgOpt.get();
|
||||||
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, customerUpdateMsg.getMsgType());
|
||||||
|
UUID customerUUID = new UUID(customerUpdateMsg.getIdMSB(), customerUpdateMsg.getIdLSB());
|
||||||
|
Customer customer = doGet("/api/customer/" + customerUUID, Customer.class);
|
||||||
|
Assert.assertNotNull(customer);
|
||||||
|
Assert.assertTrue(customer.isPublic());
|
||||||
|
}
|
||||||
|
|
||||||
protected Device saveDeviceOnCloudAndVerifyDeliveryToEdge() throws Exception {
|
protected Device saveDeviceOnCloudAndVerifyDeliveryToEdge() throws Exception {
|
||||||
// create device and assign to edge
|
// create device and assign to edge
|
||||||
Device savedDevice = saveDevice(StringUtils.randomAlphanumeric(15), thermostatDeviceProfile.getName());
|
Device savedDevice = saveDevice(StringUtils.randomAlphanumeric(15), thermostatDeviceProfile.getName());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user