private IpMappingImpl(IpMappingBuilder base) { if (base.getKey() == null) { this._key = new IpMappingKey( base.getInternalIp() ); this._internalIp = base.getInternalIp(); } else { this._key = base.getKey(); this._internalIp = _key.getInternalIp(); } this._externalIp = base.getExternalIp(); this._label = base.getLabel(); switch (base.augmentation.size()) { case 0: this.augmentation = Collections.emptyMap(); break; case 1: final Map.Entry<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.floating.ip.info.router.ports.ports.IpMapping>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.floating.ip.info.router.ports.ports.IpMapping>> e = base.augmentation.entrySet().iterator().next(); this.augmentation = Collections.<java.lang.Class<? extends Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.floating.ip.info.router.ports.ports.IpMapping>>, Augmentation<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.floating.ip.info.router.ports.ports.IpMapping>>singletonMap(e.getKey(), e.getValue()); break; default : this.augmentation = new HashMap<>(base.augmentation); } }
public IpMappingBuilder(IpMapping base) { if (base.getKey() == null) { this._key = new IpMappingKey( base.getInternalIp() ); this._internalIp = base.getInternalIp(); } else { this._key = base.getKey(); this._internalIp = _key.getInternalIp(); } this._externalIp = base.getExternalIp(); this._label = base.getLabel(); if (base instanceof IpMappingImpl) { IpMappingImpl impl = (IpMappingImpl) base; if (!impl.augmentation.isEmpty()) { this.augmentation = new HashMap<>(impl.augmentation); } } else if (base instanceof AugmentationHolder) { @SuppressWarnings("unchecked") AugmentationHolder<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.floating.ip.info.router.ports.ports.IpMapping> casted =(AugmentationHolder<org.opendaylight.yang.gen.v1.urn.opendaylight.netvirt.natservice.rev160111.floating.ip.info.router.ports.ports.IpMapping>) base; if (!casted.augmentations().isEmpty()) { this.augmentation = new HashMap<>(casted.augmentations()); } } }
void updateOperationalDS(String routerId, String interfaceName, long label, String internalIp, String externalIp) { LOG.info("Updating operational DS for floating ip config : {} with label {}", internalIp, label); InstanceIdentifier<Ports> portsId = NatUtil.getPortsIdentifier(routerId, interfaceName); Optional<Ports> optPorts = NatUtil.read(dataBroker, LogicalDatastoreType.OPERATIONAL, portsId); IpMapping ipMapping = new IpMappingBuilder().setKey(new IpMappingKey(internalIp)).setInternalIp(internalIp) .setExternalIp(externalIp).setLabel(label).build(); if(optPorts.isPresent()) { LOG.debug("Ports {} entry already present. Updating ipmapping for internal ip {}", interfaceName, internalIp); MDSALUtil.syncWrite(dataBroker, LogicalDatastoreType.OPERATIONAL, portsId.child(IpMapping.class, new IpMappingKey(internalIp)), ipMapping); } else { LOG.debug("Adding Ports entry {} along with ipmapping {}", interfaceName, internalIp); List<IpMapping> ipMappings = new ArrayList<>(); ipMappings.add(ipMapping); Ports ports = new PortsBuilder().setKey(new PortsKey(interfaceName)).setPortName(interfaceName).setIpMapping(ipMappings).build(); MDSALUtil.syncWrite(dataBroker, LogicalDatastoreType.OPERATIONAL, portsId, ports); } }
static InstanceIdentifier<IpMapping> getIpMappingIdentifier(String routerId, String portName, String internalIp) { return InstanceIdentifier.builder(FloatingIpInfo.class).child(RouterPorts.class, new RouterPortsKey(routerId)) .child(Ports.class, new PortsKey(portName)) .child(IpMapping.class, new IpMappingKey(internalIp)).build(); }
portsIdentifierBuilder.child(IpMapping.class, new IpMappingKey(fixedIpAddress)).build(); try {
ipMappingList = new ArrayList<>(); IpMapping ipMapping = new IpMappingBuilder().setKey(new IpMappingKey(fixedIpAddress)) .setInternalIp(fixedIpAddress).setExternalIp(floatingIpAddress).setLabel(null).build(); ipMappingList.add(ipMapping);