Skip to content

Commit 17e5947

Browse files
committed
server: add removed Tests for listHostsForMigrationOfVM and fix test failures
1 parent 76a4bc8 commit 17e5947

1 file changed

Lines changed: 76 additions & 3 deletions

File tree

server/src/test/java/com/cloud/server/ManagementServerImplTest.java

Lines changed: 76 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@
4343
import java.util.Arrays;
4444
import java.util.Collections;
4545
import java.util.List;
46+
import java.util.Map;
4647

4748
import org.apache.cloudstack.annotation.dao.AnnotationDao;
49+
import org.apache.cloudstack.affinity.dao.AffinityGroupVMMapDao;
4850
import org.apache.cloudstack.api.ApiConstants;
4951
import org.apache.cloudstack.api.BaseCmd;
5052
import org.apache.cloudstack.api.command.admin.config.ListCfgsByCmd;
@@ -59,6 +61,7 @@
5961
import org.apache.cloudstack.api.command.user.userdata.RegisterUserDataCmd;
6062
import org.apache.cloudstack.config.Configuration;
6163
import org.apache.cloudstack.context.CallContext;
64+
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
6265
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore;
6366
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver;
6467
import org.apache.cloudstack.framework.config.ConfigDepot;
@@ -69,24 +72,45 @@
6972
import org.apache.cloudstack.userdata.UserDataManager;
7073

7174
import com.cloud.cpu.CPU;
75+
import com.cloud.dc.DataCenterVO;
7276
import com.cloud.dc.Vlan.VlanType;
77+
import com.cloud.dc.dao.DataCenterDao;
78+
import com.cloud.deploy.DataCenterDeployment;
79+
import com.cloud.deploy.DeploymentPlanningManager;
7380
import com.cloud.domain.dao.DomainDao;
7481
import com.cloud.api.ApiDBUtils;
7582
import com.cloud.exception.InvalidParameterValueException;
83+
import com.cloud.exception.PermissionDeniedException;
84+
import com.cloud.gpu.GPU;
85+
import com.cloud.gpu.VgpuProfileVO;
86+
import com.cloud.gpu.dao.VgpuProfileDao;
7687
import com.cloud.host.DetailVO;
7788
import com.cloud.host.Host;
89+
import com.cloud.host.Host.Type;
7890
import com.cloud.host.HostVO;
91+
import com.cloud.host.dao.HostDao;
7992
import com.cloud.host.dao.HostDetailsDao;
93+
import com.cloud.hypervisor.Hypervisor.HypervisorType;
94+
import com.cloud.hypervisor.dao.HypervisorCapabilitiesDao;
95+
import com.cloud.hypervisor.kvm.dpdk.DpdkHelper;
8096
import com.cloud.network.IpAddress;
8197
import com.cloud.network.IpAddressManagerImpl;
8298
import com.cloud.network.dao.IPAddressVO;
99+
import com.cloud.service.ServiceOfferingVO;
100+
import com.cloud.service.dao.ServiceOfferingDao;
101+
import com.cloud.service.dao.ServiceOfferingDetailsDao;
102+
import com.cloud.storage.DiskOfferingVO;
83103
import com.cloud.storage.GuestOSCategoryVO;
84104
import com.cloud.storage.GuestOSVO;
85105
import com.cloud.storage.GuestOsCategory;
86106
import com.cloud.storage.VMTemplateVO;
107+
import com.cloud.storage.Volume;
108+
import com.cloud.storage.VolumeVO;
109+
import com.cloud.storage.dao.DiskOfferingDao;
87110
import com.cloud.storage.dao.GuestOSCategoryDao;
88111
import com.cloud.storage.dao.GuestOSDao;
89112
import com.cloud.storage.dao.VMTemplateDao;
113+
import com.cloud.storage.dao.VolumeDao;
90114
import com.cloud.user.Account;
91115
import com.cloud.user.AccountManager;
92116
import com.cloud.user.SSHKeyPair;
@@ -97,14 +121,18 @@
97121
import com.cloud.user.dao.SSHKeyPairDao;
98122
import com.cloud.user.dao.UserDataDao;
99123
import com.cloud.utils.Pair;
124+
import com.cloud.utils.Ternary;
100125
import com.cloud.utils.db.Filter;
101126
import com.cloud.utils.db.SearchBuilder;
102127
import com.cloud.utils.db.SearchCriteria;
103128
import com.cloud.utils.exception.CloudRuntimeException;
104129
import com.cloud.vm.UserVmVO;
105130
import com.cloud.vm.VMInstanceDetailVO;
131+
import com.cloud.vm.VMInstanceVO;
106132
import com.cloud.vm.VirtualMachine;
133+
import com.cloud.vm.VirtualMachine.State;
107134
import com.cloud.vm.dao.UserVmDao;
135+
import com.cloud.vm.dao.VMInstanceDao;
108136
import com.cloud.vm.dao.VMInstanceDetailsDao;
109137
import com.cloud.agent.manager.allocator.HostAllocator;
110138

@@ -156,6 +184,42 @@ public class ManagementServerImplTest {
156184
@Mock
157185
HostDetailsDao hostDetailsDao;
158186

187+
@Mock
188+
VMInstanceDao vmInstanceDao;
189+
190+
@Mock
191+
HostDao hostDao;
192+
193+
@Mock
194+
ServiceOfferingDetailsDao serviceOfferingDetailsDao;
195+
196+
@Mock
197+
VolumeDao volumeDao;
198+
199+
@Mock
200+
ServiceOfferingDao offeringDao;
201+
202+
@Mock
203+
DiskOfferingDao diskOfferingDao;
204+
205+
@Mock
206+
HypervisorCapabilitiesDao hypervisorCapabilitiesDao;
207+
208+
@Mock
209+
DataStoreManager dataStoreManager;
210+
211+
@Mock
212+
DpdkHelper dpdkHelper;
213+
214+
@Mock
215+
AffinityGroupVMMapDao affinityGroupVMMapDao;
216+
217+
@Mock
218+
DeploymentPlanningManager dpMgr;
219+
220+
@Mock
221+
DataCenterDao dcDao;
222+
159223
@Mock
160224
ConfigurationDao configDao;
161225

@@ -181,6 +245,12 @@ public class ManagementServerImplTest {
181245
@Mock
182246
HostAllocator hostAllocator;
183247

248+
@Mock
249+
VgpuProfileDao vgpuProfileDao;
250+
251+
@Mock
252+
VgpuProfileVO vgpuProfileVO;
253+
184254
private AutoCloseable closeable;
185255
private MockedStatic<ApiDBUtils> apiDBUtilsMock;
186256

@@ -203,6 +273,9 @@ public void setup() throws IllegalAccessException, NoSuchFieldException {
203273
// Return empty list to avoid architecture filtering in most tests
204274
apiDBUtilsMock.when(() -> ApiDBUtils.listZoneClustersArchs(Mockito.anyLong()))
205275
.thenReturn(new ArrayList<>());
276+
277+
when(vgpuProfileDao.findById(any())).thenReturn(vgpuProfileVO);
278+
when(vgpuProfileVO.getName()).thenReturn("test-vgpu-profile");
206279
}
207280

208281
@After
@@ -1067,7 +1140,7 @@ public void testListHostsForMigrationOfVMNonRootAdmin() {
10671140
mockRunningVM(1L, HypervisorType.KVM);
10681141
Account caller = Mockito.mock(Account.class);
10691142
Mockito.doReturn(caller).when(spy).getCaller();
1070-
Mockito.when(_accountMgr.isRootAdmin(caller.getId())).thenReturn(false);
1143+
Mockito.when(accountManager.isRootAdmin(caller.getId())).thenReturn(false);
10711144

10721145
spy.listHostsForMigrationOfVM(1L, 0L, 20L, null);
10731146
}
@@ -1127,7 +1200,7 @@ public void testListHostsForMigrationOfVMGpuEnabled() {
11271200
Mockito.when(serviceOfferingDetailsDao.findDetail(vm.getServiceOfferingId(), GPU.Keys.pciDevice.toString()))
11281201
.thenReturn(Mockito.mock(com.cloud.service.ServiceOfferingDetailsVO.class));
11291202

1130-
Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, java.util.Map<Host, Boolean>> result =
1203+
Ternary<Pair<List<? extends Host>, Integer>, List<? extends Host>, Map<Host, Boolean>> result =
11311204
spy.listHostsForMigrationOfVM(1L, 0L, 20L, null);
11321205

11331206
Assert.assertNotNull(result);
@@ -2327,7 +2400,7 @@ private VMInstanceVO mockVM(Long id, HypervisorType hypervisorType, State state)
23272400
private Account mockRootAdminAccount() {
23282401
Account account = Mockito.mock(Account.class);
23292402
Mockito.when(account.getId()).thenReturn(1L);
2330-
Mockito.when(_accountMgr.isRootAdmin(1L)).thenReturn(true);
2403+
Mockito.when(accountManager.isRootAdmin(1L)).thenReturn(true);
23312404
return account;
23322405
}
23332406

0 commit comments

Comments
 (0)