Commit 16419e29 authored by Georgios P. Katsikas's avatar Georgios P. Katsikas
Browse files

fix(automation): ztpUpdate loop resolved

parent 568149a1
Loading
Loading
Loading
Loading
+44 −28
Original line number Diff line number Diff line
@@ -50,7 +50,11 @@ public class AutomationServiceImpl implements AutomationService {
                        device -> {
                            final var id = deviceId;

                            if (!device.isEnabled()) {
                            if (device.isEnabled()) {
                                LOGGER.warnf("%s has already been enabled. Ignoring...", device);
                                return;
                            }

                            LOGGER.infof(MESSAGE, device);

                            final var initialConfiguration =
@@ -71,12 +75,9 @@ public class AutomationServiceImpl implements AutomationService {
                                                        .with(
                                                                configuredDeviceId ->
                                                                        LOGGER.infof(
                                                                                    "Device [%s] has been enabled and configured successfully with %s.\n",
                                                                                "Device [%s] has been successfully enabled and configured with %s.\n",
                                                                                id, deviceConfig));
                                            });
                            } else {
                                LOGGER.infof("%s has been already enabled. Ignoring...", device);
                            }
                        });

        return deserializedDeviceUni;
@@ -92,13 +93,23 @@ public class AutomationServiceImpl implements AutomationService {
                        device -> {
                            final var id = deviceId;

                            if (device.isDisabled()) {
                                LOGGER.warnf("%s has already been disabled. Ignoring...", device);
                                return;
                            }

                            device.disableDevice();
                            LOGGER.infof("Disabled device [%s]", id);

                            LOGGER.infof(MESSAGE, device);

                            final var empty = deviceService.deleteDevice(device.getDeviceId());

                            empty
                                    .subscribe()
                                    .with(emptyMessage -> LOGGER.infof("Device [%s] has been deleted.\n", id));
                                    .with(
                                            emptyMessage ->
                                                    LOGGER.infof("Device [%s] has been successfully deleted.\n", id));
                        });

        return deserializedDeviceUni;
@@ -114,6 +125,11 @@ public class AutomationServiceImpl implements AutomationService {
                        device -> {
                            final var id = deviceId;

                            if (!device.isEnabled()) {
                                LOGGER.warnf("Cannot update disabled device %s. Ignoring...", device);
                                return;
                            }

                            LOGGER.infof(MESSAGE, device);
                            device.setDeviceConfiguration(deviceConfig);
                            final var updatedDeviceIdUni = deviceService.configureDevice(device);
@@ -123,7 +139,7 @@ public class AutomationServiceImpl implements AutomationService {
                                    .with(
                                            configuredDeviceId ->
                                                    LOGGER.infof(
                                                            "Device [%s] has been updated successfully with %s.\n",
                                                            "Device [%s] has been successfully updated with %s.\n",
                                                            id, deviceConfig));
                        });

+5 −3
Original line number Diff line number Diff line
@@ -78,9 +78,11 @@ public class ContextSubscriber {
                                    automationService.deleteDevice(deviceEvent.getDeviceId());
                                    break;
                                case UPDATE:
                                    LOGGER.infof("Received %s for device [%s]", event, deviceId);
                                    automationService.updateDevice(
                                            deviceEvent.getDeviceId(), deviceEvent.getDeviceConfig().orElse(null));
                                    LOGGER.warnf(
                                        "Received %s for device [%s]. " +
                                            "No automation action on an already updated device",
                                            event, deviceId);
                                    break;
                                case UNDEFINED:
                                    logWarningMessage(event, deviceId, eventType);
                                    break;
+8 −0
Original line number Diff line number Diff line
@@ -61,10 +61,18 @@ public class Device {
        return deviceOperationalStatus == DeviceOperationalStatus.ENABLED;
    }

    public boolean isDisabled() {
        return deviceOperationalStatus == DeviceOperationalStatus.DISABLED;
    }

    public void enableDevice() {
        this.deviceOperationalStatus = DeviceOperationalStatus.ENABLED;
    }

    public void disableDevice() {
        this.deviceOperationalStatus = DeviceOperationalStatus.DISABLED;
    }

    public String getDeviceId() {
        return deviceId;
    }