try {
commitFuture.get(); // TODO: Make it async (See bug 1362)
logger.debug("Transaction success for deletion of Flow "+flowBuilder.getFlowName());
- } catch (InterruptedException|ExecutionException e) {
+ } catch (Exception e) {
logger.error(e.getMessage(), e);
+ modification.cancel();
}
}
LoadBalancerConfiguration lbConfig = extractLBConfiguration(neutronLB);
if (!lbConfig.isValid()) {
- logger.trace("Neutron LB pool configuration invalid for {} ", lbConfig.getName());
+ logger.debug("Neutron LB pool configuration invalid for {} ", lbConfig.getName());
} else if (this.switchManager.getNodes().size() == 0) {
- logger.trace("Noop with LB {} creation because no nodes available.", lbConfig.getName());
+ logger.debug("Noop with LB {} creation because no nodes available.", lbConfig.getName());
} else {
for (Node node: this.switchManager.getNodes())
loadBalancerProvider.programLoadBalancerRules(node, lbConfig, Action.ADD);
LoadBalancerConfiguration lbConfig = extractLBConfiguration(neutronLB);
if (!lbConfig.isValid()) {
- logger.trace("Neutron LB pool configuration invalid for {} ", lbConfig.getName());
+ logger.debug("Neutron LB pool configuration invalid for {} ", lbConfig.getName());
} else if (this.switchManager.getNodes().size() == 0) {
- logger.trace("Noop with LB {} deletion because no nodes available.", lbConfig.getName());
+ logger.debug("Noop with LB {} deletion because no nodes available.", lbConfig.getName());
} else {
for (Node node: this.switchManager.getNodes())
loadBalancerProvider.programLoadBalancerRules(node, lbConfig, Action.DELETE);
doNeutronLoadBalancerCreate(ev.getLoadBalancer());
break;
case DELETE:
- try {
doNeutronLoadBalancerDelete(ev.getLoadBalancer());
- } catch (Exception e) {
- e.printStackTrace();
- }
break;
case UPDATE:
/**
for (NeutronLoadBalancer neutronLB: neutronLBCache.getAllNeutronLoadBalancers()) {
LoadBalancerConfiguration lbConfig = extractLBConfiguration(neutronLB);
if (!lbConfig.isValid())
- logger.trace("Neutron LB configuration invalid for {} ", lbConfig.getName());
+ logger.debug("Neutron LB configuration invalid for {} ", lbConfig.getName());
else {
if (type.equals(UpdateType.ADDED))
loadBalancerProvider.programLoadBalancerRules(node, lbConfig, Action.ADD);
- else if (type.equals(UpdateType.REMOVED))
- loadBalancerProvider.programLoadBalancerRules(node, lbConfig, Action.DELETE);
+
+ /* When node disappears, we do nothing for now. Making a call to
+ * loadBalancerProvider.programLoadBalancerRules(node, lbConfig, Action.DELETE)
+ * can lead to TransactionCommitFailedException. Similarly when node is changed,
+ * because of remove followed by add, we do nothing.
+ */
+ else //(type.equals(UpdateType.REMOVED) || type.equals(UpdateType.CHANGED))
+ continue;
}
}
}
Preconditions.checkNotNull(loadBalancerProvider);
List<LoadBalancerConfiguration> lbConfigList = extractLBConfiguration(neutronLBPool);
if (lbConfigList == null) {
- logger.trace("Neutron LB configuration invalid for pool {} ", neutronLBPool.getLoadBalancerPoolID());
+ logger.debug("Neutron LB configuration invalid for pool {} ", neutronLBPool.getLoadBalancerPoolID());
} else if (lbConfigList.size() == 0) {
- logger.trace("No Neutron LB VIP not created yet for pool {} ", neutronLBPool.getLoadBalancerPoolID());
+ logger.debug("No Neutron LB VIP not created yet for pool {} ", neutronLBPool.getLoadBalancerPoolID());
} else if (this.switchManager.getNodes().size() == 0) {
- logger.trace("Noop with LB pool {} creation because no nodes available.", neutronLBPool.getLoadBalancerPoolID());
+ logger.debug("Noop with LB pool {} creation because no nodes available.", neutronLBPool.getLoadBalancerPoolID());
} else {
for (LoadBalancerConfiguration lbConfig: lbConfigList) {
if (!lbConfig.isValid()) {
List<LoadBalancerConfiguration> lbConfigList = extractLBConfiguration(neutronLBPool);
if (lbConfigList == null) {
- logger.trace("Neutron LB configuration invalid for pool {} ", neutronLBPool.getLoadBalancerPoolID());
+ logger.debug("Neutron LB configuration invalid for pool {} ", neutronLBPool.getLoadBalancerPoolID());
} else if (lbConfigList.size() == 0) {
- logger.trace("No Neutron LB VIP not created yet for pool {} ", neutronLBPool.getLoadBalancerPoolID());
+ logger.debug("No Neutron LB VIP not created yet for pool {} ", neutronLBPool.getLoadBalancerPoolID());
} else if (this.switchManager.getNodes().size() == 0) {
- logger.trace("Noop with LB pool {} deletion because no nodes available.", neutronLBPool.getLoadBalancerPoolID());
+ logger.debug("Noop with LB pool {} deletion because no nodes available.", neutronLBPool.getLoadBalancerPoolID());
} else {
for (LoadBalancerConfiguration lbConfig: lbConfigList) {
if (!lbConfig.isValid()) {
*/
@Override
public void processEvent(AbstractEvent abstractEvent) {
- logger.debug("Processing Loadbalancer event " + abstractEvent);
+ logger.debug("Processing Loadbalancer Pool event " + abstractEvent);
if (!(abstractEvent instanceof NorthboundEvent)) {
logger.error("Unable to process abstract event " + abstractEvent);
return;
Preconditions.checkNotNull(loadBalancerProvider);
LoadBalancerConfiguration lbConfig = extractLBConfiguration(neutronLBPoolMember);
if (lbConfig == null) {
- logger.trace("Neutron LB configuration invalid for member {} ", neutronLBPoolMember.getPoolMemberAddress());
+ logger.debug("Neutron LB configuration invalid for member {} ", neutronLBPoolMember.getPoolMemberAddress());
} else if (lbConfig.getVip() == null) {
- logger.trace("Neutron LB VIP not created yet for member {} ", neutronLBPoolMember.getPoolMemberID());
+ logger.debug("Neutron LB VIP not created yet for member {} ", neutronLBPoolMember.getPoolMemberID());
} else if (!lbConfig.isValid()) {
- logger.trace("Neutron LB pool configuration invalid for {} ", lbConfig.getName());
+ logger.debug("Neutron LB pool configuration invalid for {} ", lbConfig.getName());
} else if (this.switchManager.getNodes().size() == 0) {
- logger.trace("Noop with LB pool member {} creation because no nodes available.", neutronLBPoolMember.getPoolMemberID());
+ logger.debug("Noop with LB pool member {} creation because no nodes available.", neutronLBPoolMember.getPoolMemberID());
} else {
for (Node node: this.switchManager.getNodes())
loadBalancerProvider.programLoadBalancerPoolMemberRules(node, lbConfig,
LoadBalancerConfiguration lbConfig = extractLBConfiguration(neutronLBPoolMember);
if (lbConfig == null) {
- logger.trace("Neutron LB configuration invalid for member {} ", neutronLBPoolMember.getPoolMemberAddress());
+ logger.debug("Neutron LB configuration invalid for member {} ", neutronLBPoolMember.getPoolMemberAddress());
} else if (lbConfig.getVip() == null) {
- logger.trace("Neutron LB VIP not created yet for member {} ", neutronLBPoolMember.getPoolMemberID());
+ logger.debug("Neutron LB VIP not created yet for member {} ", neutronLBPoolMember.getPoolMemberID());
} else if (!lbConfig.isValid()) {
- logger.trace("Neutron LB pool configuration invalid for {} ", lbConfig.getName());
+ logger.debug("Neutron LB pool configuration invalid for {} ", lbConfig.getName());
} else if (this.switchManager.getNodes().size() == 0) {
- logger.trace("Noop with LB pool member {} deletion because no nodes available.", neutronLBPoolMember.getPoolMemberID());
+ logger.debug("Noop with LB pool member {} deletion because no nodes available.", neutronLBPoolMember.getPoolMemberID());
} else {
/* As of now, deleting a member involves recomputing member indices.
* This is best done through a complete update of the load balancer instance.
String memberIP = neutronLBPoolMember.getPoolMemberAddress();
String memberMAC = NeutronCacheUtils.getMacAddress(neutronPortsCache, memberIP);
if (memberMAC == null) {
- logger.trace("Neutron LB pool member {} MAC address unavailable", memberID);
+ logger.debug("Neutron LB pool member {} MAC address unavailable", memberID);
return null;
}
String memberSubnetID = neutronLBPoolMember.getPoolMemberSubnetID();
String memberProtocol = null;
if (memberSubnetID == null || memberID == null || memberPoolID == null) {
- logger.trace("Neutron LB pool member details incomplete [id={}, pool_id={},subnet_id={}",
+ logger.debug("Neutron LB pool member details incomplete [id={}, pool_id={},subnet_id={}",
memberID, memberPoolID, memberSubnetID);
return null;
}