@Override public FreeIpInventory call(String arg) { FreeIpInventory f = new FreeIpInventory(); f.setGateway(ipr.getGateway()); f.setIp(arg); f.setNetmask(ipr.getNetmask()); f.setIpRangeUuid(ipr.getUuid()); return f; } });
@Override public void prepareDbInitialValue() { List<IpRangeVO> ipRangeVOS = Q.New(IpRangeVO.class).isNull(IpRangeVO_.prefixLen).list(); for (IpRangeVO ipr : ipRangeVOS) { ipr.setPrefixLen(NetworkUtils.getPrefixLengthFromNetwork(ipr.getNetmask())); } if (!ipRangeVOS.isEmpty()) { dbf.updateCollection(ipRangeVOS); } List<VmNicVO> nics = Q.New(VmNicVO.class).notNull(VmNicVO_.usedIpUuid).list(); List<UsedIpVO> ips = new ArrayList<>(); for (VmNicVO nic : nics) { UsedIpVO ip = Q.New(UsedIpVO.class).eq(UsedIpVO_.uuid, nic.getUsedIpUuid()).isNull(UsedIpVO_.vmNicUuid).find(); if (ip != null) { ip.setVmNicUuid(nic.getUuid()); ips.add(ip); } } if (!ips.isEmpty()) { dbf.updateCollection(ips); } } }
@MessageSafe private void dealMessage(FlatDhcpAcquireDhcpServerIpMsg msg) { FlatDhcpAcquireDhcpServerIpReply reply = new FlatDhcpAcquireDhcpServerIpReply(); String ip = allocateDhcpIp(msg.getL3NetworkUuid()); if (ip != null) { List<IpRangeVO> iprs = Q.New(IpRangeVO.class).eq(IpRangeVO_.l3NetworkUuid, msg.getL3NetworkUuid()).list(); if (iprs == null || iprs.isEmpty()) { reply.setError(operr("L3 network[uuid:%s] does not have any iprange", msg.getL3NetworkUuid())); bus.reply(msg, reply); return; } reply.setIp(ip); reply.setNetmask(iprs.get(0).getNetmask()); reply.setIpr(IpRangeInventory.valueOf(iprs.get(0))); } bus.reply(msg, reply); }
public static IpRangeInventory valueOf(IpRangeVO vo) { IpRangeInventory inv = new IpRangeInventory(); inv.setCreateDate(vo.getCreateDate()); inv.setDescription(vo.getDescription()); inv.setEndIp(vo.getEndIp()); inv.setGateway(vo.getGateway()); inv.setL3NetworkUuid(vo.getL3NetworkUuid()); inv.setName(vo.getName()); inv.setNetmask(vo.getNetmask()); inv.setStartIp(vo.getStartIp()); inv.setUuid(vo.getUuid()); inv.setLastOpDate(vo.getLastOpDate()); inv.setNetworkCidr(vo.getNetworkCidr()); inv.setIpVersion(vo.getIpVersion()); inv.setAddressMode(vo.getAddressMode()); inv.setPrefixLen(vo.getPrefixLen()); return inv; }
private void isVipInVmNicSubnet(String vipUuid, String guestIpUuid) { VipVO vip = dbf.findByUuid(vipUuid, VipVO.class); UsedIpVO vipIp = dbf.findByUuid(vip.getUsedIpUuid(), UsedIpVO.class); IpRangeVO vipRange = dbf.findByUuid(vipIp.getIpRangeUuid(), IpRangeVO.class); UsedIpVO guestIp = dbf.findByUuid(guestIpUuid, UsedIpVO.class); IpRangeVO guestRange = dbf.findByUuid(guestIp.getIpRangeUuid(), IpRangeVO.class); if (vipIp.getIpVersion() != guestIp.getIpVersion()) { throw new ApiMessageInterceptionException(operr("vip ipVersion [%d] is different from guestIp ipVersion [%d].", vipIp.getIpVersion(), guestIp.getIpVersion())); } if (vipIp.getIpVersion() == IPv6Constants.IPv4) { SubnetUtils guestSub = new SubnetUtils(guestRange.getGateway(), guestRange.getNetmask()); if (guestSub.getInfo().isInRange(vipIp.getIp())) { throw new ApiMessageInterceptionException(operr("Vip[%s] is in the guest ip range [%s, %s]", vipIp.getIp(), guestRange.getStartIp(), guestRange.getEndIp())); } } else { if (IPv6NetworkUtils.isIpv6InCidrRange(vipIp.getIp(), guestRange.getNetworkCidr())){ throw new ApiMessageInterceptionException(operr("Vip[%s] is in the guest ip range [%s, %s]", vipIp.getIp(), guestRange.getStartIp(), guestRange.getEndIp())); } } }