NeutronFloatingIP ans = new NeutronFloatingIP(); for (String s : fields) { switch (s) { case "id": ans.setID(this.getID()); break; case "floating_network_id": ans.setFloatingNetworkUUID(this.getFloatingNetworkUUID()); break; case "port_id": ans.setPortUUID(this.getPortUUID()); break; case "fixed_ip_address": ans.setFixedIPAddress(this.getFixedIPAddress()); break; case "floating_ip_address": ans.setFloatingIPAddress(this.getFloatingIPAddress()); break; case "tenant_id": ans.setTenantUUID(this.getTenantUUID()); break; case "router_id": ans.setRouterUUID(this.getRouterUUID()); break; case "status": ans.setStatus(this.getStatus()); break;
@Override public boolean updateFloatingIP(String uuid, NeutronFloatingIP delta) { NeutronFloatingIP target = getFloatingIP(uuid); if (target == null) { return false; } delta.setPortUUID(target.getPortUUID()); delta.setFixedIPAddress(target.getFixedIPAddress()); return updateMd(delta); }
/** * This method performs creation or deletion of in-bound rules into Table 30 for a existing available floating * ip, otherwise for newer one. */ private void programFlowsForFloatingIPInbound(final NeutronFloatingIP neutronFloatingIP, final Action action) { Preconditions.checkNotNull(neutronFloatingIP); final FloatIpData fid = getFloatingIPWithMetadata(neutronFloatingIP.getID()); if (fid == null) { LOG.trace("programFlowsForFloatingIPInboundAdd {} for {} uuid {} not in local cache", action, neutronFloatingIP.getFloatingIPAddress(), neutronFloatingIP.getID()); return; } programInboundIpRewriteStage1(fid.dpid, fid.ofPort, fid.segId, fid.floatingIpAddress, fid.fixedIpAddress, action); }
protected NeutronFloatingIP fromMd(Floatingip fip) { NeutronFloatingIP result = new NeutronFloatingIP(); result.setID(String.valueOf(fip.getUuid().getValue())); if (fip.getFloatingNetworkId() != null) { result.setFloatingNetworkUUID(String.valueOf(fip.getFloatingNetworkId().getValue())); } if (fip.getPortId() != null) { result.setPortUUID(String.valueOf(fip.getPortId().getValue())); } if (fip.getFixedIpAddress() != null ) { result.setFixedIPAddress(String.valueOf(fip.getFixedIpAddress().getValue())); } if (fip.getFloatingIpAddress() != null) { result.setFloatingIPAddress(String.valueOf(fip.getFloatingIpAddress().getValue())); } if (fip.getTenantId() != null) { result.setTenantUUID(String.valueOf(fip.getTenantId().getValue())); } if (fip.getRouterId() != null) { result.setRouterUUID(String.valueOf(fip.getRouterId().getValue())); } result.setStatus(fip.getStatus()); return result; }
@Override protected Floatingip toMd(NeutronFloatingIP floatingIp) { FloatingipBuilder floatingipBuilder = new FloatingipBuilder(); if (floatingIp.getFixedIPAddress() != null) { floatingipBuilder.setFixedIpAddress(new IpAddress(floatingIp.getFixedIPAddress().toCharArray())); if(floatingIp.getFloatingIPAddress() != null) { floatingipBuilder.setFloatingIpAddress(new IpAddress(floatingIp.getFloatingIPAddress().toCharArray())); if (floatingIp.getFloatingNetworkUUID() != null) { floatingipBuilder.setFloatingNetworkId(toUuid(floatingIp.getFloatingNetworkUUID())); if (floatingIp.getPortUUID() != null) { floatingipBuilder.setPortId(toUuid(floatingIp.getPortUUID())); if (floatingIp.getRouterUUID() != null) { floatingipBuilder.setRouterId(toUuid(floatingIp.getRouterUUID())); if (floatingIp.getStatus() != null) { floatingipBuilder.setStatus(floatingIp.getStatus()); if (floatingIp.getTenantUUID() != null) { floatingipBuilder.setTenantId(toUuid(floatingIp.getTenantUUID())); if (floatingIp.getID() != null) { floatingipBuilder.setUuid(toUuid(floatingIp.getID()));
Preconditions.checkNotNull(neutronFloatingIP.getFixedIPAddress()); Preconditions.checkNotNull(neutronFloatingIP.getFloatingIPAddress()); final NeutronPort neutronPortForFloatIp = findNeutronPortForFloatingIp(neutronFloatingIP.getID()); final String neutronTenantPortUuid = neutronFloatingIP.getPortUUID(); final Pair<Long, Uuid> nodeIfPair = this.getDpIdOfNeutronPort(neutronTenantPortUuid); final String floatingIpMac = neutronPortForFloatIp == null ? null : neutronPortForFloatIp.getMacAddress(); final String fixedIpAddress = neutronFloatingIP.getFixedIPAddress(); final String floatingIpAddress = neutronFloatingIP.getFloatingIPAddress(); final FloatIpData floatIpData = new FloatIpData(dpId, ofPort, providerSegmentationId, floatingIpMac, floatingIpAddress, fixedIpAddress, neutronRouterMac); floatIpDataMapCache.put(neutronFloatingIP.getID(), floatIpData); LOG.info("Floating IP {}<->{} programmed ARP mac {} on OFport {} seg {} dpid {}", neutronFloatingIP.getFixedIPAddress(), neutronFloatingIP.getFloatingIPAddress(), floatingIpMac, ofPort, providerSegmentationId, dpId);
neutronFloatingIP.getFixedIPAddress(), neutronFloatingIP.getFloatingIPAddress(), neutronFloatingIP.getFloatingNetworkUUID()); if (!this.enabled) { return; if (neutronFloatingIP.getFixedIPAddress() == null) { action = DELETE; } else { programFlowsForFloatingIPArpDelete(neutronFloatingIP.getID());
private void cleanupFloatingIPRules(final NeutronPort neutronPort) { List<NeutronFloatingIP> neutronFloatingIps = neutronFloatingIpCache.getAllFloatingIPs(); if (neutronFloatingIps != null && !neutronFloatingIps.isEmpty()) { for (NeutronFloatingIP neutronFloatingIP : neutronFloatingIps) { // Neutron floating Ip's port uuid cannot be null (Bug#5894) if (neutronFloatingIP.getPortUUID() != null && (neutronFloatingIP.getPortUUID().equals(neutronPort.getPortUUID()))) { handleNeutronFloatingIPEvent(neutronFloatingIP, DELETE); } } } }
private Collection<FloatIpData> getAllFloatingIPsWithMetadata() { LOG.debug("getAllFloatingIPsWithMetadata : Fechting all floating Ips and it's metadata"); List<NeutronFloatingIP> neutronFloatingIps = neutronFloatingIpCache.getAllFloatingIPs(); if(neutronFloatingIps != null && !neutronFloatingIps.isEmpty()) { for (NeutronFloatingIP neutronFloatingIP : neutronFloatingIps) { if(!floatIpDataMapCache.containsKey(neutronFloatingIP.getID())){ LOG.debug("Metadata for floating ip {} is not present in the cache. " + "Fetching from data store.",neutronFloatingIP.getID()); this.getFloatingIPWithMetadata(neutronFloatingIP.getID()); } } } LOG.debug("getAllFloatingIPsWithMetadata : {} floating points found in data store",floatIpDataMapCache.size()); return floatIpDataMapCache.values(); } private FloatIpData getFloatingIPWithMetadata(String neutronFloatingId) {
private NeutronFloatingIP fromMd(Floatingip fip) { NeutronFloatingIP result = new NeutronFloatingIP(); result.setID(String.valueOf(fip.getUuid().getValue())); if (fip.getFloatingNetworkId() != null) { result.setFloatingNetworkUUID(String.valueOf(fip.getFloatingNetworkId().getValue())); } if (fip.getPortId() != null) { result.setPortUUID(String.valueOf(fip.getPortId().getValue())); } if (fip.getFixedIpAddress() != null ) { result.setFixedIPAddress(String.valueOf(fip.getFixedIpAddress().getValue())); } if (fip.getFloatingIpAddress() != null) { result.setFloatingIPAddress(String.valueOf(fip.getFloatingIpAddress().getValue())); } if (fip.getTenantId() != null) { result.setTenantUUID(String.valueOf(fip.getTenantId().getValue())); } if (fip.getRouterId() != null) { result.setRouterUUID(String.valueOf(fip.getRouterId().getValue())); } result.setStatus(fip.getStatus()); return result; }
for (NeutronPort neutronPort : neutronPorts) { if (neutronPort.getDeviceOwner().equals(OWNER_FLOATING_IP) && neutronPort.getDeviceID().equals(neutronFloatingIP.getID())) { neutronPortForFloatIp = neutronPort; break; String neutronTenantPortUuid = neutronFloatingIP.getPortUUID(); if(neutronTenantPortUuid == null) { return null; String fixedIpAddress = neutronFloatingIP.getFixedIPAddress(); String floatingIpAddress = neutronFloatingIP.getFloatingIPAddress(); floatIpDataMapCache.put(neutronFloatingIP.getID(), floatIpData);
/** * This method performs creation or deletion of out-bound rules into Table 100 for a existing available floating * ip, otherwise for newer one. */ private void programFlowsForFloatingIPOutbound(final NeutronFloatingIP neutronFloatingIP, final Action action) { Preconditions.checkNotNull(neutronFloatingIP); final FloatIpData fid = getFloatingIPWithMetadata(neutronFloatingIP.getID()); if (fid == null) { LOG.trace("programFlowsForFloatingIPOutbound {} for {} uuid {} not in local cache", action, neutronFloatingIP.getFloatingIPAddress(), neutronFloatingIP.getID()); return; } programOutboundIpRewriteStage1(fid, action); }
private void updateFloatingIPRules(final NeutronPort neutronPort) { List<NeutronFloatingIP> neutronFloatingIps = neutronFloatingIpCache.getAllFloatingIPs(); if (neutronFloatingIps != null) { for (NeutronFloatingIP neutronFloatingIP : neutronFloatingIps) { if (neutronFloatingIP.getPortUUID() != null && neutronFloatingIP.getPortUUID().equals( neutronPort.getPortUUID())) { handleNeutronFloatingIPEvent(neutronFloatingIP, UPDATE); } } } }
@Override public boolean addFloatingIP(NeutronFloatingIP input) { if (floatingIPExists(input.getID())) { return false; } return addMd(input); }