Loading src/automation/pom.xml +1 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ <groupId>eu.teraflow</groupId> <artifactId>automation</artifactId> <version>0.1.0</version> <version>0.2.0</version> <name>TeraFlow Automation Component</name> <description>TeraFlow Automation Component</description> Loading src/automation/src/main/java/eu/teraflow/automation/AutomationGatewayImpl.java +20 −11 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ package eu.teraflow.automation; import automation.Automation; import context.ContextOuterClass; import eu.teraflow.automation.device.model.Device; import eu.teraflow.automation.model.DeviceRoleId; import io.quarkus.grpc.GrpcService; import io.smallrye.mutiny.Uni; import javax.inject.Inject; Loading Loading @@ -32,18 +34,13 @@ public class AutomationGatewayImpl implements AutomationGateway { @Override public Uni<Automation.DeviceRoleState> ztpAdd(Automation.DeviceRole request) { final var devRoleId = request.getDevRoleId().getDevRoleId().getUuid(); final var deviceId = serializer.deserialize(request.getDevRoleId().getDevId()); // TODO tie this with return automationService.addDevice(deviceId); // TODO Set all fields of device role state (create models, serializer) return Uni.createFrom() .item( () -> Automation.DeviceRoleState.newBuilder() .setDevRoleId(request.getDevRoleId()) .build()); return automationService .addDevice(deviceId) .onItem() .transform( device -> transformToDeviceRoleState(device, devRoleId)); } @Override Loading @@ -70,4 +67,16 @@ public class AutomationGatewayImpl implements AutomationGateway { public Uni<Automation.DeviceDeletionResult> ztpDeleteAll(Automation.Empty empty) { return Uni.createFrom().item(() -> Automation.DeviceDeletionResult.newBuilder().build()); } // TODO When `DeviceRoleState` domain object will be created, move this method to Serializer class and create related tests private Automation.DeviceRoleState transformToDeviceRoleState(Device device, String devRoleId){ final var deviceRoleId = new DeviceRoleId(devRoleId, device.getDeviceId()); final var serializeDeviceRoleId = serializer.serialize(deviceRoleId); return Automation.DeviceRoleState.newBuilder() .setDevRoleId(serializeDeviceRoleId) .setDevRoleState(Automation.ZtpDeviceState.ZTP_DEV_STATE_CREATED) .build(); } } No newline at end of file src/automation/src/main/java/eu/teraflow/automation/Serializer.java +88 −5 Original line number Diff line number Diff line package eu.teraflow.automation; import automation.Automation; import context.ContextOuterClass; import context.ContextOuterClass.DeviceId; import context.ContextOuterClass.DeviceOperationalStatusEnum; Loading @@ -12,20 +13,98 @@ import eu.teraflow.automation.device.model.Device; import eu.teraflow.automation.device.model.DeviceConfig; import eu.teraflow.automation.device.model.DeviceEvent; import eu.teraflow.automation.device.model.DeviceOperationalStatus; import eu.teraflow.automation.model.DeviceRole; import eu.teraflow.automation.model.DeviceRoleId; import eu.teraflow.automation.model.DeviceRoleType; import java.util.stream.Collectors; import javax.inject.Singleton; @Singleton public class Serializer { public DeviceId serializeDeviceId(String expectedDeviceId) { final var builder = DeviceId.newBuilder(); final var uuid = serializeUuid(expectedDeviceId); builder.setDeviceUuid(uuid); return builder.build(); } public String deserialize(DeviceId deviceId) { return deviceId.getDeviceUuid().getUuid(); } public DeviceId serializeDeviceId(String expectedDeviceId) { final var uuid = Uuid.newBuilder().setUuid(expectedDeviceId).build(); public Automation.DeviceRoleId serialize(DeviceRoleId deviceRoleId) { final var builder = Automation.DeviceRoleId.newBuilder(); final var deviceRoleDevRoleId = deviceRoleId.getId(); final var deviceRoleDeviceId = deviceRoleId.getDeviceId(); final var deviceRoleDevRoleIdUuid = serializeUuid(deviceRoleDevRoleId); final var deviceRoleDeviceIdUuid = serializeUuid(deviceRoleDeviceId); final var deviceId = DeviceId.newBuilder().setDeviceUuid(deviceRoleDeviceIdUuid); builder.setDevRoleId(deviceRoleDevRoleIdUuid); builder.setDevId(deviceId); return builder.build(); } public DeviceRoleId deserialize(Automation.DeviceRoleId deviceRoleId) { final var devRoleId = deserialize(deviceRoleId.getDevRoleId()); final var devId = deserialize(deviceRoleId.getDevId()); return new DeviceRoleId(devRoleId, devId); } public Automation.DeviceRoleType serialize(DeviceRoleType deviceRoleType) { switch (deviceRoleType) { case NONE: return Automation.DeviceRoleType.NONE; case DEV_OPS: return Automation.DeviceRoleType.DEV_OPS; case DEV_CONF: return Automation.DeviceRoleType.DEV_CONF; case PIPELINE_CONF: return Automation.DeviceRoleType.PIPELINE_CONF; default: return Automation.DeviceRoleType.UNRECOGNIZED; } } public DeviceRoleType deserialize(Automation.DeviceRoleType serializedDeviceRoleType) { switch (serializedDeviceRoleType) { case DEV_OPS: return DeviceRoleType.DEV_OPS; case DEV_CONF: return DeviceRoleType.DEV_CONF; case PIPELINE_CONF: return DeviceRoleType.PIPELINE_CONF; case NONE: case UNRECOGNIZED: default: return DeviceRoleType.NONE; } } public Automation.DeviceRole serialize(DeviceRole deviceRole) { final var builder = Automation.DeviceRole.newBuilder(); final var serializedDeviceRoleId = serialize(deviceRole.getDeviceRoleId()); final var serializedDeviceRoleType = serialize(deviceRole.getType()); builder.setDevRoleId(serializedDeviceRoleId); builder.setDevRoleType(serializedDeviceRoleType); return builder.build(); } public DeviceRole deserialize(Automation.DeviceRole deviceRole) { final var deviceRoleId = deserialize(deviceRole.getDevRoleId()); final var deviceRoleType = deserialize(deviceRole.getDevRoleType()); return ContextOuterClass.DeviceId.newBuilder().setDeviceUuid(uuid).build(); return new DeviceRole(deviceRoleId, deviceRoleType); } public ContextOuterClass.EventTypeEnum serialize(EventTypeEnum eventTypeEnum) { Loading Loading @@ -77,8 +156,10 @@ public class Serializer { public ContextOuterClass.DeviceEvent serialize(DeviceEvent deviceEvent) { final var builder = ContextOuterClass.DeviceEvent.newBuilder(); final var deviceIdUuid = serializeUuid(deviceEvent.getDeviceId()); final var deviceId = DeviceId.newBuilder().setDeviceUuid(deviceIdUuid); builder.setDeviceId(serializeDeviceId(deviceEvent.getDeviceId())); builder.setDeviceId(deviceId); builder.setEvent(serialize(deviceEvent.getEvent())); return builder.build(); Loading Loading @@ -180,8 +261,10 @@ public class Serializer { public ContextOuterClass.Device serialize(Device device) { final var builder = ContextOuterClass.Device.newBuilder(); final var deviceIdUuid = serializeUuid(device.getDeviceId()); final var deviceId = DeviceId.newBuilder().setDeviceUuid(deviceIdUuid); builder.setDeviceId(serializeDeviceId(device.getDeviceId())); builder.setDeviceId(deviceId); builder.setDeviceType(device.getDeviceType()); builder.setDeviceConfig(serialize(device.getDeviceConfig())); builder.setDeviceOperationalStatus(serialize(device.getDeviceOperationalStatus())); Loading src/automation/src/main/java/eu/teraflow/automation/device/DeviceGatewayImpl.java +1 −0 Original line number Diff line number Diff line package eu.teraflow.automation.device; import context.ContextOuterClass; import device.DeviceService; import eu.teraflow.automation.Serializer; import eu.teraflow.automation.device.model.Device; Loading src/automation/src/main/java/eu/teraflow/automation/model/DeviceRoleState.javadeleted 100644 → 0 +0 −21 Original line number Diff line number Diff line package eu.teraflow.automation.model; public class DeviceRoleState { private final DeviceRoleId deviceRoleId; private final DeviceState deviceState; public DeviceRoleState(DeviceRoleId deviceRoleId, DeviceState deviceState) { this.deviceRoleId = deviceRoleId; this.deviceState = deviceState; } public DeviceRoleId getDeviceRoleId() { return deviceRoleId; } public DeviceState getDeviceState() { return deviceState; } } Loading
src/automation/pom.xml +1 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ <groupId>eu.teraflow</groupId> <artifactId>automation</artifactId> <version>0.1.0</version> <version>0.2.0</version> <name>TeraFlow Automation Component</name> <description>TeraFlow Automation Component</description> Loading
src/automation/src/main/java/eu/teraflow/automation/AutomationGatewayImpl.java +20 −11 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ package eu.teraflow.automation; import automation.Automation; import context.ContextOuterClass; import eu.teraflow.automation.device.model.Device; import eu.teraflow.automation.model.DeviceRoleId; import io.quarkus.grpc.GrpcService; import io.smallrye.mutiny.Uni; import javax.inject.Inject; Loading Loading @@ -32,18 +34,13 @@ public class AutomationGatewayImpl implements AutomationGateway { @Override public Uni<Automation.DeviceRoleState> ztpAdd(Automation.DeviceRole request) { final var devRoleId = request.getDevRoleId().getDevRoleId().getUuid(); final var deviceId = serializer.deserialize(request.getDevRoleId().getDevId()); // TODO tie this with return automationService.addDevice(deviceId); // TODO Set all fields of device role state (create models, serializer) return Uni.createFrom() .item( () -> Automation.DeviceRoleState.newBuilder() .setDevRoleId(request.getDevRoleId()) .build()); return automationService .addDevice(deviceId) .onItem() .transform( device -> transformToDeviceRoleState(device, devRoleId)); } @Override Loading @@ -70,4 +67,16 @@ public class AutomationGatewayImpl implements AutomationGateway { public Uni<Automation.DeviceDeletionResult> ztpDeleteAll(Automation.Empty empty) { return Uni.createFrom().item(() -> Automation.DeviceDeletionResult.newBuilder().build()); } // TODO When `DeviceRoleState` domain object will be created, move this method to Serializer class and create related tests private Automation.DeviceRoleState transformToDeviceRoleState(Device device, String devRoleId){ final var deviceRoleId = new DeviceRoleId(devRoleId, device.getDeviceId()); final var serializeDeviceRoleId = serializer.serialize(deviceRoleId); return Automation.DeviceRoleState.newBuilder() .setDevRoleId(serializeDeviceRoleId) .setDevRoleState(Automation.ZtpDeviceState.ZTP_DEV_STATE_CREATED) .build(); } } No newline at end of file
src/automation/src/main/java/eu/teraflow/automation/Serializer.java +88 −5 Original line number Diff line number Diff line package eu.teraflow.automation; import automation.Automation; import context.ContextOuterClass; import context.ContextOuterClass.DeviceId; import context.ContextOuterClass.DeviceOperationalStatusEnum; Loading @@ -12,20 +13,98 @@ import eu.teraflow.automation.device.model.Device; import eu.teraflow.automation.device.model.DeviceConfig; import eu.teraflow.automation.device.model.DeviceEvent; import eu.teraflow.automation.device.model.DeviceOperationalStatus; import eu.teraflow.automation.model.DeviceRole; import eu.teraflow.automation.model.DeviceRoleId; import eu.teraflow.automation.model.DeviceRoleType; import java.util.stream.Collectors; import javax.inject.Singleton; @Singleton public class Serializer { public DeviceId serializeDeviceId(String expectedDeviceId) { final var builder = DeviceId.newBuilder(); final var uuid = serializeUuid(expectedDeviceId); builder.setDeviceUuid(uuid); return builder.build(); } public String deserialize(DeviceId deviceId) { return deviceId.getDeviceUuid().getUuid(); } public DeviceId serializeDeviceId(String expectedDeviceId) { final var uuid = Uuid.newBuilder().setUuid(expectedDeviceId).build(); public Automation.DeviceRoleId serialize(DeviceRoleId deviceRoleId) { final var builder = Automation.DeviceRoleId.newBuilder(); final var deviceRoleDevRoleId = deviceRoleId.getId(); final var deviceRoleDeviceId = deviceRoleId.getDeviceId(); final var deviceRoleDevRoleIdUuid = serializeUuid(deviceRoleDevRoleId); final var deviceRoleDeviceIdUuid = serializeUuid(deviceRoleDeviceId); final var deviceId = DeviceId.newBuilder().setDeviceUuid(deviceRoleDeviceIdUuid); builder.setDevRoleId(deviceRoleDevRoleIdUuid); builder.setDevId(deviceId); return builder.build(); } public DeviceRoleId deserialize(Automation.DeviceRoleId deviceRoleId) { final var devRoleId = deserialize(deviceRoleId.getDevRoleId()); final var devId = deserialize(deviceRoleId.getDevId()); return new DeviceRoleId(devRoleId, devId); } public Automation.DeviceRoleType serialize(DeviceRoleType deviceRoleType) { switch (deviceRoleType) { case NONE: return Automation.DeviceRoleType.NONE; case DEV_OPS: return Automation.DeviceRoleType.DEV_OPS; case DEV_CONF: return Automation.DeviceRoleType.DEV_CONF; case PIPELINE_CONF: return Automation.DeviceRoleType.PIPELINE_CONF; default: return Automation.DeviceRoleType.UNRECOGNIZED; } } public DeviceRoleType deserialize(Automation.DeviceRoleType serializedDeviceRoleType) { switch (serializedDeviceRoleType) { case DEV_OPS: return DeviceRoleType.DEV_OPS; case DEV_CONF: return DeviceRoleType.DEV_CONF; case PIPELINE_CONF: return DeviceRoleType.PIPELINE_CONF; case NONE: case UNRECOGNIZED: default: return DeviceRoleType.NONE; } } public Automation.DeviceRole serialize(DeviceRole deviceRole) { final var builder = Automation.DeviceRole.newBuilder(); final var serializedDeviceRoleId = serialize(deviceRole.getDeviceRoleId()); final var serializedDeviceRoleType = serialize(deviceRole.getType()); builder.setDevRoleId(serializedDeviceRoleId); builder.setDevRoleType(serializedDeviceRoleType); return builder.build(); } public DeviceRole deserialize(Automation.DeviceRole deviceRole) { final var deviceRoleId = deserialize(deviceRole.getDevRoleId()); final var deviceRoleType = deserialize(deviceRole.getDevRoleType()); return ContextOuterClass.DeviceId.newBuilder().setDeviceUuid(uuid).build(); return new DeviceRole(deviceRoleId, deviceRoleType); } public ContextOuterClass.EventTypeEnum serialize(EventTypeEnum eventTypeEnum) { Loading Loading @@ -77,8 +156,10 @@ public class Serializer { public ContextOuterClass.DeviceEvent serialize(DeviceEvent deviceEvent) { final var builder = ContextOuterClass.DeviceEvent.newBuilder(); final var deviceIdUuid = serializeUuid(deviceEvent.getDeviceId()); final var deviceId = DeviceId.newBuilder().setDeviceUuid(deviceIdUuid); builder.setDeviceId(serializeDeviceId(deviceEvent.getDeviceId())); builder.setDeviceId(deviceId); builder.setEvent(serialize(deviceEvent.getEvent())); return builder.build(); Loading Loading @@ -180,8 +261,10 @@ public class Serializer { public ContextOuterClass.Device serialize(Device device) { final var builder = ContextOuterClass.Device.newBuilder(); final var deviceIdUuid = serializeUuid(device.getDeviceId()); final var deviceId = DeviceId.newBuilder().setDeviceUuid(deviceIdUuid); builder.setDeviceId(serializeDeviceId(device.getDeviceId())); builder.setDeviceId(deviceId); builder.setDeviceType(device.getDeviceType()); builder.setDeviceConfig(serialize(device.getDeviceConfig())); builder.setDeviceOperationalStatus(serialize(device.getDeviceOperationalStatus())); Loading
src/automation/src/main/java/eu/teraflow/automation/device/DeviceGatewayImpl.java +1 −0 Original line number Diff line number Diff line package eu.teraflow.automation.device; import context.ContextOuterClass; import device.DeviceService; import eu.teraflow.automation.Serializer; import eu.teraflow.automation.device.model.Device; Loading
src/automation/src/main/java/eu/teraflow/automation/model/DeviceRoleState.javadeleted 100644 → 0 +0 −21 Original line number Diff line number Diff line package eu.teraflow.automation.model; public class DeviceRoleState { private final DeviceRoleId deviceRoleId; private final DeviceState deviceState; public DeviceRoleState(DeviceRoleId deviceRoleId, DeviceState deviceState) { this.deviceRoleId = deviceRoleId; this.deviceState = deviceState; } public DeviceRoleId getDeviceRoleId() { return deviceRoleId; } public DeviceState getDeviceState() { return deviceState; } }