@Override public void updateMap(Long vmId, List<Long> affinityGroupIds) { TransactionLegacy txn = TransactionLegacy.currentTxn(); txn.start(); SearchCriteria<AffinityGroupVMMapVO> sc = createSearchCriteria(); sc.addAnd("instanceId", SearchCriteria.Op.EQ, vmId); expunge(sc); for (Long groupId : affinityGroupIds) { AffinityGroupVMMapVO vo = new AffinityGroupVMMapVO(groupId, vmId); persist(vo); } txn.commit(); } }
@Override public long countAffinityGroupsForVm(long instanceId) { SearchCriteria<Long> sc = CountSGForVm.create(); sc.setParameters("vmId", instanceId); return customSearch(sc, null).get(0); }
@Override public List<Long> listVmIdsByAffinityGroup(long affinityGroupId) { SearchCriteria<Long> sc = ListVmIdByAffinityGroup.create(); sc.setParameters("affinityGroupId", affinityGroupId); return customSearchIncludingRemoved(sc, null); }
@Override public List<AffinityGroupVMMapVO> listByAffinityGroup(long affinityGroupId) { SearchCriteria<AffinityGroupVMMapVO> sc = ListByAffinityGroup.create(); sc.setParameters("affinityGroupId", affinityGroupId); return listBy(sc); }
@Override public Pair<List<AffinityGroupVMMapVO>, Integer> listByInstanceId(long instanceId, Filter filter) { SearchCriteria<AffinityGroupVMMapVO> sc = ListByVmId.create(); sc.setParameters("instanceId", instanceId); return this.searchAndCount(sc, filter); }
@Override public AffinityGroupVMMapVO findByVmIdGroupId(long instanceId, long affinityGroupId) { SearchCriteria<AffinityGroupVMMapVO> sc = ListByVmIdGroupId.create(); sc.setParameters("affinityGroupId", affinityGroupId); sc.setParameters("instanceId", instanceId); return findOneIncludingRemovedBy(sc); }
@PostConstruct protected void init() { ListVmIdByAffinityGroup = createSearchBuilder(Long.class); ListVmIdByAffinityGroup.and("affinityGroupId", ListVmIdByAffinityGroup.entity().getAffinityGroupId(), SearchCriteria.Op.EQ); ListVmIdByAffinityGroup.selectFields(ListVmIdByAffinityGroup.entity().getInstanceId()); ListVmIdByAffinityGroup.done(); ListByAffinityGroup = createSearchBuilder(); ListByAffinityGroup.and("affinityGroupId", ListByAffinityGroup.entity().getAffinityGroupId(), SearchCriteria.Op.EQ); ListByAffinityGroup.done(); ListByVmId = createSearchBuilder(); ListByVmId.and("instanceId", ListByVmId.entity().getInstanceId(), SearchCriteria.Op.EQ); ListByVmId.done(); ListByVmIdGroupId = createSearchBuilder(); ListByVmIdGroupId.and("instanceId", ListByVmIdGroupId.entity().getInstanceId(), SearchCriteria.Op.EQ); ListByVmIdGroupId.and("affinityGroupId", ListByVmIdGroupId.entity().getAffinityGroupId(), SearchCriteria.Op.EQ); ListByVmIdType = createSearchBuilder(); ListByVmIdType.and("instanceId", ListByVmIdType.entity().getInstanceId(), SearchCriteria.Op.EQ); ListByVmIdType.join("groupSearch", groupSearch, ListByVmIdType.entity().getAffinityGroupId(), groupSearch.entity().getId(), JoinType.INNER); ListByVmIdType.done(); CountSGForVm = createSearchBuilder(Long.class); CountSGForVm.select(null, Func.COUNT, null); CountSGForVm.and("vmId", CountSGForVm.entity().getInstanceId(), SearchCriteria.Op.EQ); CountSGForVm.done(); ListAffinityGroupIdByVm = createSearchBuilder(Long.class);
@Override public List<AffinityGroupVMMapVO> listByInstanceId(long vmId) { SearchCriteria<AffinityGroupVMMapVO> sc = ListByVmId.create(); sc.setParameters("instanceId", vmId); return listBy(sc); }
@Override public List<AffinityGroupVMMapVO> findByVmIdType(long instanceId, String type) { SearchCriteria<AffinityGroupVMMapVO> sc = ListByVmIdType.create(); sc.setParameters("instanceId", instanceId); sc.setJoinParameters("groupSearch", "type", type); return listBy(sc); }
@Override public List<Long> listAffinityGroupIdsByVmId(long instanceId) { SearchCriteria<Long> sc = ListAffinityGroupIdByVm.create(); sc.setParameters("instanceId", instanceId); return customSearchIncludingRemoved(sc, null); }