private void registerDhcpInfo(OpenstackPort openstackPort) { Ip4Address ip4Address; Ip4Address subnetMask; Ip4Address dhcpServer; Ip4Address gatewayIPAddress; Ip4Address domainServer; OpenstackSubnet openstackSubnet; ip4Address = (Ip4Address) openstackPort.fixedIps().values().toArray()[0]; openstackSubnet = restHandler .getSubnets() .stream() .filter(n -> n.networkId().equals(openstackPort.networkId())) .findFirst() .get(); subnetMask = Ip4Address.valueOf(buildSubnetMask(openstackSubnet.cidr())); gatewayIPAddress = Ip4Address.valueOf(openstackSubnet.gatewayIp()); dhcpServer = gatewayIPAddress; // TODO: supports multiple DNS servers if (openstackSubnet.dnsNameservers().isEmpty()) { domainServer = Ip4Address.valueOf("8.8.8.8"); } else { domainServer = openstackSubnet.dnsNameservers().get(0); } List<Ip4Address> options = Lists.newArrayList(); options.add(subnetMask); options.add(dhcpServer); options.add(gatewayIPAddress); options.add(domainServer); dhcpService.setStaticMapping(openstackPort.macAddress(), ip4Address, true, options); }