public static List<String> getL3Uuids(VmNicInventory nic) { List<String> ret = new ArrayList<>(); for (UsedIpInventory ip : nic.getUsedIps()) { ret.add(ip.getL3NetworkUuid()); } ret.add(nic.getL3NetworkUuid()); return ret.stream().distinct().collect(Collectors.toList()); }
public static boolean includeAllNicL3s(VmNicInventory nic, List<String> l3Uuids) { List<String> l3s = nic.getUsedIps().stream().map(ip -> ip.getL3NetworkUuid()).collect(Collectors.toList()); l3s.add(nic.getL3NetworkUuid()); return l3Uuids.containsAll(l3s); }
public static List<String> getCanDetachL3List(VmNicInventory nic, List<VmNicSpec> nicSpecs) { List<String> res = new ArrayList<>(); for (VmNicSpec nicspec : nicSpecs) { List<String> l3s = nicspec.l3Invs.stream().map(L3NetworkInventory::getUuid).collect(Collectors.toList()); if (l3s.contains(nic.getL3NetworkUuid())) { /* detach all usedIP except the nic first l3*/ res.addAll(nic.getUsedIps().stream().filter(ip -> !ip.getL3NetworkUuid().equals(nic.getL3NetworkUuid())) .map(UsedIpInventory::getUuid).collect(Collectors.toList())); break; } } return res; }
public static boolean isL3AttachedToVmNic(VmNicInventory nic, String l3Uuid) { for (UsedIpInventory ip : nic.getUsedIps()) { if (ip.getL3NetworkUuid().equals(l3Uuid)) { return true; } } if (nic.getL3NetworkUuid().equals(l3Uuid)) { return true; } return false; }
public static boolean isDefaultNic(VmNicInventory nic, VmInstanceInventory vm) { if (nic.getVmInstanceUuid() == null || vm.getDefaultL3NetworkUuid() == null || !nic.getVmInstanceUuid().equals(vm.getUuid())) { return false; } for (UsedIpInventory ip : nic.getUsedIps()) { if (ip.getL3NetworkUuid().equals(vm.getDefaultL3NetworkUuid())) { return true; } } return false; }
@Override public void rollback(final FlowRollback chain, Map data) { final List<VmNicInventory> destNics = (List<VmNicInventory>) data.get(VmInstanceConstant.Params.VmAllocateNicFlow_nics.toString()); final List<String> nicUuids = destNics.stream().map(VmNicInventory::getUuid).collect(Collectors.toList()); List<UsedIpInventory> ips = (List<UsedIpInventory>) data.get(VmInstanceConstant.Params.VmAllocateNicFlow_ips.toString()); List<ReturnIpMsg> msgs = new ArrayList<ReturnIpMsg>(); for (UsedIpInventory ip : ips) { ReturnIpMsg msg = new ReturnIpMsg(); msg.setL3NetworkUuid(ip.getL3NetworkUuid()); msg.setUsedIpUuid(ip.getUuid()); bus.makeTargetServiceIdByResourceUuid(msg, L3NetworkConstant.SERVICE_ID, ip.getL3NetworkUuid()); msgs.add(msg); } if (msgs.isEmpty()) { dbf.removeByPrimaryKeys(nicUuids, VmNicVO.class); chain.rollback(); return; } bus.send(msgs, 1, new CloudBusListCallBack(chain) { @Override public void run(List<MessageReply> replies) { dbf.removeByPrimaryKeys(nicUuids, VmNicVO.class); chain.rollback(); } }); } }
private String getEipL3Network(VmNicInventory nic, EipInventory eip){ String L3NetworkUuid = nic.getL3NetworkUuid(); if (eip.getGuestIp() != null) { for (UsedIpInventory ip : nic.getUsedIps()) { if (ip.getIp().equals(eip.getGuestIp())) { L3NetworkUuid = ip.getL3NetworkUuid(); break; } } } return L3NetworkUuid; }
private void removeStaticIp() { for (UsedIpInventory ip : nic.getUsedIps()) { new StaticIpOperator().deleteStaticIpByVmUuidAndL3Uuid(self.getUuid(), ip.getL3NetworkUuid()); } }
@Override public void run(final FlowTrigger trigger, final Map data) { final VmNicInventory nic = (VmNicInventory) data.get(VmInstanceConstant.Params.VmNicInventory.toString()); final UsedIpInventory ipInv = (UsedIpInventory) data.get(VmInstanceConstant.Params.UsedIPInventory.toString()); ReturnIpMsg msg = new ReturnIpMsg(); msg.setL3NetworkUuid(ipInv.getL3NetworkUuid()); msg.setUsedIpUuid(ipInv.getUuid()); bus.makeTargetServiceIdByResourceUuid(msg, L3NetworkConstant.SERVICE_ID, ipInv.getL3NetworkUuid()); bus.send(msg, new CloudBusCallBack(trigger) { @Override public void run(MessageReply reply) { for (VmNicExtensionPoint ext : pluginRgty.getExtensionList(VmNicExtensionPoint.class)) { ext.afterDelIpAddress(nic.getUuid(), ipInv.getUuid()); } new DualStackNicSecondaryNetworksOperator().deleteSecondaryNetworksByVmNic(nic, ipInv.getL3NetworkUuid()); trigger.next(); } }); } }
@Override public VmNicInventory call(VmNicInventory arg) { if (arg.getUsedIps() != null && !arg.getUsedIps().isEmpty()) { for (UsedIpInventory ip : arg.getUsedIps()) { if (ip.getL3NetworkUuid().equals(l3.getUuid())) { return arg; } } } else { VmNicVO nic = dbf.findByUuid(arg.getUuid(), VmNicVO.class); for (UsedIpVO ip : nic.getUsedIps()) { if (ip.getL3NetworkUuid().equals(l3.getUuid())) { return arg; } } } return null; } });
@Override public void rollback(FlowRollback trigger, Map data) { List<UsedIpInventory> allocatedIps = (List<UsedIpInventory>) data.get(VmAllocateNicForStartingVmFlow.class); if (allocatedIps == null || allocatedIps.isEmpty()) { trigger.rollback(); return; } new While<>(allocatedIps).all((ip, cmpl) -> { ReturnIpMsg rmsg = new ReturnIpMsg(); rmsg.setL3NetworkUuid(ip.getL3NetworkUuid()); rmsg.setUsedIpUuid(ip.getUuid()); bus.makeTargetServiceIdByResourceUuid(rmsg, L3NetworkConstant.SERVICE_ID, ip.getL3NetworkUuid()); bus.send(rmsg, new CloudBusCallBack(cmpl) { @Override public void run(MessageReply reply) { for (VmNicExtensionPoint ext : pluginRgty.getExtensionList(VmNicExtensionPoint.class)) { ext.afterDelIpAddress(ip.getVmNicUuid(), ip.getUuid()); } cmpl.done(); } }); }).run(new NoErrorCompletion(trigger) { @Override public void done() { trigger.rollback(); } }); } }
@Override public void run(MessageReply reply) { for (VmNicExtensionPoint ext : pluginRgty.getExtensionList(VmNicExtensionPoint.class)) { ext.afterDelIpAddress(nic.getUuid(), ipInv.getUuid()); } new DualStackNicSecondaryNetworksOperator().deleteSecondaryNetworksByVmNic(nic, ipInv.getL3NetworkUuid()); trigger.next(); } });
@Override public void run(final FlowTrigger trigger, final Map data) { final VmInstanceInventory vm = (VmInstanceInventory) data.get(VmInstanceConstant.Params.vmInventory.toString()); final VmNicInventory nic = (VmNicInventory) data.get(VmInstanceConstant.Params.VmNicInventory.toString()); final UsedIpInventory ip = (UsedIpInventory) data.get(VmInstanceConstant.Params.UsedIPInventory.toString()); if (!vm.getState().equals(VmInstanceState.Running.toString())) { trigger.next(); return; } DeleteL3NetworkFromVmNicMsg msg = new DeleteL3NetworkFromVmNicMsg(); msg.setVmInstanceUuid(vm.getUuid()); msg.setVmNicUuid(nic.getUuid()); msg.setNewL3Uuid(ip.getL3NetworkUuid()); bus.makeTargetServiceIdByResourceUuid(msg, VmInstanceConstant.SERVICE_ID, vm.getUuid()); bus.send(msg, new CloudBusCallBack(trigger) { @Override public void run(MessageReply reply) { if (reply.isSuccess()) { trigger.next(); } else { trigger.fail(reply.getError()); } } }); }
for (UsedIpInventory ip : nic.getUsedIps()) { ReturnIpMsg msg = new ReturnIpMsg(); msg.setL3NetworkUuid(ip.getL3NetworkUuid()); msg.setUsedIpUuid(ip.getUuid()); bus.makeTargetServiceIdByResourceUuid(msg, L3NetworkConstant.SERVICE_ID, ip.getL3NetworkUuid()); msgs.add(msg);
if (!ip.getL3NetworkUuid().equals(l3.getUuid())) { continue;
} else { for (UsedIpInventory ip : nic.getUsedIps()) { if (l3Uuids.contains(ip.getL3NetworkUuid())) { DetachIpAddressFromVmNicMsg nicMsg = new DetachIpAddressFromVmNicMsg(); nicMsg.setVmNicUuid(nic.getUuid());
ReturnIpMsg msg = new ReturnIpMsg(); msg.setUsedIpUuid(ip.getUuid()); msg.setL3NetworkUuid(ip.getL3NetworkUuid()); bus.makeTargetServiceIdByResourceUuid(msg, L3NetworkConstant.SERVICE_ID, ip.getL3NetworkUuid()); bus.send(msg, new CloudBusCallBack(comp) { @Override
L3NetworkVO l3Vo = dbf.findByUuid(ip.getL3NetworkUuid(), L3NetworkVO.class); if (l3Vo != null) { l3Invs.add(L3NetworkInventory.valueOf(l3Vo));
peerL3 = nicInventory.getL3NetworkUuid(); } else { peerL3 = guestIp.getL3NetworkUuid();
to.nicGateway = struct.getGuestIp().getGateway(); to.ipVersion = struct.getGuestIp().getIpVersion(); to.vmBridgeName = new BridgeNameFinder().findByL3Uuid(struct.getGuestIp().getL3NetworkUuid()); } else {