@Override public void processData(String id, IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { UnitConfig dalUnitConfig = entry.getMessage(); // filter virtual units if(UnitConfigProcessor.isVirtualUnit(dalUnitConfig)) { return; } if (!dalUnitConfig.hasUnitHostId() || dalUnitConfig.getUnitHostId().isEmpty()) { throw new NotAvailableException("unitConfig.unitHostId"); } UnitConfig deviceUnitConfig = deviceRegistry.getMessage(dalUnitConfig.getUnitHostId()); if (!oldHostEnablingStateMap.get(registry.isSandbox()).containsKey(dalUnitConfig.getId())) { oldHostEnablingStateMap.get(registry.isSandbox()).put(dalUnitConfig.getId(), deviceUnitConfig.getEnablingState()); } if (oldHostEnablingStateMap.get(registry.isSandbox()).get(dalUnitConfig.getId()) != deviceUnitConfig.getEnablingState()) { oldHostEnablingStateMap.get(registry.isSandbox()).put(dalUnitConfig.getId(), deviceUnitConfig.getEnablingState()); if (deviceUnitConfig.getEnablingState().getValue() == EnablingState.State.ENABLED) { throw new EntryModification(entry.setMessage(dalUnitConfig.toBuilder().setEnablingState(deviceUnitConfig.getEnablingState())), this); } } if (deviceUnitConfig.getEnablingState().getValue() == EnablingState.State.DISABLED) { if (dalUnitConfig.getEnablingState().getValue() == EnablingState.State.ENABLED) { EnablingState disabled = EnablingState.newBuilder().setValue(EnablingState.State.DISABLED).build(); throw new EntryModification(entry.setMessage(dalUnitConfig.toBuilder().setEnablingState(disabled)), this); } } }
@Override public void processData(String id, IdentifiableMessage<String, UnitConfig, UnitConfig.Builder> entry, ProtoBufMessageMap<String, UnitConfig, UnitConfig.Builder> entryMap, ProtoBufRegistry<String, UnitConfig, UnitConfig.Builder> registry) throws CouldNotPerformException, EntryModification { UnitConfig deviceUnitConfig = entry.getMessage(); DeviceConfig deviceConfig = deviceUnitConfig.getDeviceConfig(); if (!oldInventoryStateMap.get(registry.isSandbox()).containsKey(deviceUnitConfig.getId())) { oldInventoryStateMap.get(registry.isSandbox()).put(deviceUnitConfig.getId(), deviceConfig.getInventoryState().getValue()); } if (!deviceConfig.hasInventoryState()) { throw new NotAvailableException("deviceConfig.inventoryState"); } if (!deviceConfig.getInventoryState().hasValue()) { throw new NotAvailableException("deviceConfig.inventoryState.value"); } if (deviceConfig.getInventoryState().getValue() != InventoryState.State.INSTALLED) { if (deviceUnitConfig.getEnablingState().getValue() == EnablingState.State.ENABLED) { EnablingState disabled = EnablingState.newBuilder().setValue(EnablingState.State.DISABLED).build(); throw new EntryModification(entry.setMessage(deviceUnitConfig.toBuilder().setEnablingState(disabled)), this); } } if (oldInventoryStateMap.get(registry.isSandbox()).get(deviceUnitConfig.getId()) != deviceConfig.getInventoryState().getValue()) { oldInventoryStateMap.get(registry.isSandbox()).put(deviceUnitConfig.getId(), deviceConfig.getInventoryState().getValue()); if (deviceConfig.getInventoryState().getValue() == InventoryState.State.INSTALLED) { EnablingState enabled = EnablingState.newBuilder().setValue(EnablingState.State.ENABLED).build(); throw new EntryModification(entry.setMessage(deviceUnitConfig.toBuilder().setEnablingState(enabled)), this); } } }
try { if (JPService.getProperty(JPRecoverDB.class).getValue()) { if (!registry.isSandbox()) { logger.warn("Unit[" + dalUnitConfig.getLabel() + "] will be removed because UnitHost[" + unitHostConfig.getLabel() + "] does not know this unit!");