@Override public void save(final AdminInputMessage message) { // This method gets either a sensors or alerts list and should created/update each one in Redis if (!CollectionUtils.isEmpty(message.getSensors())) { saveSensors(message); } if (!CollectionUtils.isEmpty(message.getAlerts())) { saveAlerts(message); } }
private void saveSensors(final AdminInputMessage message) { for (final CatalogSensor sensor : message.getSensors()) { LOGGER.debug("Saving sensor [{}] belonging to provider [{}]", sensor.getSensor(), sensor.getProvider()); registerProviderAndSensorIfNeedBe(sensor); } }
@Override public void delete(final AdminInputMessage message) { // This method must remove everything stored in Redis related to sensors, providers or alerts. // The data, such as observations, orders and alarms, does not need be removed because them have // a ttl associated with and Redis automatically deleted them. // Furthermore, these data will be orphaned so them cannot be retrieved with the API REST. if (!CollectionUtils.isEmpty(message.getProviders())) { deleteProviders(message.getProviders()); } else if (!CollectionUtils.isEmpty(message.getSensors())) { deleteSensors(message.getSensors()); } else if (!CollectionUtils.isEmpty(message.getAlerts())) { deleteAlerts(message.getAlerts()); } }
protected void processOnPostOrPutRequest(final SentiloRequest request, final SentiloResponse response) { validateResourceNumberParts(request, 1, 1); validateApiAdminInvoke(request.getEntitySource()); final AdminInputMessage inputMessage = parser.parsePostPutRequest(request); validator.validateRequestMessageOnPut(inputMessage); LOGGER.debug("Type message: {}", inputMessage.getType()); LOGGER.debug("Sensors: {}", !CollectionUtils.isEmpty(inputMessage.getSensors()) ? inputMessage.getSensors().size() : 0); LOGGER.debug("Providers: {}", !CollectionUtils.isEmpty(inputMessage.getProviders()) ? inputMessage.getProviders().size() : 0); LOGGER.debug("Alerts: {}", !CollectionUtils.isEmpty(inputMessage.getAlerts()) ? inputMessage.getAlerts().size() : 0); switch (inputMessage.getType()) { case delete: adminService.delete(inputMessage); break; case save: adminService.save(inputMessage); break; default: throw new MessageValidationException(String.format("Request %s not supported", request.getUri())); } }