public FloatingIP createFloatingIP() throws RegionException, NeutronException { Optional<? extends FloatingIPApi> floatingIPApiExtension = neutronApi.getFloatingIPApi(getRegionOne()); if (floatingIPApiExtension.isPresent()) { FloatingIPApi floatingIPApi = floatingIPApiExtension.get(); return floatingIPApi.create( CreateFloatingIP.createBuilder( getNetworkIdByName(OpenstackConfiguration.EXTERNAL_NETWORK)) .build()); } else { throw new NeutronException("FloatingIp is not present"); } }
/** * Create a new Floating IP from the given floating network and assign it to the given port * * @param port the port to which a Floating IP to be assigned * @param floatingNetworkUuid the network uuid of the floating network from which the Floating IP * should be created * @return the newly created/assigned {@link FloatingIP} */ private FloatingIP createAndAssignFloatingIP(Port port, String floatingNetworkUuid) { assertNotNull(port, "Cannot create floating IP. Invalid port. Port cannot be null"); assertNotNullAndNotEmpty( floatingNetworkUuid, "Cannot create floating IP. Invalid floating network uuid. " + "Floating network uuid cannot be null"); if (log.isDebugEnabled()) { String msg = String.format( "Trying to create a floating IP from network %s to assign to the port %s", floatingNetworkUuid, port.getId()); log.debug(msg); } FloatingIP.CreateFloatingIP createFip; try { createFip = FloatingIP.createBuilder(floatingNetworkUuid).portId(port.getId()).build(); } catch (Exception e) { String msg = String.format( "Error while getting floating IP builder for the external network %s and port %s", floatingNetworkUuid, port.toString()); log.error(msg, e); throw new CloudControllerException(msg, e); } FloatingIP floatingIP = null; try { floatingIP = floatingIPApi.create(createFip); } catch (Exception e) { String msg = String.format( "Error while creating floating IP for the port %s, from floating network %s", port.toString(), floatingNetworkUuid); log.error(msg, e); throw new CloudControllerException(msg, e); } String msg = String.format("Unable to create a floating IP from network %s", floatingNetworkUuid); assertNotNull(floatingIP, msg); return floatingIP; }