public void updateUnregisteredDisksWithVMs(List<UnregisteredDisk> unregisteredDisks, Guid entityId, String vmName, XmlDocument xmlDocument) { for (Guid diskId : fetchVmDisks(xmlDocument)) { UnregisteredDisk unregisterDisk = unregisteredDisks.stream() .filter(unregrDisk -> diskId.equals(unregrDisk.getDiskId())) .findAny() .orElse(null); VmBase vm = new VmBase(); vm.setId(entityId); vm.setName(vmName); if (unregisterDisk != null) { unregisterDisk.getVms().add(vm); } } }
@Override public List<UnregisteredDisk> getByDiskIdAndStorageDomainId(Guid diskId, Guid storageDomainId) { List<UnregisteredDisk> unregisteredDisks = getCallsHandler().executeReadList("GetDiskByDiskIdAndStorageDomainId", unregisteredDiskRowMapper, createIdParameterMapper(new UnregisteredDiskId(diskId, storageDomainId))); for (UnregisteredDisk unregDisk : unregisteredDisks) { List<VmBase> vms = getCallsHandler().executeReadList("GetEntitiesByDiskId", vmsForUnregisteredDiskRowMapper, getCustomMapSqlParameterSource().addValue("disk_id", unregDisk.getDiskId())); unregDisk.getVms().addAll(vms); } return unregisteredDisks; }
@Test public void testSaveDiskWithAliasAndDescription() { ArrayList<VmBase> vms = new ArrayList<>(); UnregisteredDisk unregisteredDisk = initUnregisteredDisks(vms); dao.saveUnregisteredDisk(unregisteredDisk); List<UnregisteredDisk> fetchedUnregisteredDisk = dao.getByDiskIdAndStorageDomainId(unregisteredDisk.getDiskId(), FixturesTool.STORAGE_DOMAIN_NFS2_1); assertTrue(!fetchedUnregisteredDisk.isEmpty(), "Disk should exists in the UnregisteredDisks table"); assertTrue(fetchedUnregisteredDisk.get(0).getVms().isEmpty(), "Disk should not have multiple vms attached"); assertEquals("Disk Alias", fetchedUnregisteredDisk.get(0).getDiskAlias(), "Disk alias should be the same as initialized"); assertEquals("Disk Description", fetchedUnregisteredDisk.get(0).getDiskDescription(), "Disk description should be the same as initialized"); assertEquals(0, fetchedUnregisteredDisk.get(0).getStorageDomainId().compareTo(FixturesTool.STORAGE_DOMAIN_NFS2_1), "Storage Domain id should be the same as initialized"); }
@Test public void testSaveAttachedDiskWithoutAliasAndDescription() { VmBase vm1 = new VmBase(); vm1.setId(Guid.newGuid()); vm1.setName("First VM"); ArrayList<VmBase> vms = new ArrayList<>(); vms.add(vm1); // Set new disk image. DiskImage diskImage = new DiskImage(); diskImage.setId(Guid.newGuid()); diskImage.setStorageIds(new ArrayList<>(Collections.singletonList(FixturesTool.STORAGE_DOMAIN_NFS2_1))); UnregisteredDiskId id = new UnregisteredDiskId(diskImage.getId(), diskImage.getStorageIds().get(0)); UnregisteredDisk unregDisk = new UnregisteredDisk(id, diskImage, vms); dao.saveUnregisteredDisk(unregDisk); List<UnregisteredDisk> fetchedUnregisteredDisk = dao.getByDiskIdAndStorageDomainId(unregDisk.getDiskId(), FixturesTool.STORAGE_DOMAIN_NFS2_1); assertTrue(!fetchedUnregisteredDisk.isEmpty(), "Disk should exists in the UnregisteredDisks table"); assertEquals(1, fetchedUnregisteredDisk.get(0).getVms().size(), "Disk should have vm attached"); assertTrue(fetchedUnregisteredDisk.get(0).getDiskAlias().isEmpty(), "Disk alias should not be initialized"); assertTrue(StringUtils.isEmpty(fetchedUnregisteredDisk.get(0).getDiskDescription()), "Disk description should not be initialized"); assertEquals(0, fetchedUnregisteredDisk.get(0).getStorageDomainId().compareTo(FixturesTool.STORAGE_DOMAIN_NFS2_1), "Storage Domain id should be the same as initialized"); } }