@Override public void prepareDbInitialValue() { List<VipVO> vipVOS = Q.New(VipVO.class).isNull(VipVO_.prefixLen).list(); for (VipVO vip : vipVOS) { vip.setPrefixLen(NetworkUtils.getPrefixLengthFromNetwork(vip.getNetmask())); } if (!vipVOS.isEmpty()) { dbf.updateCollection(vipVOS); } } }
static VmCdRomVO getEmptyCdRom(String vmUuid) { VmCdRomVO cdRomVO = Q.New(VmCdRomVO.class) .eq(VmCdRomVO_.vmInstanceUuid, vmUuid) .isNull(VmCdRomVO_.isoUuid) .orderBy(VmCdRomVO_.deviceId, SimpleQuery.Od.ASC) .limit(1) .find(); return cdRomVO; }
private void loadOrphanJobs() { List<GarbageCollectorVO> vos = Q.New(GarbageCollectorVO.class) .eq(GarbageCollectorVO_.status, GCStatus.Idle) .isNull(GarbageCollectorVO_.managementNodeUuid) .list(); int count = 0; for (GarbageCollectorVO vo : vos) { if (!destinationMaker.isManagedByUs(vo.getUuid())) { continue; } loadGCJob(vo); count ++; } logger.debug(String.format("[GC] loaded %s orphan jobs", count)); }
static void checkAttachIsoToVm(String vmUuid, String isoUuid) { List<String> isoList = getIsoUuidByVmUuid(vmUuid); if (isoList.contains(isoUuid)) { throw new OperationFailureException(operr("VM[uuid:%s] has attached ISO[uuid:%s]", vmUuid, isoUuid)); } long emptyCdRomNum = Q.New(VmCdRomVO.class) .eq(VmCdRomVO_.vmInstanceUuid, vmUuid) .isNull(VmCdRomVO_.isoUuid) .count(); if (emptyCdRomNum == 0) { throw new OperationFailureException(operr("All vm[uuid:%s] CD-ROMs have mounted ISO", vmUuid)); } }
@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); } } }
.isNull(SecurityGroupRuleVO_.remoteSecurityGroupUuid).list(); if (rules.isEmpty()) { continue;
@Override protected List<LongJobVO> scripts() { // check long jobs using same uuid with current node List<LongJobVO> vos = Q.New(LongJobVO.class) .eq(LongJobVO_.managementNodeUuid, Platform.getManagementServerId()) .eq(LongJobVO_.state, LongJobState.Running) .list(); vos.forEach(vo -> { if (destinationMaker.isManagedByUs(vo.getUuid())) { vo.setJobResult("Failed because management node restarted."); vo.setState(LongJobState.Failed); merge(vo); } }); vos = Q.New(LongJobVO.class).isNull(LongJobVO_.managementNodeUuid).list(); vos.removeIf(it -> !destinationMaker.isManagedByUs(it.getUuid())); vos.forEach(it -> { it.setManagementNodeUuid(Platform.getManagementServerId()); merge(it); }); return vos; } }.execute();
private void takeOverLongJob() { logger.debug("Starting to take over long jobs"); final int group = 1000; long amount = dbf.count(LongJobVO.class); int times = (int) ((amount + group - 1)/group); int start = 0; for (int i = 0; i < times; i++) { List<String> uuids = Q.New(LongJobVO.class) .select(LongJobVO_.uuid) .isNull(LongJobVO_.managementNodeUuid) .limit(group).start(start).listValues(); for (String uuid : uuids) { if (destinationMaker.isManagedByUs(uuid)) { retryTakeOverLongJob(uuid); } } start += group; } }
.isNull(VmInstanceVO_.clusterUuid) .eq(VmInstanceVO_.uuid, msg.getVmInstanceUuid()) .isExists()) {