Merge branch 'master' of github.com:thingsboard/thingsboard
This commit is contained in:
commit
3227b93d6f
@ -20,6 +20,7 @@ import lombok.Data;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.thingsboard.server.cluster.TbClusterService;
|
||||||
import org.thingsboard.server.dao.asset.AssetService;
|
import org.thingsboard.server.dao.asset.AssetService;
|
||||||
import org.thingsboard.server.dao.attributes.AttributesService;
|
import org.thingsboard.server.dao.attributes.AttributesService;
|
||||||
import org.thingsboard.server.dao.dashboard.DashboardService;
|
import org.thingsboard.server.dao.dashboard.DashboardService;
|
||||||
@ -61,6 +62,9 @@ import org.thingsboard.server.service.executors.GrpcCallbackExecutorService;
|
|||||||
@Lazy
|
@Lazy
|
||||||
public class EdgeContextComponent {
|
public class EdgeContextComponent {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private TbClusterService clusterService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private EdgeService edgeService;
|
private EdgeService edgeService;
|
||||||
|
|
||||||
|
|||||||
@ -211,6 +211,7 @@ public final class EdgeGrpcSession implements Closeable {
|
|||||||
@Override
|
@Override
|
||||||
public void onSuccess(Void result) {
|
public void onSuccess(Void result) {
|
||||||
syncCompleted = true;
|
syncCompleted = true;
|
||||||
|
ctx.getClusterService().onEdgeEventUpdate(edge.getTenantId(), edge.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -201,12 +201,36 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
|
|||||||
installation();
|
installation();
|
||||||
|
|
||||||
edgeImitator = new EdgeImitator("localhost", 7070, edge.getRoutingKey(), edge.getSecret());
|
edgeImitator = new EdgeImitator("localhost", 7070, edge.getRoutingKey(), edge.getSecret());
|
||||||
edgeImitator.expectMessageAmount(14);
|
edgeImitator.expectMessageAmount(15);
|
||||||
edgeImitator.connect();
|
edgeImitator.connect();
|
||||||
|
|
||||||
|
requestEdgeRuleChainMetadata();
|
||||||
|
|
||||||
verifyEdgeConnectionAndInitialData();
|
verifyEdgeConnectionAndInitialData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void requestEdgeRuleChainMetadata() throws Exception {
|
||||||
|
RuleChainId rootRuleChainId = getEdgeRootRuleChainId();
|
||||||
|
RuleChainMetadataRequestMsg.Builder builder = RuleChainMetadataRequestMsg.newBuilder()
|
||||||
|
.setRuleChainIdMSB(rootRuleChainId.getId().getMostSignificantBits())
|
||||||
|
.setRuleChainIdLSB(rootRuleChainId.getId().getLeastSignificantBits());
|
||||||
|
testAutoGeneratedCodeByProtobuf(builder);
|
||||||
|
UplinkMsg.Builder uplinkMsgBuilder = UplinkMsg.newBuilder()
|
||||||
|
.addRuleChainMetadataRequestMsg(builder.build());
|
||||||
|
edgeImitator.sendUplinkMsg(uplinkMsgBuilder.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
private RuleChainId getEdgeRootRuleChainId() throws Exception {
|
||||||
|
List<RuleChain> edgeRuleChains = doGetTypedWithPageLink("/api/edge/" + edge.getUuidId() + "/ruleChains?",
|
||||||
|
new TypeReference<PageData<RuleChain>>() {}, new PageLink(100)).getData();
|
||||||
|
for (RuleChain edgeRuleChain : edgeRuleChains) {
|
||||||
|
if (edgeRuleChain.isRoot()) {
|
||||||
|
return edgeRuleChain.getId();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new RuntimeException("Root rule chain not found");
|
||||||
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void afterTest() throws Exception {
|
public void afterTest() throws Exception {
|
||||||
try {
|
try {
|
||||||
@ -281,7 +305,7 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
|
|||||||
DeviceUpdateMsg deviceUpdateMsg = deviceUpdateMsgOpt.get();
|
DeviceUpdateMsg deviceUpdateMsg = deviceUpdateMsgOpt.get();
|
||||||
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType());
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceUpdateMsg.getMsgType());
|
||||||
UUID deviceUUID = new UUID(deviceUpdateMsg.getIdMSB(), deviceUpdateMsg.getIdLSB());
|
UUID deviceUUID = new UUID(deviceUpdateMsg.getIdMSB(), deviceUpdateMsg.getIdLSB());
|
||||||
Device device = doGet("/api/device/" + deviceUUID.toString(), Device.class);
|
Device device = doGet("/api/device/" + deviceUUID, Device.class);
|
||||||
Assert.assertNotNull(device);
|
Assert.assertNotNull(device);
|
||||||
List<Device> edgeDevices = doGetTypedWithPageLink("/api/edge/" + edge.getUuidId() + "/devices?",
|
List<Device> edgeDevices = doGetTypedWithPageLink("/api/edge/" + edge.getUuidId() + "/devices?",
|
||||||
new TypeReference<PageData<Device>>() {}, new PageLink(100)).getData();
|
new TypeReference<PageData<Device>>() {}, new PageLink(100)).getData();
|
||||||
@ -295,7 +319,7 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
|
|||||||
DeviceProfileUpdateMsg deviceProfileUpdateMsg = deviceProfileUpdateMsgOpt.get();
|
DeviceProfileUpdateMsg deviceProfileUpdateMsg = deviceProfileUpdateMsgOpt.get();
|
||||||
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType());
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, deviceProfileUpdateMsg.getMsgType());
|
||||||
UUID deviceProfileUUID = new UUID(deviceProfileUpdateMsg.getIdMSB(), deviceProfileUpdateMsg.getIdLSB());
|
UUID deviceProfileUUID = new UUID(deviceProfileUpdateMsg.getIdMSB(), deviceProfileUpdateMsg.getIdLSB());
|
||||||
DeviceProfile deviceProfile = doGet("/api/deviceProfile/" + deviceProfileUUID.toString(), DeviceProfile.class);
|
DeviceProfile deviceProfile = doGet("/api/deviceProfile/" + deviceProfileUUID, DeviceProfile.class);
|
||||||
Assert.assertNotNull(deviceProfile);
|
Assert.assertNotNull(deviceProfile);
|
||||||
Assert.assertNotNull(deviceProfile.getProfileData());
|
Assert.assertNotNull(deviceProfile.getProfileData());
|
||||||
Assert.assertNotNull(deviceProfile.getProfileData().getAlarms());
|
Assert.assertNotNull(deviceProfile.getProfileData().getAlarms());
|
||||||
@ -321,7 +345,7 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
|
|||||||
RuleChainUpdateMsg ruleChainUpdateMsg = ruleChainUpdateMsgOpt.get();
|
RuleChainUpdateMsg ruleChainUpdateMsg = ruleChainUpdateMsgOpt.get();
|
||||||
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, ruleChainUpdateMsg.getMsgType());
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, ruleChainUpdateMsg.getMsgType());
|
||||||
UUID ruleChainUUID = new UUID(ruleChainUpdateMsg.getIdMSB(), ruleChainUpdateMsg.getIdLSB());
|
UUID ruleChainUUID = new UUID(ruleChainUpdateMsg.getIdMSB(), ruleChainUpdateMsg.getIdLSB());
|
||||||
RuleChain ruleChain = doGet("/api/ruleChain/" + ruleChainUUID.toString(), RuleChain.class);
|
RuleChain ruleChain = doGet("/api/ruleChain/" + ruleChainUUID, RuleChain.class);
|
||||||
Assert.assertNotNull(ruleChain);
|
Assert.assertNotNull(ruleChain);
|
||||||
List<RuleChain> edgeRuleChains = doGetTypedWithPageLink("/api/edge/" + edge.getUuidId() + "/ruleChains?",
|
List<RuleChain> edgeRuleChains = doGetTypedWithPageLink("/api/edge/" + edge.getUuidId() + "/ruleChains?",
|
||||||
new TypeReference<PageData<RuleChain>>() {}, new PageLink(100)).getData();
|
new TypeReference<PageData<RuleChain>>() {}, new PageLink(100)).getData();
|
||||||
@ -329,6 +353,13 @@ abstract public class BaseEdgeTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
testAutoGeneratedCodeByProtobuf(ruleChainUpdateMsg);
|
testAutoGeneratedCodeByProtobuf(ruleChainUpdateMsg);
|
||||||
|
|
||||||
|
Optional<RuleChainMetadataUpdateMsg> ruleChainMetadataUpdateOpt = edgeImitator.findMessageByType(RuleChainMetadataUpdateMsg.class);
|
||||||
|
Assert.assertTrue(ruleChainMetadataUpdateOpt.isPresent());
|
||||||
|
RuleChainMetadataUpdateMsg ruleChainMetadataUpdateMsg = ruleChainMetadataUpdateOpt.get();
|
||||||
|
Assert.assertEquals(UpdateMsgType.ENTITY_CREATED_RPC_MESSAGE, ruleChainMetadataUpdateMsg.getMsgType());
|
||||||
|
Assert.assertEquals(ruleChainUpdateMsg.getIdMSB(), ruleChainMetadataUpdateMsg.getRuleChainIdMSB());
|
||||||
|
Assert.assertEquals(ruleChainUpdateMsg.getIdLSB(), ruleChainMetadataUpdateMsg.getRuleChainIdLSB());
|
||||||
|
|
||||||
validateAdminSettings();
|
validateAdminSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -142,7 +142,7 @@ export class PhoneInputComponent implements OnInit, ControlValueAccessor, Valida
|
|||||||
this.getFlagAndPhoneNumberData(value);
|
this.getFlagAndPhoneNumberData(value);
|
||||||
let phoneNumber = this.phoneFormGroup.get('phoneNumber').value;
|
let phoneNumber = this.phoneFormGroup.get('phoneNumber').value;
|
||||||
if (phoneNumber) {
|
if (phoneNumber) {
|
||||||
if (code !== this.countryCallingCode && phoneNumber.includes(code)) {
|
if (code !== '+' && code !== this.countryCallingCode && phoneNumber.includes(code)) {
|
||||||
phoneNumber = phoneNumber.replace(code, this.countryCallingCode);
|
phoneNumber = phoneNumber.replace(code, this.countryCallingCode);
|
||||||
this.phoneFormGroup.get('phoneNumber').patchValue(phoneNumber);
|
this.phoneFormGroup.get('phoneNumber').patchValue(phoneNumber);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user