package org.openstack.atlas.api.mgmt.async; import org.openstack.atlas.service.domain.entities.LoadBalancer; import org.openstack.atlas.service.domain.entities.RateLimit; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import javax.jms.Message; import java.util.List; public class DeleteExpiredRateLimitListener extends BaseListener { private final Log LOG = LogFactory.getLog(DeleteExpiredRateLimitListener.class); @Override public void doOnMessage(Message message) throws Exception { LOG.info("Entering " + getClass()); LOG.info(message); List<RateLimit> rateLimits = rateLimitingService.retrieveLoadBalancerRateLimits(); LOG.info("Deleting rate limits in Zeus..."); if (!rateLimits.isEmpty()) { for (RateLimit rl : rateLimits) { LoadBalancer lb = rl.getLoadbalancer(); if (isRestAdapter()) { LOG.debug(String.format("Attempting to remove expired rate limit for load balancer in STM... '%d' ...", lb.getId())); reverseProxyLoadBalancerStmService.deleteRateLimit(lb); LOG.debug(String.format("expired rate limits were removed from STM..loadbalancer in STM...'%s'..", lb.getId()) + "Now we can remove the from the database..."); } else { LOG.debug(String.format("Attempting to remove expired rate limit for load balancer in ZXTM... '%d' ...", lb.getId())); reverseProxyLoadBalancerService.deleteRateLimit(lb); LOG.debug(String.format("expired rate limits were removed from ZXTM..loadbalancer...'%s'..", lb.getId())); } try { rateLimitingService.removeLimitByExpiration(rl.getId()); } catch (Exception e) { LOG.error("failed to remove from database...." + e); } } } else { LOG.debug("No expired rate limits were found.."); } LOG.debug("Removal of rate limits complete..."); } }