package org.openstack.atlas.api.mgmt.async;
import org.openstack.atlas.service.domain.entities.LoadBalancer;
import org.openstack.atlas.service.domain.entities.LoadBalancerStatus;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.jms.Message;
public class UpdateRateLimitListener extends BaseListener {
final Log LOG = LogFactory.getLog(UpdateRateLimitListener.class);
@Override
public void doOnMessage(Message message) throws Exception {
LOG.debug("Entering " + getClass());
LOG.debug(message);
LoadBalancer queueLb = getEsbRequestFromMessage(message).getLoadBalancer();
LoadBalancer dbLoadBalancer;
dbLoadBalancer = loadBalancerService.get(queueLb.getId());
if (isRestAdapter()) {
LOG.debug("Rate limit attributes verified. Continuing...");
LOG.debug("Updating rate limit in STM...");
reverseProxyLoadBalancerStmService.updateRateLimit(dbLoadBalancer, queueLb.getRateLimit());
} else {
LOG.debug("Rate limit attributes verified. Continuing...");
LOG.debug("Updating rate limit in ZXTM...");
reverseProxyLoadBalancerService.updateRateLimit(dbLoadBalancer, queueLb.getRateLimit());
}
LOG.debug("Setting loadbalancer status to 'ACTIVE'...");
loadBalancerService.setStatus(dbLoadBalancer, LoadBalancerStatus.ACTIVE);
LOG.info("Update rate limit operation complete.");
}
}