public NeutronLoadBalancerPoolMember extractFields(List<String> fields) { NeutronLoadBalancerPoolMember ans = new NeutronLoadBalancerPoolMember(); for (String s : fields) { switch (s) { case "id": ans.setID(this.getID()); break; case "pool_id": ans.setPoolID(this.getPoolID()); break; case "tenant_id": ans.setPoolMemberTenantID(this.getPoolMemberTenantID()); break; case "address": ans.setPoolMemberAddress(this.getPoolMemberAddress()); break; case "protocol_port": ans.setPoolMemberProtoPort(this.getPoolMemberProtoPort()); break; case "admin_state_up": ans.setPoolMemberAdminStateIsUp(poolMemberAdminStateIsUp); break; case "weight": ans.setPoolMemberWeight(this.getPoolMemberWeight()); break; case "subnet_id": ans.setPoolMemberSubnetID(this.getPoolMemberSubnetID()); break;
/** * Assuming that the pool information is fully populated before this call is made, * we go with creating the LoadBalancerConfiguration object for this call with * all information that is necessary to insert flow_mods */ private void doNeutronLoadBalancerPoolMemberCreate(NeutronLoadBalancerPoolMember neutronLBPoolMember) { Preconditions.checkNotNull(loadBalancerProvider); LoadBalancerConfiguration lbConfig = extractLBConfiguration(neutronLBPoolMember); final List<Node> nodes = nodeCacheManager.getBridgeNodes(); if (lbConfig == null) { LOG.debug("Neutron LB configuration invalid for member {} ", neutronLBPoolMember.getPoolMemberAddress()); } else if (lbConfig.getVip() == null) { LOG.debug("Neutron LB VIP not created yet for member {} ", neutronLBPoolMember.getID()); } else if (!lbConfig.isValid()) { LOG.debug("Neutron LB pool configuration invalid for {} ", lbConfig.getName()); } else if (nodes.isEmpty()) { LOG.debug("Noop with LB pool member {} creation because no nodes available.", neutronLBPoolMember.getID()); } else { for (Node node : nodes) { loadBalancerProvider.programLoadBalancerPoolMemberRules(node, lbConfig, lbConfig.getMembers().get(neutronLBPoolMember.getID()), Action.ADD); } } }
String memberID = neutronLBPoolMember.getID(); String memberIP = neutronLBPoolMember.getPoolMemberAddress(); String memberSubnetID = neutronLBPoolMember.getPoolMemberSubnetID(); Integer memberPort = neutronLBPoolMember.getPoolMemberProtoPort(); String memberPoolID = neutronLBPoolMember.getPoolID(); otherMemberID = otherMember.getID(); if (otherMemberID.equals(memberID)) { continue; //skip otherMemberIP = otherMember.getPoolMemberAddress(); otherMemberAdminStateIsUp = otherMember.getPoolMemberAdminStateIsUp(); otherMemberSubnetID = otherMember.getPoolMemberSubnetID(); otherMemberPort = otherMember.getPoolMemberProtoPort(); otherMemberProtocol = memberProtocol;
private NeutronLoadBalancerPoolMember fromMd(InstanceIdentifier<?> iid, Member member) { NeutronLoadBalancerPoolMember result = new NeutronLoadBalancerPoolMember(); result.setPoolID(poolsKey.getUuid().getValue()); result.setID(member.getUuid().getValue()); if (member.isAdminStateUp() != null) { result.setPoolMemberAdminStateIsUp(member.isAdminStateUp()); if (memberIpAddress != null) { if (memberIpAddress.getIpv4Address() != null) { result.setPoolMemberAddress(memberIpAddress.getIpv4Address().getValue()); } else if (memberIpAddress.getIpv6Address() != null) { result.setPoolMemberAddress(memberIpAddress.getIpv6Address().getValue()); result.setPoolMemberProtoPort(member.getProtocolPort()); result.setPoolMemberSubnetID(member.getSubnetId().getValue()); result.setPoolMemberTenantID(member.getTenantId().getValue()); result.setPoolMemberWeight(member.getWeight());
if (pool.getMembers() != null) { for (Member member : pool.getMembers().getMember()) { NeutronLoadBalancerPoolMember neutronMember = new NeutronLoadBalancerPoolMember(); neutronMember.setPoolID(pool.getUuid().getValue()); neutronMember.setPoolMemberID(member.getUuid().getValue());
Boolean memberAdminStateIsUp = neutronLBPoolMember.getPoolMemberAdminStateIsUp(); String memberSubnetID = neutronLBPoolMember.getPoolMemberSubnetID(); if (memberSubnetID != null && memberAdminStateIsUp != null && memberSubnetID.equals(loadBalancerSubnetID) && memberAdminStateIsUp) { String memberID = neutronLBPoolMember.getID(); String memberIP = neutronLBPoolMember.getPoolMemberAddress(); Integer memberPort = neutronLBPoolMember.getPoolMemberProtoPort(); if (memberID == null || memberIP == null || memberPort == null) { LOG.debug("Neutron LB pool member details incomplete: {}", neutronLBPoolMember);
private void doNeutronLoadBalancerPoolMemberDelete(NeutronLoadBalancerPoolMember neutronLBPoolMember) { Preconditions.checkNotNull(loadBalancerProvider); LoadBalancerConfiguration lbConfig = extractLBConfiguration(neutronLBPoolMember); final List<Node> nodes = nodeCacheManager.getBridgeNodes(); if (lbConfig == null) { LOG.debug("Neutron LB configuration invalid for member {} ", neutronLBPoolMember.getPoolMemberAddress()); } else if (lbConfig.getVip() == null) { LOG.debug("Neutron LB VIP not created yet for member {} ", neutronLBPoolMember.getID()); } else if (!lbConfig.isValid()) { LOG.debug("Neutron LB pool configuration invalid for {} ", lbConfig.getName()); } else if (nodes.isEmpty()) { LOG.debug("Noop with LB pool member {} deletion because no nodes available.", neutronLBPoolMember.getID()); } else { /* As of now, deleting a member involves recomputing member indices. * This is best done through a complete update of the load balancer instance. */ LoadBalancerConfiguration newLBConfig = new LoadBalancerConfiguration(lbConfig); newLBConfig.removeMember(neutronLBPoolMember.getID()); for (Node node : nodes) { loadBalancerProvider.programLoadBalancerRules(node, lbConfig, Action.DELETE); loadBalancerProvider.programLoadBalancerRules(node, newLBConfig, Action.ADD); } } }
Boolean memberAdminStateIsUp; for (NeutronLoadBalancerPoolMember neutronLBPoolMember: neutronLBPool.getLoadBalancerPoolMembers()) { memberAdminStateIsUp = neutronLBPoolMember.getPoolMemberAdminStateIsUp(); memberSubnetID = neutronLBPoolMember.getPoolMemberSubnetID(); if (memberSubnetID != null && memberAdminStateIsUp != null && memberSubnetID.equals(loadBalancerSubnetID) && memberAdminStateIsUp) { memberID = neutronLBPoolMember.getID(); memberIP = neutronLBPoolMember.getPoolMemberAddress(); memberPort = neutronLBPoolMember.getPoolMemberProtoPort(); if (memberID == null || memberIP == null || memberPort == null) { LOG.debug("Neutron LB pool member details incomplete: {}", neutronLBPoolMember);