public NeutronLoadBalancerPool extractFields(List<String> fields) { NeutronLoadBalancerPool ans = new NeutronLoadBalancerPool(); for (String s : fields) { switch (s) { case "id": ans.setID(this.getID()); break; case "tenant_id": ans.setLoadBalancerPoolTenantID(this.getLoadBalancerPoolTenantID()); break; case "name": ans.setLoadBalancerPoolName(this.getLoadBalancerPoolName()); break; case "description": ans.setLoadBalancerPoolDescription(this.getLoadBalancerPoolDescription()); break; case "protocol": ans.setLoadBalancerPoolProtocol(this.getLoadBalancerPoolProtocol()); break; case "lb_algorithm": ans.setLoadBalancerPoolLbAlgorithm(this.getLoadBalancerPoolLbAlgorithm()); break; case "healthmonitor_id": ans.setNeutronLoadBalancerPoolHealthMonitorID(this.getNeutronLoadBalancerPoolHealthMonitorID()); break; case "admin_state_up": ans.setLoadBalancerPoolAdminStateIsUp(loadBalancerPoolAdminStateIsUp); break; case "members": ans.setLoadBalancerPoolMembers(getLoadBalancerPoolMembers());
private NeutronLoadBalancerPool fromMd(Pool pool) { NeutronLoadBalancerPool result = new NeutronLoadBalancerPool(); result.setID(pool.getUuid().getValue()); if (pool.getTenantId() != null) { result.setLoadBalancerPoolTenantID(pool.getTenantId().getValue()); result.setLoadBalancerPoolName(pool.getName()); result.setLoadBalancerPoolProtocol(PROTOCOL_MAP.get(pool.getProtocol())); result.setLoadBalancerPoolLbAlgorithm(pool.getLbAlgorithm()); result.setNeutronLoadBalancerPoolHealthMonitorID(pool.getHealthmonitorId().getValue()); result.setLoadBalancerPoolAdminStateIsUp(pool.isAdminStateUp()); result.setLoadBalancerPoolListeners(listeners); sessionPersistence.setCookieName(pool.getSessionPersistence().getCookieName()); sessionPersistence.setType(pool.getSessionPersistence().getType()); result.setLoadBalancerSessionPersistence(sessionPersistence); result.setLoadBalancerPoolMembers(loadBalancerPoolMembers);
@Override protected Pool toMd(NeutronLoadBalancerPool pool) { PoolBuilder poolBuilder = new PoolBuilder(); poolBuilder.setAdminStateUp(pool.getLoadBalancerPoolAdminIsStateIsUp()); if (pool.getNeutronLoadBalancerPoolHealthMonitorID() != null) { poolBuilder.setHealthmonitorId(toUuid(pool.getNeutronLoadBalancerPoolHealthMonitorID())); if (pool.getLoadBalancerPoolLbAlgorithm() != null) { poolBuilder.setLbAlgorithm(pool.getLoadBalancerPoolLbAlgorithm()); if (pool.getLoadBalancerPoolListeners() != null) { List<Uuid> listListener = new ArrayList<>(); for (Neutron_ID neutron_id : pool.getLoadBalancerPoolListeners()) { listListener.add(toUuid(neutron_id.getID())); if (pool.getLoadBalancerPoolName() != null) { poolBuilder.setName(pool.getLoadBalancerPoolName()); if (pool.getLoadBalancerPoolProtocol() != null) { ImmutableBiMap<String, Class<? extends ProtocolBase>> mapper = PROTOCOL_MAP.inverse(); poolBuilder.setProtocol(mapper.get(pool.getLoadBalancerPoolProtocol())); if (pool.getLoadBalancerPoolSessionPersistence() != null) { NeutronLoadBalancer_SessionPersistence sessionPersistence = pool.getLoadBalancerPoolSessionPersistence(); SessionPersistenceBuilder sessionPersistenceBuilder = new SessionPersistenceBuilder(); sessionPersistenceBuilder.setCookieName(sessionPersistence.getCookieName()); if (pool.getLoadBalancerPoolTenantID() != null) { poolBuilder.setTenantId(toUuid(pool.getLoadBalancerPoolTenantID()));
String poolProtocol = neutronLBPool.getLoadBalancerPoolProtocol(); if (poolProtocol == null) { return null; List<NeutronLoadBalancerPoolMember> poolMembers = neutronLBPool.getLoadBalancerPoolMembers(); if (poolMembers.size() == 0) { LOG.debug("Neutron LB pool is empty: {}", neutronLBPool); Integer memberPort; Boolean memberAdminStateIsUp; for (NeutronLoadBalancerPoolMember neutronLBPoolMember: neutronLBPool.getLoadBalancerPoolMembers()) { memberAdminStateIsUp = neutronLBPoolMember.getPoolMemberAdminStateIsUp(); memberSubnetID = neutronLBPoolMember.getPoolMemberSubnetID();
@Override public boolean addNeutronLoadBalancerPool(NeutronLoadBalancerPool input) { if (neutronLoadBalancerPoolExists(input.getID())) { return false; } loadBalancerPoolDB.putIfAbsent(input.getID(), input); //TODO: add code to find INeutronLoadBalancerPoolAware services and call newtorkCreated on them return true; }
@Override public int canDeleteNeutronLoadBalancerPool(NeutronLoadBalancerPool neutronLBPool) { String poolProtocol = neutronLBPool.getLoadBalancerPoolProtocol(); if (poolProtocol == null) { return HttpURLConnection.HTTP_BAD_REQUEST; } else if (!(poolProtocol.equalsIgnoreCase(LoadBalancerConfiguration.PROTOCOL_TCP) || poolProtocol.equalsIgnoreCase(LoadBalancerConfiguration.PROTOCOL_HTTP) || poolProtocol.equalsIgnoreCase(LoadBalancerConfiguration.PROTOCOL_HTTPS))) { return HttpURLConnection.HTTP_NOT_ACCEPTABLE; } else { return HttpURLConnection.HTTP_OK; } }
List<NeutronLoadBalancerPoolMember> members = neutronLBPool.getLoadBalancerPoolMembers(); String memberProtocol = neutronLBPool.getLoadBalancerPoolProtocol(); if (memberProtocol == null) { continue;
private void doNeutronLoadBalancerPoolDelete(NeutronLoadBalancerPool neutronLBPool) { Preconditions.checkNotNull(loadBalancerProvider); List<LoadBalancerConfiguration> lbConfigList = extractLBConfiguration(neutronLBPool); final List<Node> nodes = nodeCacheManager.getBridgeNodes(); if (lbConfigList == null) { LOG.debug("Neutron LB configuration invalid for pool {} ", neutronLBPool.getID()); } else if (lbConfigList.size() == 0) { LOG.debug("No Neutron LB VIP not created yet for pool {} ", neutronLBPool.getID()); } else if (nodes.isEmpty()) { LOG.debug("Noop with LB pool {} deletion because no nodes available.", neutronLBPool.getID()); } else { for (LoadBalancerConfiguration lbConfig: lbConfigList) { if (!lbConfig.isValid()) { LOG.debug("Neutron LB pool configuration invalid for {} ", lbConfig.getName()); } else { for (Node node : nodes) { loadBalancerProvider.programLoadBalancerRules(node, lbConfig, Action.DELETE); } } } } }
@Override public int canCreateNeutronLoadBalancerPool(NeutronLoadBalancerPool neutronLBPool) { String poolProtocol = neutronLBPool.getLoadBalancerPoolProtocol(); if (poolProtocol == null) { return HttpURLConnection.HTTP_BAD_REQUEST; } else if (!(poolProtocol.equalsIgnoreCase(LoadBalancerConfiguration.PROTOCOL_TCP) || poolProtocol.equalsIgnoreCase(LoadBalancerConfiguration.PROTOCOL_HTTP) || poolProtocol.equalsIgnoreCase(LoadBalancerConfiguration.PROTOCOL_HTTPS))) { return HttpURLConnection.HTTP_NOT_ACCEPTABLE; } else { return HttpURLConnection.HTTP_OK; } }
return null; String memberProtocol = neutronLBPool.getLoadBalancerPoolProtocol(); if (!(memberProtocol.equalsIgnoreCase(LoadBalancerConfiguration.PROTOCOL_TCP) || memberProtocol.equalsIgnoreCase(LoadBalancerConfiguration.PROTOCOL_HTTP) || Integer otherMemberPort; for (NeutronLoadBalancerPoolMember otherMember: neutronLBPool.getLoadBalancerPoolMembers()) { otherMemberID = otherMember.getID(); if (otherMemberID.equals(memberID)) {
/** * 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 doNeutronLoadBalancerPoolCreate(NeutronLoadBalancerPool neutronLBPool) { Preconditions.checkNotNull(loadBalancerProvider); List<LoadBalancerConfiguration> lbConfigList = extractLBConfiguration(neutronLBPool); final List<Node> nodes = nodeCacheManager.getBridgeNodes(); if (lbConfigList == null) { LOG.debug("Neutron LB configuration invalid for pool {} ", neutronLBPool.getID()); } else if (lbConfigList.size() == 0) { LOG.debug("No Neutron LB VIP not created yet for pool {} ", neutronLBPool.getID()); } else if (nodes.isEmpty()) { LOG.debug("Noop with LB pool {} creation because no nodes available.", neutronLBPool.getID()); } else { for (LoadBalancerConfiguration lbConfig: lbConfigList) { if (!lbConfig.isValid()) { LOG.debug("Neutron LB pool configuration invalid for {} ", lbConfig.getName()); } else { for (Node node : nodes) { loadBalancerProvider.programLoadBalancerRules(node, lbConfig, Action.ADD); } } } } }