@Override public void execute() { Pair<List<? extends StoragePool>, List<? extends StoragePool>> pools = _mgr.listStoragePoolsForMigrationOfVolume(getId()); ListResponse<StoragePoolResponse> response = new ListResponse<StoragePoolResponse>(); List<StoragePoolResponse> poolResponses = new ArrayList<StoragePoolResponse>(); List<? extends StoragePool> allPools = pools.first(); List<? extends StoragePool> suitablePoolList = pools.second(); for (StoragePool pool : allPools) { StoragePoolResponse poolResponse = _responseGenerator.createStoragePoolForMigrationResponse(pool); Boolean suitableForMigration = false; for (StoragePool suitablePool : suitablePoolList) { if (StringUtils.equals(suitablePool.getUuid(), pool.getUuid())) { suitableForMigration = true; break; } } poolResponse.setSuitableForMigration(suitableForMigration); poolResponse.setObjectName("storagepool"); poolResponses.add(poolResponse); } sortPoolsBySuitabilityAndName(poolResponses); response.setResponses(poolResponses); response.setResponseName(getCommandName()); this.setResponseObject(response); }
@Test public void sortPoolsBySuitability() { List<StoragePoolResponse> storagePoolsResponse = new ArrayList<>(); StoragePoolResponse storagePoolResponse1 = new StoragePoolResponse(); storagePoolResponse1.setSuitableForMigration(true); storagePoolResponse1.setId("1"); storagePoolResponse1.setName("1"); StoragePoolResponse storagePoolResponse2 = new StoragePoolResponse(); storagePoolResponse2.setSuitableForMigration(false); storagePoolResponse2.setId("2"); storagePoolResponse2.setName("2"); StoragePoolResponse storagePoolResponse3 = new StoragePoolResponse(); storagePoolResponse3.setSuitableForMigration(true); storagePoolResponse3.setId("3"); storagePoolResponse3.setName("3"); storagePoolsResponse.add(storagePoolResponse3); storagePoolsResponse.add(storagePoolResponse2); storagePoolsResponse.add(storagePoolResponse1); findStoragePoolsForMigrationCmd.sortPoolsBySuitabilityAndName(storagePoolsResponse); Assert.assertEquals("1", storagePoolsResponse.get(0).getId()); Assert.assertEquals("3", storagePoolsResponse.get(1).getId()); Assert.assertEquals("2", storagePoolsResponse.get(2).getId()); }