schema, refactor: rename cloud.user_vm_details to cloud.vm_instance_details (#10736)

Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
Co-authored-by: Suresh Kumar Anaparti <sureshkumar.anaparti@gmail.com>
Co-authored-by: dahn <daan@onecht.net>
This commit is contained in:
Abhishek Kumar 2025-07-24 15:38:29 +05:30 committed by GitHub
parent 7da5f9002b
commit 83bccead3d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
66 changed files with 529 additions and 525 deletions

View File

@ -40,7 +40,7 @@ public class VirtualMachineProfileImpl implements VirtualMachineProfile {
VirtualMachine _vm; VirtualMachine _vm;
ServiceOffering _offering; ServiceOffering _offering;
VirtualMachineTemplate _template; VirtualMachineTemplate _template;
UserVmDetailVO _userVmDetails; VMInstanceDetailVO _userVmDetails;
Map<Param, Object> _params; Map<Param, Object> _params;
List<NicProfile> _nics = new ArrayList<NicProfile>(); List<NicProfile> _nics = new ArrayList<NicProfile>();
List<DiskTO> _disks = new ArrayList<DiskTO>(); List<DiskTO> _disks = new ArrayList<DiskTO>();

View File

@ -286,7 +286,7 @@ import com.cloud.vm.VirtualMachine.PowerState;
import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.VMSnapshotManager; import com.cloud.vm.snapshot.VMSnapshotManager;
import com.cloud.vm.snapshot.VMSnapshotVO; import com.cloud.vm.snapshot.VMSnapshotVO;
@ -381,7 +381,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
@Inject @Inject
private ClusterDetailsDao _clusterDetailsDao; private ClusterDetailsDao _clusterDetailsDao;
@Inject @Inject
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private VolumeOrchestrationService volumeMgr; private VolumeOrchestrationService volumeMgr;
@Inject @Inject
@ -1370,8 +1370,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
_resourceMgr.updateGPUDetails(destHostId, gpuDevice.getGroupDetails()); _resourceMgr.updateGPUDetails(destHostId, gpuDevice.getGroupDetails());
} }
if (userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_VM) != null) { if (vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_VM) != null) {
userVmDetailsDao.removeDetail(vm.getId(), VmDetailConstants.DEPLOY_VM); vmInstanceDetailsDao.removeDetail(vm.getId(), VmDetailConstants.DEPLOY_VM);
} }
startedVm = vm; startedVm = vm;
@ -1553,16 +1553,16 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
final ClusterDetailsVO clusterDetailRam = _clusterDetailsDao.findDetail(clusterId, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO); final ClusterDetailsVO clusterDetailRam = _clusterDetailsDao.findDetail(clusterId, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
final float parsedClusterCpuDetailCpu = Float.parseFloat(clusterDetailCpu.getValue()); final float parsedClusterCpuDetailCpu = Float.parseFloat(clusterDetailCpu.getValue());
final float parsedClusterDetailRam = Float.parseFloat(clusterDetailRam.getValue()); final float parsedClusterDetailRam = Float.parseFloat(clusterDetailRam.getValue());
UserVmDetailVO vmDetailCpu = userVmDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO); VMInstanceDetailVO vmDetailCpu = vmInstanceDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO);
UserVmDetailVO vmDetailRam = userVmDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO); VMInstanceDetailVO vmDetailRam = vmInstanceDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
if ((vmDetailCpu == null && parsedClusterCpuDetailCpu > 1f) || if ((vmDetailCpu == null && parsedClusterCpuDetailCpu > 1f) ||
(vmDetailCpu != null && Float.parseFloat(vmDetailCpu.getValue()) != parsedClusterCpuDetailCpu)) { (vmDetailCpu != null && Float.parseFloat(vmDetailCpu.getValue()) != parsedClusterCpuDetailCpu)) {
userVmDetailsDao.addDetail(vmProfile.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO, clusterDetailCpu.getValue(), true); vmInstanceDetailsDao.addDetail(vmProfile.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO, clusterDetailCpu.getValue(), true);
} }
if ((vmDetailRam == null && parsedClusterDetailRam > 1f) || if ((vmDetailRam == null && parsedClusterDetailRam > 1f) ||
(vmDetailRam != null && Float.parseFloat(vmDetailRam.getValue()) != parsedClusterDetailRam)) { (vmDetailRam != null && Float.parseFloat(vmDetailRam.getValue()) != parsedClusterDetailRam)) {
userVmDetailsDao.addDetail(vmProfile.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO, clusterDetailRam.getValue(), true); vmInstanceDetailsDao.addDetail(vmProfile.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO, clusterDetailRam.getValue(), true);
} }
vmProfile.setCpuOvercommitRatio(Float.parseFloat(clusterDetailCpu.getValue())); vmProfile.setCpuOvercommitRatio(Float.parseFloat(clusterDetailCpu.getValue()));
@ -3324,7 +3324,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
if (defaultNic != null && VirtualMachine.Type.User.equals(vm.getType())) { if (defaultNic != null && VirtualMachine.Type.User.equals(vm.getType())) {
UserVmVO userVm = _userVmDao.findById(vm.getId()); UserVmVO userVm = _userVmDao.findById(vm.getId());
Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vm.getId()); Map<String, String> details = vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
userVm.setDetails(details); userVm.setDetails(details);
Network network = _networkModel.getNetwork(defaultNic.getNetworkId()); Network network = _networkModel.getNetwork(defaultNic.getNetworkId());
@ -4842,29 +4842,29 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
} }
private void removeCustomOfferingDetails(long vmId) { private void removeCustomOfferingDetails(long vmId) {
Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vmId); Map<String, String> details = vmInstanceDetailsDao.listDetailsKeyPairs(vmId);
details.remove(UsageEventVO.DynamicParameters.cpuNumber.name()); details.remove(UsageEventVO.DynamicParameters.cpuNumber.name());
details.remove(UsageEventVO.DynamicParameters.cpuSpeed.name()); details.remove(UsageEventVO.DynamicParameters.cpuSpeed.name());
details.remove(UsageEventVO.DynamicParameters.memory.name()); details.remove(UsageEventVO.DynamicParameters.memory.name());
List<UserVmDetailVO> detailList = new ArrayList<>(); List<VMInstanceDetailVO> detailList = new ArrayList<>();
for(Map.Entry<String, String> entry: details.entrySet()) { for(Map.Entry<String, String> entry: details.entrySet()) {
UserVmDetailVO detailVO = new UserVmDetailVO(vmId, entry.getKey(), entry.getValue(), true); VMInstanceDetailVO detailVO = new VMInstanceDetailVO(vmId, entry.getKey(), entry.getValue(), true);
detailList.add(detailVO); detailList.add(detailVO);
} }
userVmDetailsDao.saveDetails(detailList); vmInstanceDetailsDao.saveDetails(detailList);
} }
private void saveCustomOfferingDetails(long vmId, ServiceOffering serviceOffering) { private void saveCustomOfferingDetails(long vmId, ServiceOffering serviceOffering) {
Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vmId); Map<String, String> details = vmInstanceDetailsDao.listDetailsKeyPairs(vmId);
details.put(UsageEventVO.DynamicParameters.cpuNumber.name(), serviceOffering.getCpu().toString()); details.put(UsageEventVO.DynamicParameters.cpuNumber.name(), serviceOffering.getCpu().toString());
details.put(UsageEventVO.DynamicParameters.cpuSpeed.name(), serviceOffering.getSpeed().toString()); details.put(UsageEventVO.DynamicParameters.cpuSpeed.name(), serviceOffering.getSpeed().toString());
details.put(UsageEventVO.DynamicParameters.memory.name(), serviceOffering.getRamSize().toString()); details.put(UsageEventVO.DynamicParameters.memory.name(), serviceOffering.getRamSize().toString());
List<UserVmDetailVO> detailList = new ArrayList<>(); List<VMInstanceDetailVO> detailList = new ArrayList<>();
for (Map.Entry<String, String> entry: details.entrySet()) { for (Map.Entry<String, String> entry: details.entrySet()) {
UserVmDetailVO detailVO = new UserVmDetailVO(vmId, entry.getKey(), entry.getValue(), true); VMInstanceDetailVO detailVO = new VMInstanceDetailVO(vmId, entry.getKey(), entry.getValue(), true);
detailList.add(detailVO); detailList.add(detailVO);
} }
userVmDetailsDao.saveDetails(detailList); vmInstanceDetailsDao.saveDetails(detailList);
} }
@Override @Override
@ -6182,7 +6182,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
@Override @Override
public Map<Long, Boolean> getDiskOfferingSuitabilityForVm(long vmId, List<Long> diskOfferingIds) { public Map<Long, Boolean> getDiskOfferingSuitabilityForVm(long vmId, List<Long> diskOfferingIds) {
VMInstanceVO vm = _vmDao.findById(vmId); VMInstanceVO vm = _vmDao.findById(vmId);
if (userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_VM) != null) { if (vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_VM) != null) {
return new HashMap<>(); return new HashMap<>();
} }
VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm); VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm);

View File

@ -61,7 +61,7 @@ import com.cloud.vm.NicProfile;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.VirtualMachineManager;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import static org.apache.cloudstack.api.ApiConstants.MAX_IOPS; import static org.apache.cloudstack.api.ApiConstants.MAX_IOPS;
@ -86,7 +86,7 @@ public class CloudOrchestrator implements OrchestrationService {
protected UserVmDao _userVmDao = null; protected UserVmDao _userVmDao = null;
@Inject @Inject
protected UserVmDetailsDao _userVmDetailsDao = null; protected VMInstanceDetailsDao _vmInstanceDetailsDao = null;
@Inject @Inject
protected ServiceOfferingDao _serviceOfferingDao; protected ServiceOfferingDao _serviceOfferingDao;
@ -199,7 +199,7 @@ public class CloudOrchestrator implements OrchestrationService {
rootDiskOfferingInfo.setSize(rootDiskSize); rootDiskOfferingInfo.setSize(rootDiskSize);
if (rootDiskOffering.isCustomizedIops() != null && rootDiskOffering.isCustomizedIops()) { if (rootDiskOffering.isCustomizedIops() != null && rootDiskOffering.isCustomizedIops()) {
Map<String, String> userVmDetails = _userVmDetailsDao.listDetailsKeyPairs(vm.getId()); Map<String, String> userVmDetails = _vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
if (userVmDetails != null) { if (userVmDetails != null) {
String minIops = userVmDetails.get(MIN_IOPS); String minIops = userVmDetails.get(MIN_IOPS);
@ -231,7 +231,7 @@ public class CloudOrchestrator implements OrchestrationService {
dataDiskOfferingInfo.setSize(size); dataDiskOfferingInfo.setSize(size);
if (diskOffering.isCustomizedIops() != null && diskOffering.isCustomizedIops()) { if (diskOffering.isCustomizedIops() != null && diskOffering.isCustomizedIops()) {
Map<String, String> userVmDetails = _userVmDetailsDao.listDetailsKeyPairs(vm.getId()); Map<String, String> userVmDetails = _vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
if (userVmDetails != null) { if (userVmDetails != null) {
String minIops = userVmDetails.get("minIopsDo"); String minIops = userVmDetails.get("minIopsDo");
@ -307,7 +307,7 @@ public class CloudOrchestrator implements OrchestrationService {
rootDiskOfferingInfo.setSize(size); rootDiskOfferingInfo.setSize(size);
if (diskOffering.isCustomizedIops() != null && diskOffering.isCustomizedIops()) { if (diskOffering.isCustomizedIops() != null && diskOffering.isCustomizedIops()) {
Map<String, String> userVmDetails = _userVmDetailsDao.listDetailsKeyPairs(vm.getId()); Map<String, String> userVmDetails = _vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
if (userVmDetails != null) { if (userVmDetails != null) {
String minIops = userVmDetails.get("minIopsDo"); String minIops = userVmDetails.get("minIopsDo");

View File

@ -168,7 +168,7 @@ import com.cloud.utils.fsm.StateMachine2;
import com.cloud.vm.DiskProfile; import com.cloud.vm.DiskProfile;
import com.cloud.vm.SecondaryStorageVmVO; import com.cloud.vm.SecondaryStorageVmVO;
import com.cloud.vm.UserVmCloneSettingVO; import com.cloud.vm.UserVmCloneSettingVO;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
@ -183,7 +183,7 @@ import com.cloud.vm.VmWorkTakeVolumeSnapshot;
import com.cloud.vm.dao.SecondaryStorageVmDao; import com.cloud.vm.dao.SecondaryStorageVmDao;
import com.cloud.vm.dao.UserVmCloneSettingDao; import com.cloud.vm.dao.UserVmCloneSettingDao;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrationService, Configurable { public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrationService, Configurable {
@ -255,7 +255,7 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
@Inject @Inject
TemplateService templateService; TemplateService templateService;
@Inject @Inject
UserVmDetailsDao userVmDetailsDao; VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private SecondaryStorageVmDao secondaryStorageVmDao; private SecondaryStorageVmDao secondaryStorageVmDao;
@Inject @Inject
@ -1057,7 +1057,7 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
logger.info("Could not find a running SSVM in datacenter [{}] for deploying VM as is. Not deploying VM [{}] as is.", logger.info("Could not find a running SSVM in datacenter [{}] for deploying VM as is. Not deploying VM [{}] as is.",
vm.getDataCenterId(), vm); vm.getDataCenterId(), vm);
} else { } else {
UserVmDetailVO configurationDetail = userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_AS_IS_CONFIGURATION); VMInstanceDetailVO configurationDetail = vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_AS_IS_CONFIGURATION);
if (configurationDetail != null) { if (configurationDetail != null) {
configurationId = configurationDetail.getValue(); configurationId = configurationDetail.getValue();
} }
@ -1126,13 +1126,13 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
String diskControllerSubType = disksAsIs.get(0).getDiskControllerSubType(); String diskControllerSubType = disksAsIs.get(0).getDiskControllerSubType();
if (StringUtils.isNotBlank(diskControllerSubType)) { if (StringUtils.isNotBlank(diskControllerSubType)) {
long vmId = vm.getId(); long vmId = vm.getId();
UserVmDetailVO detail = userVmDetailsDao.findDetail(vmId, VmDetailConstants.ROOT_DISK_CONTROLLER); VMInstanceDetailVO detail = vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.ROOT_DISK_CONTROLLER);
if (detail != null) { if (detail != null) {
detail.setValue(diskControllerSubType); detail.setValue(diskControllerSubType);
userVmDetailsDao.update(detail.getId(), detail); vmInstanceDetailsDao.update(detail.getId(), detail);
} else { } else {
detail = new UserVmDetailVO(vmId, VmDetailConstants.ROOT_DISK_CONTROLLER, diskControllerSubType, false); detail = new VMInstanceDetailVO(vmId, VmDetailConstants.ROOT_DISK_CONTROLLER, diskControllerSubType, false);
userVmDetailsDao.persist(detail); vmInstanceDetailsDao.persist(detail);
} }
} }
} }
@ -1621,7 +1621,7 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
private void setIoDriverPolicy(Map<String, String> details, StoragePoolVO storagePool, VolumeVO volume) { private void setIoDriverPolicy(Map<String, String> details, StoragePoolVO storagePool, VolumeVO volume) {
if (volume.getInstanceId() != null) { if (volume.getInstanceId() != null) {
UserVmDetailVO ioDriverPolicy = userVmDetailsDao.findDetail(volume.getInstanceId(), VMInstanceDetailVO ioDriverPolicy = vmInstanceDetailsDao.findDetail(volume.getInstanceId(),
VmDetailConstants.IO_POLICY); VmDetailConstants.IO_POLICY);
if (ioDriverPolicy != null) { if (ioDriverPolicy != null) {
if (IoDriverPolicy.STORAGE_SPECIFIC.toString().equals(ioDriverPolicy.getValue())) { if (IoDriverPolicy.STORAGE_SPECIFIC.toString().equals(ioDriverPolicy.getValue())) {

View File

@ -131,7 +131,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.StateMachine2; import com.cloud.utils.fsm.StateMachine2;
import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
@ -224,7 +224,7 @@ public class VirtualMachineManagerImplTest {
@Mock @Mock
private ClusterDetailsDao _clusterDetailsDao; private ClusterDetailsDao _clusterDetailsDao;
@Mock @Mock
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Mock @Mock
private ItWorkDao _workDao; private ItWorkDao _workDao;
@Mock @Mock
@ -1098,7 +1098,7 @@ public class VirtualMachineManagerImplTest {
when(cluster.getId()).thenReturn(1L); when(cluster.getId()).thenReturn(1L);
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.CPU_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_cpu); when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.CPU_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_cpu);
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_ram); when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_ram);
when(userVmDetailsDao.findDetail(anyLong(), Mockito.anyString())).thenReturn(null); when(vmInstanceDetailsDao.findDetail(anyLong(), Mockito.anyString())).thenReturn(null);
when(cluster_detail_cpu.getValue()).thenReturn("1.0"); when(cluster_detail_cpu.getValue()).thenReturn("1.0");
when(cluster_detail_ram.getValue()).thenReturn("1.0"); when(cluster_detail_ram.getValue()).thenReturn("1.0");
doReturn(false).when(virtualMachineManagerImpl).areAllVolumesAllocated(Mockito.anyLong()); doReturn(false).when(virtualMachineManagerImpl).areAllVolumesAllocated(Mockito.anyLong());
@ -1194,7 +1194,7 @@ public class VirtualMachineManagerImplTest {
when(cluster.getId()).thenReturn(1L); when(cluster.getId()).thenReturn(1L);
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.CPU_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_cpu); when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.CPU_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_cpu);
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_ram); when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_ram);
when(userVmDetailsDao.findDetail(anyLong(), Mockito.anyString())).thenReturn(null); when(vmInstanceDetailsDao.findDetail(anyLong(), Mockito.anyString())).thenReturn(null);
when(cluster_detail_cpu.getValue()).thenReturn("1.0"); when(cluster_detail_cpu.getValue()).thenReturn("1.0");
when(cluster_detail_ram.getValue()).thenReturn("1.0"); when(cluster_detail_ram.getValue()).thenReturn("1.0");
doReturn(true).when(virtualMachineManagerImpl).areAllVolumesAllocated(Mockito.anyLong()); doReturn(true).when(virtualMachineManagerImpl).areAllVolumesAllocated(Mockito.anyLong());

View File

@ -39,7 +39,7 @@ import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
@Component @Component
@DB() @DB()
@ -48,7 +48,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
@Inject @Inject
protected ServiceOfferingDetailsDao detailsDao; protected ServiceOfferingDetailsDao detailsDao;
@Inject @Inject
protected UserVmDetailsDao userVmDetailsDao; protected VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private DiskOfferingDao diskOfferingDao; private DiskOfferingDao diskOfferingDao;
@ -176,7 +176,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
if (vmId == null) { if (vmId == null) {
throw new CloudRuntimeException("missing argument vmId"); throw new CloudRuntimeException("missing argument vmId");
} }
Map<String, String> dynamicOffering = userVmDetailsDao.listDetailsKeyPairs(vmId); Map<String, String> dynamicOffering = vmInstanceDetailsDao.listDetailsKeyPairs(vmId);
return getComputeOffering(offering, dynamicOffering); return getComputeOffering(offering, dynamicOffering);
} }
return offering; return offering;
@ -190,7 +190,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
if (vmId == null) { if (vmId == null) {
throw new CloudRuntimeException("missing argument vmId"); throw new CloudRuntimeException("missing argument vmId");
} }
Map<String, String> dynamicOffering = userVmDetailsDao.listDetailsKeyPairs(vmId); Map<String, String> dynamicOffering = vmInstanceDetailsDao.listDetailsKeyPairs(vmId);
return getComputeOffering(offering, dynamicOffering); return getComputeOffering(offering, dynamicOffering);
} }
return offering; return offering;

View File

@ -26,8 +26,8 @@ import javax.persistence.Table;
import org.apache.cloudstack.api.ResourceDetail; import org.apache.cloudstack.api.ResourceDetail;
@Entity @Entity
@Table(name = "user_vm_details") @Table(name = "vm_instance_details")
public class UserVmDetailVO implements ResourceDetail { public class VMInstanceDetailVO implements ResourceDetail {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id") @Column(name = "id")
@ -45,10 +45,10 @@ public class UserVmDetailVO implements ResourceDetail {
@Column(name = "display") @Column(name = "display")
private boolean display = true; private boolean display = true;
public UserVmDetailVO() { public VMInstanceDetailVO() {
} }
public UserVmDetailVO(long vmId, String name, String value, boolean display) { public VMInstanceDetailVO(long vmId, String name, String value, boolean display) {
this.resourceId = vmId; this.resourceId = vmId;
this.name = name; this.name = name;
this.value = value; this.value = value;

View File

@ -57,7 +57,7 @@ import com.cloud.utils.db.SearchCriteria.Func;
import com.cloud.utils.db.TransactionLegacy; import com.cloud.utils.db.TransactionLegacy;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.NicVO; import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachine.State;
@ -130,7 +130,7 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
private static final int VM_DETAILS_BATCH_SIZE = 100; private static final int VM_DETAILS_BATCH_SIZE = 100;
@Inject @Inject
protected UserVmDetailsDao _detailsDao; protected VMInstanceDetailsDao _detailsDao;
@Inject @Inject
protected NicDao _nicDao; protected NicDao _nicDao;
@ -445,10 +445,10 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
final Map<String, Boolean> visibilityMap = _detailsDao.listDetailsVisibility(vm.getId()); final Map<String, Boolean> visibilityMap = _detailsDao.listDetailsVisibility(vm.getId());
List<UserVmDetailVO> details = new ArrayList<UserVmDetailVO>(); List<VMInstanceDetailVO> details = new ArrayList<VMInstanceDetailVO>();
for (Map.Entry<String, String> entry : detailsStr.entrySet()) { for (Map.Entry<String, String> entry : detailsStr.entrySet()) {
boolean display = !hiddenDetails.contains(entry.getKey()) && visibilityMap.getOrDefault(entry.getKey(), true); boolean display = !hiddenDetails.contains(entry.getKey()) && visibilityMap.getOrDefault(entry.getKey(), true);
details.add(new UserVmDetailVO(vm.getId(), entry.getKey(), entry.getValue(), display)); details.add(new VMInstanceDetailVO(vm.getId(), entry.getKey(), entry.getValue(), display));
} }
_detailsDao.saveDetails(details); _detailsDao.saveDetails(details);

View File

@ -19,7 +19,7 @@ package com.cloud.vm.dao;
import org.apache.cloudstack.resourcedetail.ResourceDetailsDao; import org.apache.cloudstack.resourcedetail.ResourceDetailsDao;
import com.cloud.utils.db.GenericDao; import com.cloud.utils.db.GenericDao;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
public interface UserVmDetailsDao extends GenericDao<UserVmDetailVO, Long>, ResourceDetailsDao<UserVmDetailVO> { public interface VMInstanceDetailsDao extends GenericDao<VMInstanceDetailVO, Long>, ResourceDetailsDao<VMInstanceDetailVO> {
} }

View File

@ -21,14 +21,14 @@ import org.springframework.stereotype.Component;
import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase; import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
@Component @Component
public class UserVmDetailsDaoImpl extends ResourceDetailsDaoBase<UserVmDetailVO> implements UserVmDetailsDao { public class VMInstanceDetailsDaoImpl extends ResourceDetailsDaoBase<VMInstanceDetailVO> implements VMInstanceDetailsDao {
@Override @Override
public void addDetail(long resourceId, String key, String value, boolean display) { public void addDetail(long resourceId, String key, String value, boolean display) {
super.addDetail(new UserVmDetailVO(resourceId, key, value, display)); super.addDetail(new VMInstanceDetailVO(resourceId, key, value, display));
} }
} }

View File

@ -63,7 +63,7 @@
<bean id="storagePoolHostDaoImpl" class="com.cloud.storage.dao.StoragePoolHostDaoImpl" /> <bean id="storagePoolHostDaoImpl" class="com.cloud.storage.dao.StoragePoolHostDaoImpl" />
<bean id="storagePoolTagsDaoImpl" class="com.cloud.storage.dao.StoragePoolTagsDaoImpl" /> <bean id="storagePoolTagsDaoImpl" class="com.cloud.storage.dao.StoragePoolTagsDaoImpl" />
<bean id="storagePoolAndAccessGroupMapDaoImpl" class="com.cloud.storage.dao.StoragePoolAndAccessGroupMapDaoImpl" /> <bean id="storagePoolAndAccessGroupMapDaoImpl" class="com.cloud.storage.dao.StoragePoolAndAccessGroupMapDaoImpl" />
<bean id="userVmDetailsDaoImpl" class="com.cloud.vm.dao.UserVmDetailsDaoImpl" /> <bean id="vmInstanceDetailsDaoImpl" class="com.cloud.vm.dao.VMInstanceDetailsDaoImpl" />
<bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" /> <bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" />
<bean id="vMInstanceDaoImpl" class="com.cloud.vm.dao.VMInstanceDaoImpl" /> <bean id="vMInstanceDaoImpl" class="com.cloud.vm.dao.VMInstanceDaoImpl" />
<bean id="vMSnapshotDaoImpl" class="com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl" /> <bean id="vMSnapshotDaoImpl" class="com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl" />

View File

@ -234,5 +234,10 @@ CREATE TABLE IF NOT EXISTS `cloud`.`gui_themes_details` (
CONSTRAINT `fk_gui_themes_details__gui_theme_id` FOREIGN KEY (`gui_theme_id`) REFERENCES `gui_themes`(`id`) CONSTRAINT `fk_gui_themes_details__gui_theme_id` FOREIGN KEY (`gui_theme_id`) REFERENCES `gui_themes`(`id`)
); );
-- Rename user_vm_details to vm_instance_details
ALTER TABLE `cloud`.`user_vm_details` RENAME TO `cloud`.`vm_instance_details`;
ALTER TABLE `cloud`.`vm_instance_details` DROP FOREIGN KEY `fk_user_vm_details__vm_id`;
ALTER TABLE `cloud`.`vm_instance_details` ADD CONSTRAINT `fk_vm_instance_details__vm_id` FOREIGN KEY (vm_id) REFERENCES vm_instance(id) ON DELETE CASCADE;
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.backup_schedule', 'uuid', 'VARCHAR(40) NOT NULL'); CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.backup_schedule', 'uuid', 'VARCHAR(40) NOT NULL');
UPDATE `cloud`.`backup_schedule` SET uuid = UUID(); UPDATE `cloud`.`backup_schedule` SET uuid = UUID();

View File

@ -203,7 +203,7 @@ FROM
LEFT JOIN `vpc` ON (((`networks`.`vpc_id` = `vpc`.`id`) LEFT JOIN `vpc` ON (((`networks`.`vpc_id` = `vpc`.`id`)
AND ISNULL(`vpc`.`removed`)))) AND ISNULL(`vpc`.`removed`))))
LEFT JOIN `user_ip_address` FORCE INDEX(`fk_user_ip_address__vm_id`) ON ((`user_ip_address`.`vm_id` = `vm_instance`.`id`))) LEFT JOIN `user_ip_address` FORCE INDEX(`fk_user_ip_address__vm_id`) ON ((`user_ip_address`.`vm_id` = `vm_instance`.`id`)))
LEFT JOIN `user_vm_details` `ssh_details` ON (((`ssh_details`.`vm_id` = `vm_instance`.`id`) LEFT JOIN `vm_instance_details` `ssh_details` ON (((`ssh_details`.`vm_id` = `vm_instance`.`id`)
AND (`ssh_details`.`name` = 'SSH.KeyPairNames')))) AND (`ssh_details`.`name` = 'SSH.KeyPairNames'))))
LEFT JOIN `resource_tags` ON (((`resource_tags`.`resource_id` = `vm_instance`.`id`) LEFT JOIN `resource_tags` ON (((`resource_tags`.`resource_id` = `vm_instance`.`id`)
AND (`resource_tags`.`resource_type` = 'UserVm')))) AND (`resource_tags`.`resource_type` = 'UserVm'))))
@ -214,15 +214,15 @@ FROM
LEFT JOIN `affinity_group` ON ((`affinity_group_vm_map`.`affinity_group_id` = `affinity_group`.`id`))) LEFT JOIN `affinity_group` ON ((`affinity_group_vm_map`.`affinity_group_id` = `affinity_group`.`id`)))
LEFT JOIN `autoscale_vmgroup_vm_map` ON ((`autoscale_vmgroup_vm_map`.`instance_id` = `vm_instance`.`id`))) LEFT JOIN `autoscale_vmgroup_vm_map` ON ((`autoscale_vmgroup_vm_map`.`instance_id` = `vm_instance`.`id`)))
LEFT JOIN `autoscale_vmgroups` ON ((`autoscale_vmgroup_vm_map`.`vmgroup_id` = `autoscale_vmgroups`.`id`))) LEFT JOIN `autoscale_vmgroups` ON ((`autoscale_vmgroup_vm_map`.`vmgroup_id` = `autoscale_vmgroups`.`id`)))
LEFT JOIN `user_vm_details` `custom_cpu` ON (((`custom_cpu`.`vm_id` = `vm_instance`.`id`) LEFT JOIN `vm_instance_details` `custom_cpu` ON (((`custom_cpu`.`vm_id` = `vm_instance`.`id`)
AND (`custom_cpu`.`name` = 'CpuNumber')))) AND (`custom_cpu`.`name` = 'CpuNumber'))))
LEFT JOIN `user_vm_details` `custom_speed` ON (((`custom_speed`.`vm_id` = `vm_instance`.`id`) LEFT JOIN `vm_instance_details` `custom_speed` ON (((`custom_speed`.`vm_id` = `vm_instance`.`id`)
AND (`custom_speed`.`name` = 'CpuSpeed')))) AND (`custom_speed`.`name` = 'CpuSpeed'))))
LEFT JOIN `user_vm_details` `custom_ram_size` ON (((`custom_ram_size`.`vm_id` = `vm_instance`.`id`) LEFT JOIN `vm_instance_details` `custom_ram_size` ON (((`custom_ram_size`.`vm_id` = `vm_instance`.`id`)
AND (`custom_ram_size`.`name` = 'memory'))) AND (`custom_ram_size`.`name` = 'memory')))
LEFT JOIN `user_vm_details` `lease_expiry_date` ON ((`lease_expiry_date`.`vm_id` = `vm_instance`.`id`) LEFT JOIN `vm_instance_details` `lease_expiry_date` ON ((`lease_expiry_date`.`vm_id` = `vm_instance`.`id`)
AND (`lease_expiry_date`.`name` = 'leaseexpirydate')) AND (`lease_expiry_date`.`name` = 'leaseexpirydate'))
LEFT JOIN `user_vm_details` `lease_action_execution` ON ((`lease_action_execution`.`vm_id` = `vm_instance`.`id`) LEFT JOIN `vm_instance_details` `lease_action_execution` ON ((`lease_action_execution`.`vm_id` = `vm_instance`.`id`)
AND (`lease_action_execution`.`name` = 'leaseactionexecution')) AND (`lease_action_execution`.`name` = 'leaseactionexecution'))
LEFT JOIN `user_vm_details` `lease_expiry_action` ON (((`lease_expiry_action`.`vm_id` = `vm_instance`.`id`) LEFT JOIN `vm_instance_details` `lease_expiry_action` ON (((`lease_expiry_action`.`vm_id` = `vm_instance`.`id`)
AND (`lease_expiry_action`.`name` = 'leaseexpiryaction')))); AND (`lease_expiry_action`.`name` = 'leaseexpiryaction'))));

View File

@ -91,7 +91,7 @@ import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.NicDaoImpl; import com.cloud.vm.dao.NicDaoImpl;
import com.cloud.vm.dao.SecondaryStorageVmDaoImpl; import com.cloud.vm.dao.SecondaryStorageVmDaoImpl;
import com.cloud.vm.dao.UserVmDaoImpl; import com.cloud.vm.dao.UserVmDaoImpl;
import com.cloud.vm.dao.UserVmDetailsDaoImpl; import com.cloud.vm.dao.VMInstanceDetailsDaoImpl;
import com.cloud.vm.dao.VMInstanceDaoImpl; import com.cloud.vm.dao.VMInstanceDaoImpl;
import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl; import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
@ -101,7 +101,7 @@ import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
ConfigurationGroupDaoImpl.class, ConfigurationSubGroupDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, VMTemplateZoneDaoImpl.class, ConfigurationGroupDaoImpl.class, ConfigurationSubGroupDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, VMTemplateZoneDaoImpl.class,
VMTemplateDetailsDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, DataCenterIpAddressDaoImpl.class, VMTemplateDetailsDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, DataCenterIpAddressDaoImpl.class,
DataCenterLinkLocalIpAddressDaoImpl.class, DataCenterVnetDaoImpl.class, PodVlanDaoImpl.class, DataCenterDetailsDaoImpl.class, DiskOfferingDaoImpl.class, DataCenterLinkLocalIpAddressDaoImpl.class, DataCenterVnetDaoImpl.class, PodVlanDaoImpl.class, DataCenterDetailsDaoImpl.class, DiskOfferingDaoImpl.class,
StoragePoolHostDaoImpl.class, UserVmDaoImpl.class, UserVmDetailsDaoImpl.class, ServiceOfferingDaoImpl.class, CapacityDaoImpl.class, SnapshotDaoImpl.class, StoragePoolHostDaoImpl.class, UserVmDaoImpl.class, VMInstanceDetailsDaoImpl.class, ServiceOfferingDaoImpl.class, CapacityDaoImpl.class, SnapshotDaoImpl.class,
VMSnapshotDaoImpl.class, OCFS2ManagerImpl.class, ClusterDetailsDaoImpl.class, SecondaryStorageVmDaoImpl.class, ConsoleProxyDaoImpl.class, VMSnapshotDaoImpl.class, OCFS2ManagerImpl.class, ClusterDetailsDaoImpl.class, SecondaryStorageVmDaoImpl.class, ConsoleProxyDaoImpl.class,
StoragePoolWorkDaoImpl.class, StorageCacheManagerImpl.class, UserDaoImpl.class, DataCenterDaoImpl.class, StoragePoolDetailsDaoImpl.class, DomainDaoImpl.class, StoragePoolWorkDaoImpl.class, StorageCacheManagerImpl.class, UserDaoImpl.class, DataCenterDaoImpl.class, StoragePoolDetailsDaoImpl.class, DomainDaoImpl.class,
DownloadMonitorImpl.class, AccountDaoImpl.class, ActionEventUtils.class, EventDaoImpl.class}, DownloadMonitorImpl.class, AccountDaoImpl.class, ActionEventUtils.class, EventDaoImpl.class},

View File

@ -92,10 +92,10 @@ import com.cloud.user.AccountVO;
import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.AccountDao;
import com.cloud.utils.Pair; import com.cloud.utils.Pair;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.constants.VmDetails; import com.cloud.vm.constants.VmDetails;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.VMSnapshotVO; import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao; import com.cloud.vm.snapshot.dao.VMSnapshotDao;
@ -174,7 +174,7 @@ public class PresetVariableHelper {
VMSnapshotDao vmSnapshotDao; VMSnapshotDao vmSnapshotDao;
@Inject @Inject
UserVmDetailsDao userVmDetailsDao; VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
BackupOfferingDao backupOfferingDao; BackupOfferingDao backupOfferingDao;
@ -465,7 +465,7 @@ public class PresetVariableHelper {
computingResources.setCpuSpeed(serviceOfferingVo.getSpeed()); computingResources.setCpuSpeed(serviceOfferingVo.getSpeed());
if (serviceOfferingVo.isDynamic()) { if (serviceOfferingVo.isDynamic()) {
List<UserVmDetailVO> details = userVmDetailsDao.listDetails(vmVo.getId()); List<VMInstanceDetailVO> details = vmInstanceDetailsDao.listDetails(vmVo.getId());
computingResources.setMemory(getDetailByName(details, VmDetails.MEMORY.getName(), computingResources.getMemory())); computingResources.setMemory(getDetailByName(details, VmDetails.MEMORY.getName(), computingResources.getMemory()));
computingResources.setCpuNumber(getDetailByName(details, VmDetails.CPU_NUMBER.getName(), computingResources.getCpuNumber())); computingResources.setCpuNumber(getDetailByName(details, VmDetails.CPU_NUMBER.getName(), computingResources.getCpuNumber()));
@ -485,14 +485,14 @@ public class PresetVariableHelper {
} }
} }
protected Integer getDetailByName(List<UserVmDetailVO> details, String name, Integer defaultValue) { protected Integer getDetailByName(List<VMInstanceDetailVO> details, String name, Integer defaultValue) {
List<UserVmDetailVO> detailFiltered = details.stream().filter(det -> name.equals(det.getName())).collect(Collectors.toList()); List<VMInstanceDetailVO> detailFiltered = details.stream().filter(det -> name.equals(det.getName())).collect(Collectors.toList());
if (CollectionUtils.isEmpty(detailFiltered)) { if (CollectionUtils.isEmpty(detailFiltered)) {
return defaultValue; return defaultValue;
} }
UserVmDetailVO detail = detailFiltered.get(0); VMInstanceDetailVO detail = detailFiltered.get(0);
if (detail.getValue() != null) { if (detail.getValue() != null) {
return Integer.valueOf(detail.getValue()); return Integer.valueOf(detail.getValue());

View File

@ -20,8 +20,8 @@ import java.util.Map;
import com.cloud.utils.db.GenericDao; import com.cloud.utils.db.GenericDao;
import org.apache.cloudstack.quota.vo.UserVmDetailVO; import org.apache.cloudstack.quota.vo.VMInstanceDetailVO;
public interface UserVmDetailsDao extends GenericDao<UserVmDetailVO, Long> { public interface VMInstanceDetailsDao extends GenericDao<VMInstanceDetailVO, Long> {
Map<String, String> listDetailsKeyPairs(long resourceId); Map<String, String> listDetailsKeyPairs(long resourceId);
} }

View File

@ -20,7 +20,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.cloudstack.quota.vo.UserVmDetailVO; import org.apache.cloudstack.quota.vo.VMInstanceDetailVO;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import com.cloud.utils.db.GenericDaoBase; import com.cloud.utils.db.GenericDaoBase;
@ -28,10 +28,10 @@ import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria;
@Component @Component
public class UserVmDetailsDaoImpl extends GenericDaoBase<UserVmDetailVO, Long> implements UserVmDetailsDao { public class VMInstanceDetailsDaoImpl extends GenericDaoBase<VMInstanceDetailVO, Long> implements VMInstanceDetailsDao {
private SearchBuilder<UserVmDetailVO> AllFieldsSearch; private SearchBuilder<VMInstanceDetailVO> AllFieldsSearch;
public UserVmDetailsDaoImpl() { public VMInstanceDetailsDaoImpl() {
AllFieldsSearch = createSearchBuilder(); AllFieldsSearch = createSearchBuilder();
AllFieldsSearch.and("resourceId", AllFieldsSearch.entity().getResourceId(), SearchCriteria.Op.EQ); AllFieldsSearch.and("resourceId", AllFieldsSearch.entity().getResourceId(), SearchCriteria.Op.EQ);
AllFieldsSearch.and("name", AllFieldsSearch.entity().getName(), SearchCriteria.Op.EQ); AllFieldsSearch.and("name", AllFieldsSearch.entity().getName(), SearchCriteria.Op.EQ);
@ -43,11 +43,11 @@ public class UserVmDetailsDaoImpl extends GenericDaoBase<UserVmDetailVO, Long> i
@Override @Override
public Map<String, String> listDetailsKeyPairs(long resourceId) { public Map<String, String> listDetailsKeyPairs(long resourceId) {
Map<String, String> details = new HashMap<String, String>(); Map<String, String> details = new HashMap<String, String>();
SearchCriteria<UserVmDetailVO> sc = AllFieldsSearch.create(); SearchCriteria<VMInstanceDetailVO> sc = AllFieldsSearch.create();
sc.setParameters("resourceId", resourceId); sc.setParameters("resourceId", resourceId);
List<UserVmDetailVO> results = search(sc, null); List<VMInstanceDetailVO> results = search(sc, null);
for (UserVmDetailVO result : results) { for (VMInstanceDetailVO result : results) {
details.put(result.getName(), result.getValue()); details.put(result.getName(), result.getValue());
} }
return details; return details;

View File

@ -26,8 +26,8 @@ import javax.persistence.Table;
import org.apache.cloudstack.api.ResourceDetail; import org.apache.cloudstack.api.ResourceDetail;
@Entity @Entity
@Table(name = "user_vm_details") @Table(name = "vm_instance_details")
public class UserVmDetailVO implements ResourceDetail { public class VMInstanceDetailVO implements ResourceDetail {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id") @Column(name = "id")
@ -45,10 +45,10 @@ public class UserVmDetailVO implements ResourceDetail {
@Column(name = "display") @Column(name = "display")
private boolean display = true; private boolean display = true;
public UserVmDetailVO() { public VMInstanceDetailVO() {
} }
public UserVmDetailVO(long vmId, String name, String value, boolean display) { public VMInstanceDetailVO(long vmId, String name, String value, boolean display) {
this.resourceId = vmId; this.resourceId = vmId;
this.name = name; this.name = name;
this.value = value; this.value = value;

View File

@ -25,7 +25,7 @@
<bean id="QuotaEmailTemplatesDao" <bean id="QuotaEmailTemplatesDao"
class="org.apache.cloudstack.quota.dao.QuotaEmailTemplatesDaoImpl" /> class="org.apache.cloudstack.quota.dao.QuotaEmailTemplatesDaoImpl" />
<bean id="QuotaUsageDao" class="org.apache.cloudstack.quota.dao.QuotaUsageDaoImpl" /> <bean id="QuotaUsageDao" class="org.apache.cloudstack.quota.dao.QuotaUsageDaoImpl" />
<bean id="UserVmDetailsDao" class="org.apache.cloudstack.quota.dao.UserVmDetailsDaoImpl" /> <bean id="UserVmDetailsDao" class="org.apache.cloudstack.quota.dao.VMInstanceDetailsDaoImpl" />
<bean id="QuotaManager" class="org.apache.cloudstack.quota.QuotaManagerImpl" /> <bean id="QuotaManager" class="org.apache.cloudstack.quota.QuotaManagerImpl" />
<bean id="QuotaAlertManager" class="org.apache.cloudstack.quota.QuotaAlertManagerImpl" /> <bean id="QuotaAlertManager" class="org.apache.cloudstack.quota.QuotaAlertManagerImpl" />

View File

@ -93,9 +93,9 @@ import com.cloud.user.AccountVO;
import com.cloud.user.dao.AccountDao; import com.cloud.user.dao.AccountDao;
import com.cloud.utils.Pair; import com.cloud.utils.Pair;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.VMSnapshot; import com.cloud.vm.snapshot.VMSnapshot;
import com.cloud.vm.snapshot.VMSnapshotVO; import com.cloud.vm.snapshot.VMSnapshotVO;
@ -171,7 +171,7 @@ public class PresetVariableHelperTest {
VolumeDao volumeDaoMock; VolumeDao volumeDaoMock;
@Mock @Mock
UserVmDetailsDao userVmDetailsDaoMock; VMInstanceDetailsDao vmInstanceDetailsDaoMock;
@InjectMocks @InjectMocks
PresetVariableHelper presetVariableHelperSpy = Mockito.spy(PresetVariableHelper.class); PresetVariableHelper presetVariableHelperSpy = Mockito.spy(PresetVariableHelper.class);
@ -296,11 +296,11 @@ public class PresetVariableHelperTest {
return quotaTypesMap.entrySet(); return quotaTypesMap.entrySet();
} }
private List<UserVmDetailVO> getVmDetailsForTests() { private List<VMInstanceDetailVO> getVmDetailsForTests() {
List<UserVmDetailVO> details = new LinkedList<>(); List<VMInstanceDetailVO> details = new LinkedList<>();
details.add(new UserVmDetailVO(1l, "test_with_value", "277", false)); details.add(new VMInstanceDetailVO(1l, "test_with_value", "277", false));
details.add(new UserVmDetailVO(1l, "test_with_invalid_value", "invalid", false)); details.add(new VMInstanceDetailVO(1l, "test_with_invalid_value", "invalid", false));
details.add(new UserVmDetailVO(1l, "test_with_null", null, false)); details.add(new VMInstanceDetailVO(1l, "test_with_null", null, false));
return details; return details;
} }
@ -1245,7 +1245,7 @@ public class PresetVariableHelperTest {
ComputingResources result = presetVariableHelperSpy.getPresetVariableValueComputingResource(vmInstanceVoMock, serviceOfferingVoMock); ComputingResources result = presetVariableHelperSpy.getPresetVariableValueComputingResource(vmInstanceVoMock, serviceOfferingVoMock);
Assert.assertEquals(expected.toString(), result.toString()); Assert.assertEquals(expected.toString(), result.toString());
Mockito.verify(userVmDetailsDaoMock, Mockito.never()).listDetails(Mockito.anyLong()); Mockito.verify(vmInstanceDetailsDaoMock, Mockito.never()).listDetails(Mockito.anyLong());
} }
@Test @Test
@ -1263,7 +1263,7 @@ public class PresetVariableHelperTest {
ComputingResources result = presetVariableHelperSpy.getPresetVariableValueComputingResource(vmInstanceVoMock, serviceOfferingVoMock); ComputingResources result = presetVariableHelperSpy.getPresetVariableValueComputingResource(vmInstanceVoMock, serviceOfferingVoMock);
Assert.assertEquals(expected.toString(), result.toString()); Assert.assertEquals(expected.toString(), result.toString());
Mockito.verify(userVmDetailsDaoMock).listDetails(Mockito.anyLong()); Mockito.verify(vmInstanceDetailsDaoMock).listDetails(Mockito.anyLong());
} }
@Test @Test

View File

@ -95,7 +95,7 @@ import com.cloud.vm.UserVmVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachineProfileImpl; import com.cloud.vm.VirtualMachineProfileImpl;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
@RunWith(SpringJUnit4ClassRunner.class) @RunWith(SpringJUnit4ClassRunner.class)
@ -123,7 +123,7 @@ public class ImplicitPlannerTest {
@Inject @Inject
UserVmDao vmDao; UserVmDao vmDao;
@Inject @Inject
UserVmDetailsDao vmDetailsDao; VMInstanceDetailsDao vmDetailsDao;
@Inject @Inject
VMInstanceDao vmInstanceDao; VMInstanceDao vmInstanceDao;
@Inject @Inject
@ -489,8 +489,8 @@ public class ImplicitPlannerTest {
} }
@Bean @Bean
public UserVmDetailsDao userVmDetailsDao() { public VMInstanceDetailsDao vmInstanceDetailsDao() {
return Mockito.mock(UserVmDetailsDao.class); return Mockito.mock(VMInstanceDetailsDao.class);
} }
@Bean @Bean

View File

@ -17,9 +17,9 @@
package com.cloud.kubernetes.cluster; package com.cloud.kubernetes.cluster;
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.CONTROL; import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.CONTROL;
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.DEFAULT;
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.ETCD; import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.ETCD;
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.WORKER; import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.WORKER;
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.DEFAULT;
import static com.cloud.utils.NumbersUtil.toHumanReadableSize; import static com.cloud.utils.NumbersUtil.toHumanReadableSize;
import static com.cloud.vm.UserVmManager.AllowUserExpungeRecoverVm; import static com.cloud.vm.UserVmManager.AllowUserExpungeRecoverVm;
@ -47,28 +47,6 @@ import java.util.stream.Collectors;
import javax.inject.Inject; import javax.inject.Inject;
import javax.naming.ConfigurationException; import javax.naming.ConfigurationException;
import com.cloud.bgp.BGPService;
import com.cloud.dc.DedicatedResourceVO;
import com.cloud.dc.dao.DedicatedResourceDao;
import com.cloud.exception.ManagementServerException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.host.Host;
import com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType;
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterRemoveWorker;
import com.cloud.network.dao.NsxProviderDao;
import com.cloud.network.element.NsxProviderVO;
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterAddWorker;
import com.cloud.network.rules.PortForwardingRuleVO;
import com.cloud.network.rules.dao.PortForwardingRulesDao;
import com.cloud.template.TemplateApiService;
import com.cloud.user.UserDataVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.UserDataDao;
import com.cloud.uservm.UserVm;
import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmService;
import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.UserVmDetailsDao;
import org.apache.cloudstack.acl.ControlledEntity; import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.Role; import org.apache.cloudstack.acl.Role;
import org.apache.cloudstack.acl.RolePermissionEntity; import org.apache.cloudstack.acl.RolePermissionEntity;
@ -87,7 +65,6 @@ import org.apache.cloudstack.api.ApiErrorCode;
import org.apache.cloudstack.api.BaseCmd; import org.apache.cloudstack.api.BaseCmd;
import org.apache.cloudstack.api.ResponseObject.ResponseView; import org.apache.cloudstack.api.ResponseObject.ResponseView;
import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.command.user.kubernetes.cluster.AddNodesToKubernetesClusterCmd;
import org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd; import org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd;
import org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd; import org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd;
import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd; import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd;
@ -96,6 +73,7 @@ import org.apache.cloudstack.api.command.user.firewall.DeleteFirewallRuleCmd;
import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd; import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
import org.apache.cloudstack.api.command.user.firewall.UpdateFirewallRuleCmd; import org.apache.cloudstack.api.command.user.firewall.UpdateFirewallRuleCmd;
import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd; import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
import org.apache.cloudstack.api.command.user.kubernetes.cluster.AddNodesToKubernetesClusterCmd;
import org.apache.cloudstack.api.command.user.kubernetes.cluster.AddVirtualMachinesToKubernetesClusterCmd; import org.apache.cloudstack.api.command.user.kubernetes.cluster.AddVirtualMachinesToKubernetesClusterCmd;
import org.apache.cloudstack.api.command.user.kubernetes.cluster.CreateKubernetesClusterCmd; import org.apache.cloudstack.api.command.user.kubernetes.cluster.CreateKubernetesClusterCmd;
import org.apache.cloudstack.api.command.user.kubernetes.cluster.DeleteKubernetesClusterCmd; import org.apache.cloudstack.api.command.user.kubernetes.cluster.DeleteKubernetesClusterCmd;
@ -130,13 +108,14 @@ import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
import org.apache.cloudstack.framework.config.ConfigKey; import org.apache.cloudstack.framework.config.ConfigKey;
import org.apache.cloudstack.managed.context.ManagedContextRunnable; import org.apache.cloudstack.managed.context.ManagedContextRunnable;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.cloudstack.network.RoutedIpv4Manager; import org.apache.cloudstack.network.RoutedIpv4Manager;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Level;
import com.cloud.api.ApiDBUtils; import com.cloud.api.ApiDBUtils;
import com.cloud.api.query.dao.NetworkOfferingJoinDao; import com.cloud.api.query.dao.NetworkOfferingJoinDao;
@ -144,14 +123,17 @@ import com.cloud.api.query.dao.TemplateJoinDao;
import com.cloud.api.query.dao.UserVmJoinDao; import com.cloud.api.query.dao.UserVmJoinDao;
import com.cloud.api.query.vo.NetworkOfferingJoinVO; import com.cloud.api.query.vo.NetworkOfferingJoinVO;
import com.cloud.api.query.vo.UserVmJoinVO; import com.cloud.api.query.vo.UserVmJoinVO;
import com.cloud.bgp.BGPService;
import com.cloud.capacity.CapacityManager; import com.cloud.capacity.CapacityManager;
import com.cloud.dc.ClusterDetailsDao; import com.cloud.dc.ClusterDetailsDao;
import com.cloud.dc.ClusterDetailsVO; import com.cloud.dc.ClusterDetailsVO;
import com.cloud.dc.ClusterVO; import com.cloud.dc.ClusterVO;
import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter;
import com.cloud.dc.DataCenterVO; import com.cloud.dc.DataCenterVO;
import com.cloud.dc.DedicatedResourceVO;
import com.cloud.dc.dao.ClusterDao; import com.cloud.dc.dao.ClusterDao;
import com.cloud.dc.dao.DataCenterDao; import com.cloud.dc.dao.DataCenterDao;
import com.cloud.dc.dao.DedicatedResourceDao;
import com.cloud.deploy.DeployDestination; import com.cloud.deploy.DeployDestination;
import com.cloud.domain.Domain; import com.cloud.domain.Domain;
import com.cloud.event.ActionEvent; import com.cloud.event.ActionEvent;
@ -159,13 +141,19 @@ import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InsufficientServerCapacityException; import com.cloud.exception.InsufficientServerCapacityException;
import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.ManagementServerException;
import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.PermissionDeniedException;
import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.host.Host;
import com.cloud.host.HostVO; import com.cloud.host.HostVO;
import com.cloud.host.dao.HostDao; import com.cloud.host.dao.HostDao;
import com.cloud.hypervisor.Hypervisor; import com.cloud.hypervisor.Hypervisor;
import com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType;
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterActionWorker; import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterActionWorker;
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterAddWorker;
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterDestroyWorker; import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterDestroyWorker;
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterRemoveWorker;
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterScaleWorker; import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterScaleWorker;
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterStartWorker; import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterStartWorker;
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterStopWorker; import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterStopWorker;
@ -189,10 +177,14 @@ import com.cloud.network.dao.IPAddressDao;
import com.cloud.network.dao.IPAddressVO; import com.cloud.network.dao.IPAddressVO;
import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.NetworkDao;
import com.cloud.network.dao.NetworkVO; import com.cloud.network.dao.NetworkVO;
import com.cloud.network.dao.NsxProviderDao;
import com.cloud.network.dao.PhysicalNetworkDao; import com.cloud.network.dao.PhysicalNetworkDao;
import com.cloud.network.element.NsxProviderVO;
import com.cloud.network.router.NetworkHelper; import com.cloud.network.router.NetworkHelper;
import com.cloud.network.rules.FirewallRule; import com.cloud.network.rules.FirewallRule;
import com.cloud.network.rules.FirewallRuleVO; import com.cloud.network.rules.FirewallRuleVO;
import com.cloud.network.rules.PortForwardingRuleVO;
import com.cloud.network.rules.dao.PortForwardingRulesDao;
import com.cloud.network.security.SecurityGroup; import com.cloud.network.security.SecurityGroup;
import com.cloud.network.security.SecurityGroupManager; import com.cloud.network.security.SecurityGroupManager;
import com.cloud.network.security.SecurityGroupService; import com.cloud.network.security.SecurityGroupService;
@ -214,6 +206,7 @@ import com.cloud.service.ServiceOfferingVO;
import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.storage.VMTemplateVO; import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VMTemplateDao;
import com.cloud.template.TemplateApiService;
import com.cloud.user.Account; import com.cloud.user.Account;
import com.cloud.user.AccountManager; import com.cloud.user.AccountManager;
import com.cloud.user.AccountService; import com.cloud.user.AccountService;
@ -221,9 +214,13 @@ import com.cloud.user.AccountVO;
import com.cloud.user.SSHKeyPairVO; import com.cloud.user.SSHKeyPairVO;
import com.cloud.user.User; import com.cloud.user.User;
import com.cloud.user.UserAccount; import com.cloud.user.UserAccount;
import com.cloud.user.UserDataVO;
import com.cloud.user.UserVO; import com.cloud.user.UserVO;
import com.cloud.user.dao.AccountDao;
import com.cloud.user.dao.SSHKeyPairDao; import com.cloud.user.dao.SSHKeyPairDao;
import com.cloud.user.dao.UserDao; import com.cloud.user.dao.UserDao;
import com.cloud.user.dao.UserDataDao;
import com.cloud.uservm.UserVm;
import com.cloud.utils.Pair; import com.cloud.utils.Pair;
import com.cloud.utils.Ternary; import com.cloud.utils.Ternary;
import com.cloud.utils.UuidUtils; import com.cloud.utils.UuidUtils;
@ -242,10 +239,12 @@ import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.NoTransitionException; import com.cloud.utils.fsm.NoTransitionException;
import com.cloud.utils.fsm.StateMachine2; import com.cloud.utils.fsm.StateMachine2;
import com.cloud.utils.net.NetUtils; import com.cloud.utils.net.NetUtils;
import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmService;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import org.apache.logging.log4j.Level;
public class KubernetesClusterManagerImpl extends ManagerBase implements KubernetesClusterService { public class KubernetesClusterManagerImpl extends ManagerBase implements KubernetesClusterService {
@ -328,8 +327,6 @@ public class KubernetesClusterManagerImpl extends ManagerBase implements Kuberne
@Inject @Inject
protected UserDao userDao; protected UserDao userDao;
@Inject @Inject
protected UserVmDetailsDao userVmDetailsDao;
@Inject
protected VMInstanceDao vmInstanceDao; protected VMInstanceDao vmInstanceDao;
@Inject @Inject
protected UserVmJoinDao userVmJoinDao; protected UserVmJoinDao userVmJoinDao;

View File

@ -122,12 +122,12 @@ import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.NoTransitionException; import com.cloud.utils.fsm.NoTransitionException;
import com.cloud.utils.fsm.StateMachine2; import com.cloud.utils.fsm.StateMachine2;
import com.cloud.utils.ssh.SshHelper; import com.cloud.utils.ssh.SshHelper;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmService; import com.cloud.vm.UserVmService;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VmDetailConstants; import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.CONTROL; import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.CONTROL;
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.ETCD; import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.ETCD;
@ -185,7 +185,7 @@ public class KubernetesClusterActionWorker {
@Inject @Inject
protected UserVmDao userVmDao; protected UserVmDao userVmDao;
@Inject @Inject
protected UserVmDetailsDao userVmDetailsDao; protected VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
protected UserVmService userVmService; protected UserVmService userVmService;
@Inject @Inject
@ -281,7 +281,7 @@ public class KubernetesClusterActionWorker {
if (userVM == null) { if (userVM == null) {
throw new CloudRuntimeException("Failed to find login user, Unable to log in to node to fetch details"); throw new CloudRuntimeException("Failed to find login user, Unable to log in to node to fetch details");
} }
UserVmDetailVO vmDetail = userVmDetailsDao.findDetail(vmId, VmDetailConstants.CKS_CONTROL_NODE_LOGIN_USER); VMInstanceDetailVO vmDetail = vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.CKS_CONTROL_NODE_LOGIN_USER);
if (vmDetail != null && !org.apache.commons.lang3.StringUtils.isEmpty(vmDetail.getValue())) { if (vmDetail != null && !org.apache.commons.lang3.StringUtils.isEmpty(vmDetail.getValue())) {
return vmDetail.getValue(); return vmDetail.getValue();
} else { } else {
@ -654,7 +654,7 @@ public class KubernetesClusterActionWorker {
for (Long vmId : clusterVMs) { for (Long vmId : clusterVMs) {
UserVm controlNode = userVmDao.findById(vmId); UserVm controlNode = userVmDao.findById(vmId);
if (controlNode != null) { if (controlNode != null) {
userVmDetailsDao.addDetail(vmId, VmDetailConstants.CKS_CONTROL_NODE_LOGIN_USER, CLUSTER_NODE_VM_USER, true); vmInstanceDetailsDao.addDetail(vmId, VmDetailConstants.CKS_CONTROL_NODE_LOGIN_USER, CLUSTER_NODE_VM_USER, true);
} }
} }
} }

View File

@ -296,7 +296,7 @@ import com.cloud.vm.dao.NicSecondaryIpDaoImpl;
import com.cloud.vm.dao.SecondaryStorageVmDaoImpl; import com.cloud.vm.dao.SecondaryStorageVmDaoImpl;
import com.cloud.vm.dao.UserVmCloneSettingDaoImpl; import com.cloud.vm.dao.UserVmCloneSettingDaoImpl;
import com.cloud.vm.dao.UserVmDaoImpl; import com.cloud.vm.dao.UserVmDaoImpl;
import com.cloud.vm.dao.UserVmDetailsDaoImpl; import com.cloud.vm.dao.VMInstanceDetailsDaoImpl;
import com.cloud.vm.dao.VMInstanceDaoImpl; import com.cloud.vm.dao.VMInstanceDaoImpl;
import com.cloud.vm.snapshot.VMSnapshotManager; import com.cloud.vm.snapshot.VMSnapshotManager;
import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl; import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
@ -331,7 +331,7 @@ import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
SnapshotDaoImpl.class, SnapshotPolicyDaoImpl.class, StaticRouteDaoImpl.class, StatsCollector.class, StoragePoolDetailsDaoImpl.class, StoragePoolHostDaoImpl.class, SnapshotDaoImpl.class, SnapshotPolicyDaoImpl.class, StaticRouteDaoImpl.class, StatsCollector.class, StoragePoolDetailsDaoImpl.class, StoragePoolHostDaoImpl.class,
StoragePoolJoinDaoImpl.class, SyncQueueItemDaoImpl.class, TemplateDataStoreDaoImpl.class, TemplateJoinDaoImpl.class, UploadDaoImpl.class, UsageEventDaoImpl.class, StoragePoolJoinDaoImpl.class, SyncQueueItemDaoImpl.class, TemplateDataStoreDaoImpl.class, TemplateJoinDaoImpl.class, UploadDaoImpl.class, UsageEventDaoImpl.class,
UserAccountJoinDaoImpl.class, UserDaoImpl.class, UserIpv6AddressDaoImpl.class, UserStatisticsDaoImpl.class, UserStatsLogDaoImpl.class, UserAccountJoinDaoImpl.class, UserDaoImpl.class, UserIpv6AddressDaoImpl.class, UserStatisticsDaoImpl.class, UserStatsLogDaoImpl.class,
UserVmCloneSettingDaoImpl.class, UserVmDaoImpl.class, UserVmDetailsDaoImpl.class, UserVmJoinDaoImpl.class, UserVmManagerImpl.class, VMInstanceDaoImpl.class, VMSnapshotDaoImpl.class, UserVmCloneSettingDaoImpl.class, UserVmDaoImpl.class, VMInstanceDetailsDaoImpl.class, UserVmJoinDaoImpl.class, UserVmManagerImpl.class, VMInstanceDaoImpl.class, VMSnapshotDaoImpl.class,
VMTemplateDaoImpl.class, VMTemplateDetailsDaoImpl.class, VMTemplateZoneDaoImpl.class, VirtualMachineManagerImpl.class, VirtualRouterProviderDaoImpl.class, VMTemplateDaoImpl.class, VMTemplateDetailsDaoImpl.class, VMTemplateZoneDaoImpl.class, VirtualMachineManagerImpl.class, VirtualRouterProviderDaoImpl.class,
VlanDaoImpl.class, VmDiskStatisticsDaoImpl.class, VmRulesetLogDaoImpl.class, VolumeDaoImpl.class, VolumeJoinDaoImpl.class, VpcDaoImpl.class, VlanDaoImpl.class, VmDiskStatisticsDaoImpl.class, VmRulesetLogDaoImpl.class, VolumeDaoImpl.class, VolumeJoinDaoImpl.class, VpcDaoImpl.class,
VpcGatewayDaoImpl.class, VpcManagerImpl.class, VpcOfferingDaoImpl.class, VpcOfferingServiceMapDaoImpl.class, VpcServiceMapDaoImpl.class, VpcGatewayDaoImpl.class, VpcManagerImpl.class, VpcOfferingDaoImpl.class, VpcOfferingServiceMapDaoImpl.class, VpcServiceMapDaoImpl.class,

View File

@ -61,10 +61,10 @@ import com.cloud.storage.dao.GuestOSDao;
import com.cloud.user.Account; import com.cloud.user.Account;
import com.cloud.utils.Pair; import com.cloud.utils.Pair;
import com.cloud.utils.component.AdapterBase; import com.cloud.utils.component.AdapterBase;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
@ -103,7 +103,7 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
@Inject @Inject
CapacityDao _capacityDao; CapacityDao _capacityDao;
@Inject @Inject
UserVmDetailsDao _userVmDetailsDao; VMInstanceDetailsDao _vmInstanceDetailsDao;
boolean _checkHvm = true; boolean _checkHvm = true;
static DecimalFormat decimalFormat = new DecimalFormat("#.##"); static DecimalFormat decimalFormat = new DecimalFormat("#.##");
@ -124,9 +124,9 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
Account account = vmProfile.getOwner(); Account account = vmProfile.getOwner();
boolean isVMDeployedWithUefi = false; boolean isVMDeployedWithUefi = false;
UserVmDetailVO userVmDetailVO = _userVmDetailsDao.findDetail(vmProfile.getId(), "UEFI"); VMInstanceDetailVO vmInstanceDetailVO = _vmInstanceDetailsDao.findDetail(vmProfile.getId(), "UEFI");
if(userVmDetailVO != null){ if(vmInstanceDetailVO != null){
if ("secure".equalsIgnoreCase(userVmDetailVO.getValue()) || "legacy".equalsIgnoreCase(userVmDetailVO.getValue())) { if ("secure".equalsIgnoreCase(vmInstanceDetailVO.getValue()) || "legacy".equalsIgnoreCase(vmInstanceDetailVO.getValue())) {
isVMDeployedWithUefi = true; isVMDeployedWithUefi = true;
} }
} }

View File

@ -343,7 +343,7 @@ import com.cloud.vm.InstanceGroup;
import com.cloud.vm.InstanceGroupVO; import com.cloud.vm.InstanceGroupVO;
import com.cloud.vm.NicProfile; import com.cloud.vm.NicProfile;
import com.cloud.vm.NicVO; import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmManager; import com.cloud.vm.UserVmManager;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
@ -357,7 +357,7 @@ import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicSecondaryIpDao; import com.cloud.vm.dao.NicSecondaryIpDao;
import com.cloud.vm.dao.NicSecondaryIpVO; import com.cloud.vm.dao.NicSecondaryIpVO;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.VMSnapshot; import com.cloud.vm.snapshot.VMSnapshot;
import com.cloud.vm.snapshot.dao.VMSnapshotDao; import com.cloud.vm.snapshot.dao.VMSnapshotDao;
@ -434,7 +434,7 @@ public class ApiDBUtils {
static HighAvailabilityManager s_haMgr; static HighAvailabilityManager s_haMgr;
static VpcManager s_vpcMgr; static VpcManager s_vpcMgr;
static TaggedResourceService s_taggedResourceService; static TaggedResourceService s_taggedResourceService;
static UserVmDetailsDao s_userVmDetailsDao; static VMInstanceDetailsDao s_vmInstanceDetailsDao;
static SSHKeyPairDao s_sshKeyPairDao; static SSHKeyPairDao s_sshKeyPairDao;
static ConditionDao s_asConditionDao; static ConditionDao s_asConditionDao;
@ -639,7 +639,7 @@ public class ApiDBUtils {
@Inject @Inject
private TaggedResourceService taggedResourceService; private TaggedResourceService taggedResourceService;
@Inject @Inject
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private SSHKeyPairDao sshKeyPairDao; private SSHKeyPairDao sshKeyPairDao;
@ -839,7 +839,7 @@ public class ApiDBUtils {
s_vpcMgr = vpcMgr; s_vpcMgr = vpcMgr;
s_taggedResourceService = taggedResourceService; s_taggedResourceService = taggedResourceService;
s_sshKeyPairDao = sshKeyPairDao; s_sshKeyPairDao = sshKeyPairDao;
s_userVmDetailsDao = userVmDetailsDao; s_vmInstanceDetailsDao = vmInstanceDetailsDao;
s_asConditionDao = asConditionDao; s_asConditionDao = asConditionDao;
s_asPolicyDao = asPolicyDao; s_asPolicyDao = asPolicyDao;
s_asPolicyConditionMapDao = asPolicyConditionMapDao; s_asPolicyConditionMapDao = asPolicyConditionMapDao;
@ -1621,8 +1621,8 @@ public class ApiDBUtils {
return null; return null;
} }
public static UserVmDetailVO findPublicKeyByVmId(long vmId) { public static VMInstanceDetailVO findPublicKeyByVmId(long vmId) {
return s_userVmDetailsDao.findDetail(vmId, VmDetailConstants.SSH_PUBLIC_KEY); return s_vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.SSH_PUBLIC_KEY);
} }
public static void getAutoScaleVmGroupPolicies(long vmGroupId, List<AutoScalePolicy> scaleUpPolicies, List<AutoScalePolicy> scaleDownPolicies) { public static void getAutoScaleVmGroupPolicies(long vmGroupId, List<AutoScalePolicy> scaleUpPolicies, List<AutoScalePolicy> scaleDownPolicies) {

View File

@ -36,12 +36,6 @@ import java.util.stream.Stream;
import javax.inject.Inject; import javax.inject.Inject;
import com.cloud.dc.Pod;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.dc.dao.HostPodDao;
import com.cloud.org.Cluster;
import com.cloud.server.ManagementService;
import com.cloud.storage.dao.StoragePoolAndAccessGroupMapDao;
import org.apache.cloudstack.acl.ControlledEntity; import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.ControlledEntity.ACLType; import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.acl.SecurityChecker; import org.apache.cloudstack.acl.SecurityChecker;
@ -237,8 +231,11 @@ import com.cloud.cpu.CPU;
import com.cloud.dc.ClusterVO; import com.cloud.dc.ClusterVO;
import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenter;
import com.cloud.dc.DedicatedResourceVO; import com.cloud.dc.DedicatedResourceVO;
import com.cloud.dc.Pod;
import com.cloud.dc.dao.ClusterDao; import com.cloud.dc.dao.ClusterDao;
import com.cloud.dc.dao.DataCenterDao;
import com.cloud.dc.dao.DedicatedResourceDao; import com.cloud.dc.dao.DedicatedResourceDao;
import com.cloud.dc.dao.HostPodDao;
import com.cloud.domain.Domain; import com.cloud.domain.Domain;
import com.cloud.domain.DomainVO; import com.cloud.domain.DomainVO;
import com.cloud.domain.dao.DomainDao; import com.cloud.domain.dao.DomainDao;
@ -276,6 +273,7 @@ import com.cloud.network.security.dao.SecurityGroupVMMapDao;
import com.cloud.network.vo.PublicIpQuarantineVO; import com.cloud.network.vo.PublicIpQuarantineVO;
import com.cloud.offering.DiskOffering; import com.cloud.offering.DiskOffering;
import com.cloud.offering.ServiceOffering; import com.cloud.offering.ServiceOffering;
import com.cloud.org.Cluster;
import com.cloud.org.Grouping; import com.cloud.org.Grouping;
import com.cloud.projects.Project; import com.cloud.projects.Project;
import com.cloud.projects.Project.ListProjectResourcesCriteria; import com.cloud.projects.Project.ListProjectResourcesCriteria;
@ -287,6 +285,7 @@ import com.cloud.projects.dao.ProjectDao;
import com.cloud.projects.dao.ProjectInvitationDao; import com.cloud.projects.dao.ProjectInvitationDao;
import com.cloud.resource.ResourceManager; import com.cloud.resource.ResourceManager;
import com.cloud.resource.icon.dao.ResourceIconDao; import com.cloud.resource.icon.dao.ResourceIconDao;
import com.cloud.server.ManagementService;
import com.cloud.server.ResourceManagerUtil; import com.cloud.server.ResourceManagerUtil;
import com.cloud.server.ResourceMetaDataService; import com.cloud.server.ResourceMetaDataService;
import com.cloud.server.ResourceTag; import com.cloud.server.ResourceTag;
@ -317,6 +316,7 @@ import com.cloud.storage.VolumeVO;
import com.cloud.storage.dao.BucketDao; import com.cloud.storage.dao.BucketDao;
import com.cloud.storage.dao.DiskOfferingDao; import com.cloud.storage.dao.DiskOfferingDao;
import com.cloud.storage.dao.GuestOSDao; import com.cloud.storage.dao.GuestOSDao;
import com.cloud.storage.dao.StoragePoolAndAccessGroupMapDao;
import com.cloud.storage.dao.StoragePoolHostDao; import com.cloud.storage.dao.StoragePoolHostDao;
import com.cloud.storage.dao.StoragePoolTagsDao; import com.cloud.storage.dao.StoragePoolTagsDao;
import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VMTemplateDao;
@ -351,8 +351,8 @@ import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.DomainRouterVO; import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.InstanceGroupVMMapVO; import com.cloud.vm.InstanceGroupVMMapVO;
import com.cloud.vm.NicVO; import com.cloud.vm.NicVO;
import com.cloud.vm.UserVmDetailVO;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.VirtualMachineManager;
@ -361,8 +361,8 @@ import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.InstanceGroupVMMapDao; import com.cloud.vm.dao.InstanceGroupVMMapDao;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.dao.VMInstanceDetailsDao;
@Component @Component
public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements QueryService, Configurable { public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements QueryService, Configurable {
@ -591,7 +591,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
AffinityGroupVMMapDao affinityGroupVMMapDao; AffinityGroupVMMapDao affinityGroupVMMapDao;
@Inject @Inject
UserVmDetailsDao userVmDetailsDao; VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
SSHKeyPairDao sshKeyPairDao; SSHKeyPairDao sshKeyPairDao;
@ -1519,7 +1519,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
} }
if (cmd.getOnlyLeasedInstances()) { if (cmd.getOnlyLeasedInstances()) {
SearchBuilder<UserVmDetailVO> leasedInstancesSearch = userVmDetailsDao.createSearchBuilder(); SearchBuilder<VMInstanceDetailVO> leasedInstancesSearch = vmInstanceDetailsDao.createSearchBuilder();
leasedInstancesSearch.and(leasedInstancesSearch.entity().getName(), SearchCriteria.Op.EQ).values(VmDetailConstants.INSTANCE_LEASE_EXECUTION); leasedInstancesSearch.and(leasedInstancesSearch.entity().getName(), SearchCriteria.Op.EQ).values(VmDetailConstants.INSTANCE_LEASE_EXECUTION);
leasedInstancesSearch.and(leasedInstancesSearch.entity().getValue(), SearchCriteria.Op.EQ).values(VMLeaseManager.LeaseActionExecution.PENDING.name()); leasedInstancesSearch.and(leasedInstancesSearch.entity().getValue(), SearchCriteria.Op.EQ).values(VMLeaseManager.LeaseActionExecution.PENDING.name());
userVmSearchBuilder.join("userVmToLeased", leasedInstancesSearch, leasedInstancesSearch.entity().getResourceId(), userVmSearchBuilder.join("userVmToLeased", leasedInstancesSearch, leasedInstancesSearch.entity().getResourceId(),
@ -1527,8 +1527,8 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
} }
if (keyPairName != null) { if (keyPairName != null) {
SearchBuilder<UserVmDetailVO> vmDetailSearchKeys = userVmDetailsDao.createSearchBuilder(); SearchBuilder<VMInstanceDetailVO> vmDetailSearchKeys = vmInstanceDetailsDao.createSearchBuilder();
SearchBuilder<UserVmDetailVO> vmDetailSearchVmIds = userVmDetailsDao.createSearchBuilder(); SearchBuilder<VMInstanceDetailVO> vmDetailSearchVmIds = vmInstanceDetailsDao.createSearchBuilder();
vmDetailSearchKeys.and(vmDetailSearchKeys.entity().getName(), Op.EQ).values(SSH_PUBLIC_KEY); vmDetailSearchKeys.and(vmDetailSearchKeys.entity().getName(), Op.EQ).values(SSH_PUBLIC_KEY);
SearchBuilder<SSHKeyPairVO> sshKeyPairSearch = sshKeyPairDao.createSearchBuilder(); SearchBuilder<SSHKeyPairVO> sshKeyPairSearch = sshKeyPairDao.createSearchBuilder();

View File

@ -16,6 +16,44 @@
// under the License. // under the License.
package com.cloud.api.query.dao; package com.cloud.api.query.dao;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import javax.inject.Inject;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.annotation.AnnotationService;
import org.apache.cloudstack.annotation.dao.AnnotationDao;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
import org.apache.cloudstack.api.ResponseObject.ResponseView;
import org.apache.cloudstack.api.response.NicExtraDhcpOptionResponse;
import org.apache.cloudstack.api.response.NicResponse;
import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
import org.apache.cloudstack.api.response.SecurityGroupResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VnfNicResponse;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.query.QueryService;
import org.apache.cloudstack.vm.lease.VMLeaseManager;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import com.cloud.api.ApiDBUtils; import com.cloud.api.ApiDBUtils;
import com.cloud.api.ApiResponseHelper; import com.cloud.api.ApiResponseHelper;
import com.cloud.api.query.vo.UserVmJoinVO; import com.cloud.api.query.vo.UserVmJoinVO;
@ -44,50 +82,14 @@ import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.net.Dhcp; import com.cloud.utils.net.Dhcp;
import com.cloud.vm.UserVmDetailVO;
import com.cloud.vm.UserVmManager; import com.cloud.vm.UserVmManager;
import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.VmStats; import com.cloud.vm.VmStats;
import com.cloud.vm.dao.NicExtraDhcpOptionDao; import com.cloud.vm.dao.NicExtraDhcpOptionDao;
import com.cloud.vm.dao.NicSecondaryIpVO; import com.cloud.vm.dao.NicSecondaryIpVO;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import org.apache.cloudstack.affinity.AffinityGroupResponse;
import org.apache.cloudstack.annotation.AnnotationService;
import org.apache.cloudstack.annotation.dao.AnnotationDao;
import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.ApiConstants.VMDetails;
import org.apache.cloudstack.api.ResponseObject.ResponseView;
import org.apache.cloudstack.api.response.NicExtraDhcpOptionResponse;
import org.apache.cloudstack.api.response.NicResponse;
import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
import org.apache.cloudstack.api.response.SecurityGroupResponse;
import org.apache.cloudstack.api.response.UserVmResponse;
import org.apache.cloudstack.api.response.VnfNicResponse;
import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.query.QueryService;
import org.apache.cloudstack.vm.lease.VMLeaseManager;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import javax.inject.Inject;
import java.text.DecimalFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@Component @Component
public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJoinVO, UserVmResponse> implements UserVmJoinDao { public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJoinVO, UserVmResponse> implements UserVmJoinDao {
@ -97,7 +99,7 @@ public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJo
@Inject @Inject
public AccountManager _accountMgr; public AccountManager _accountMgr;
@Inject @Inject
private UserVmDetailsDao _userVmDetailsDao; private VMInstanceDetailsDao _vmInstanceDetailsDao;
@Inject @Inject
private UserDao _userDao; private UserDao _userDao;
@Inject @Inject
@ -415,17 +417,17 @@ public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJo
// set resource details map // set resource details map
// Allow passing details to end user // Allow passing details to end user
// Honour the display field and only return if display is set to true // Honour the display field and only return if display is set to true
List<UserVmDetailVO> vmDetails = _userVmDetailsDao.listDetails(userVm.getId(), true); List<VMInstanceDetailVO> vmDetails = _vmInstanceDetailsDao.listDetails(userVm.getId(), true);
if (vmDetails != null) { if (vmDetails != null) {
Map<String, String> resourceDetails = new HashMap<String, String>(); Map<String, String> resourceDetails = new HashMap<String, String>();
for (UserVmDetailVO userVmDetailVO : vmDetails) { for (VMInstanceDetailVO vmInstanceDetailVO : vmDetails) {
if (!userVmDetailVO.getName().startsWith(ApiConstants.PROPERTIES) || if (!vmInstanceDetailVO.getName().startsWith(ApiConstants.PROPERTIES) ||
(UserVmManager.DisplayVMOVFProperties.value() && userVmDetailVO.getName().startsWith(ApiConstants.PROPERTIES))) { (UserVmManager.DisplayVMOVFProperties.value() && vmInstanceDetailVO.getName().startsWith(ApiConstants.PROPERTIES))) {
resourceDetails.put(userVmDetailVO.getName(), userVmDetailVO.getValue()); resourceDetails.put(vmInstanceDetailVO.getName(), vmInstanceDetailVO.getValue());
} }
if ((ApiConstants.BootType.UEFI.toString()).equalsIgnoreCase(userVmDetailVO.getName())) { if ((ApiConstants.BootType.UEFI.toString()).equalsIgnoreCase(vmInstanceDetailVO.getName())) {
userVmResponse.setBootType("Uefi"); userVmResponse.setBootType("Uefi");
userVmResponse.setBootMode(userVmDetailVO.getValue().toLowerCase()); userVmResponse.setBootMode(vmInstanceDetailVO.getValue().toLowerCase());
} }
} }

View File

@ -89,7 +89,7 @@ import com.cloud.utils.db.TransactionStatus;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.StateListener; import com.cloud.utils.fsm.StateListener;
import com.cloud.utils.fsm.StateMachine2; import com.cloud.utils.fsm.StateMachine2;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
@ -97,7 +97,7 @@ import com.cloud.vm.VirtualMachine.Event;
import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.VmDetailConstants; import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.dao.VMSnapshotDao; import com.cloud.vm.snapshot.dao.VMSnapshotDao;
@ -130,7 +130,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
@Inject @Inject
protected UserVmDao _userVMDao; protected UserVmDao _userVMDao;
@Inject @Inject
protected UserVmDetailsDao _userVmDetailsDao; protected VMInstanceDetailsDao _vmInstanceDetailsDao;
@Inject @Inject
ClusterDao _clusterDao; ClusterDao _clusterDao;
@Inject @Inject
@ -660,7 +660,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
} }
protected Map<String, String> getVmDetailsForCapacityCalculation(long vmId) { protected Map<String, String> getVmDetailsForCapacityCalculation(long vmId) {
return _userVmDetailsDao.listDetailsKeyPairs(vmId, return _vmInstanceDetailsDao.listDetailsKeyPairs(vmId,
List.of(VmDetailConstants.CPU_OVER_COMMIT_RATIO, List.of(VmDetailConstants.CPU_OVER_COMMIT_RATIO,
VmDetailConstants.MEMORY_OVER_COMMIT_RATIO, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO,
UsageEventVO.DynamicParameters.memory.name(), UsageEventVO.DynamicParameters.memory.name(),
@ -769,7 +769,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
} else { } else {
// signal if not done already, that the VM has been stopped for skip.counting.hours, // signal if not done already, that the VM has been stopped for skip.counting.hours,
// hence capacity will not be reserved anymore. // hence capacity will not be reserved anymore.
UserVmDetailVO messageSentFlag = _userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.MESSAGE_RESERVED_CAPACITY_FREED_FLAG); VMInstanceDetailVO messageSentFlag = _vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.MESSAGE_RESERVED_CAPACITY_FREED_FLAG);
if (messageSentFlag == null || !Boolean.valueOf(messageSentFlag.getValue())) { if (messageSentFlag == null || !Boolean.valueOf(messageSentFlag.getValue())) {
_messageBus.publish(_name, "VM_ReservedCapacity_Free", PublishScope.LOCAL, vm); _messageBus.publish(_name, "VM_ReservedCapacity_Free", PublishScope.LOCAL, vm);

View File

@ -146,7 +146,7 @@ import com.cloud.vm.VirtualMachineManager;
import com.cloud.vm.VirtualMachineName; import com.cloud.vm.VirtualMachineName;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.ConsoleProxyDao; import com.cloud.vm.dao.ConsoleProxyDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
@ -208,7 +208,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
@Inject @Inject
private PrimaryDataStoreDao primaryDataStoreDao; private PrimaryDataStoreDao primaryDataStoreDao;
@Inject @Inject
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private ResourceManager resourceManager; private ResourceManager resourceManager;
@Inject @Inject
@ -1244,7 +1244,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
final Certificate certificate = caManager.issueCertificate(null, Arrays.asList(profile.getHostName(), profile.getInstanceName()), final Certificate certificate = caManager.issueCertificate(null, Arrays.asList(profile.getHostName(), profile.getInstanceName()),
new ArrayList<>(ipAddressDetails.values()), CAManager.CertValidityPeriod.value(), null); new ArrayList<>(ipAddressDetails.values()), CAManager.CertValidityPeriod.value(), null);
ConsoleProxyVO vm = consoleProxyDao.findById(profile.getId()); ConsoleProxyVO vm = consoleProxyDao.findById(profile.getId());
Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vm.getId()); Map<String, String> details = vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
vm.setDetails(details); vm.setDetails(details);
StringBuilder buf = profile.getBootArgsBuilder(); StringBuilder buf = profile.getBootArgsBuilder();

View File

@ -72,7 +72,7 @@ import com.cloud.utils.component.AdapterBase;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.host.dao.HostDetailsDao; import com.cloud.host.dao.HostDetailsDao;
@ -98,7 +98,7 @@ public class FirstFitPlanner extends AdapterBase implements DeploymentClusterPla
@Inject @Inject
protected UserVmDao vmDao; protected UserVmDao vmDao;
@Inject @Inject
protected UserVmDetailsDao vmDetailsDao; protected VMInstanceDetailsDao vmDetailsDao;
@Inject @Inject
protected VMInstanceDao vmInstanceDao; protected VMInstanceDao vmInstanceDao;
@Inject @Inject

View File

@ -77,7 +77,7 @@ import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicSecondaryIpDao; import com.cloud.vm.dao.NicSecondaryIpDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
public abstract class HypervisorGuruBase extends AdapterBase implements HypervisorGuru, Configurable { public abstract class HypervisorGuruBase extends AdapterBase implements HypervisorGuru, Configurable {
@ -102,7 +102,7 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis
protected protected
VMInstanceDao virtualMachineDao; VMInstanceDao virtualMachineDao;
@Inject @Inject
private UserVmDetailsDao _userVmDetailsDao; private VMInstanceDetailsDao _vmInstanceDetailsDao;
@Inject @Inject
private NicSecondaryIpDao _nicSecIpDao; private NicSecondaryIpDao _nicSecIpDao;
@Inject @Inject
@ -315,7 +315,7 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis
to.setArch("x86_64"); to.setArch("x86_64");
} }
Map<String, String> detailsInVm = _userVmDetailsDao.listDetailsKeyPairs(vm.getId()); Map<String, String> detailsInVm = _vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
if (detailsInVm != null) { if (detailsInVm != null) {
to.setDetails(detailsInVm); to.setDetails(detailsInVm);
addExtraConfig(detailsInVm, to, vm.getAccountId(), vm.getHypervisorType()); addExtraConfig(detailsInVm, to, vm.getAccountId(), vm.getHypervisorType());

View File

@ -23,12 +23,13 @@ import com.cloud.offering.ServiceOffering;
import com.cloud.service.ServiceOfferingDetailsVO; import com.cloud.service.ServiceOfferingDetailsVO;
import com.cloud.service.dao.ServiceOfferingDetailsDao; import com.cloud.service.dao.ServiceOfferingDetailsDao;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
@ -46,7 +47,7 @@ public class DpdkHelperImpl implements DpdkHelper {
@Inject @Inject
private VMInstanceDao vmInstanceDao; private VMInstanceDao vmInstanceDao;
@Inject @Inject
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
protected Logger logger = LogManager.getLogger(getClass()); protected Logger logger = LogManager.getLogger(getClass());
@ -93,7 +94,7 @@ public class DpdkHelperImpl implements DpdkHelper {
return false; return false;
} }
List<UserVmDetailVO> details = userVmDetailsDao.listDetails(vm.getId()); List<VMInstanceDetailVO> details = vmInstanceDetailsDao.listDetails(vm.getId());
List<ServiceOfferingDetailsVO> offeringDetails = serviceOfferingDetailsDao.listDetails(vm.getServiceOfferingId()); List<ServiceOfferingDetailsVO> offeringDetails = serviceOfferingDetailsDao.listDetails(vm.getServiceOfferingId());
if (!hasRequiredDPDKConfigurations(details, offeringDetails)) { if (!hasRequiredDPDKConfigurations(details, offeringDetails)) {
@ -106,13 +107,13 @@ public class DpdkHelperImpl implements DpdkHelper {
/** /**
* True if VM is DPDK enabled. NUMA and HUGEPAGES configurations must be present on VM or service offering details * True if VM is DPDK enabled. NUMA and HUGEPAGES configurations must be present on VM or service offering details
*/ */
private boolean hasRequiredDPDKConfigurations(List<UserVmDetailVO> details, List<ServiceOfferingDetailsVO> offeringDetails) { private boolean hasRequiredDPDKConfigurations(List<VMInstanceDetailVO> details, List<ServiceOfferingDetailsVO> offeringDetails) {
if (CollectionUtils.isEmpty(details)) { if (CollectionUtils.isEmpty(details)) {
return hasValidDPDKConfigurationsOnServiceOffering(false, false, offeringDetails); return hasValidDPDKConfigurationsOnServiceOffering(false, false, offeringDetails);
} else { } else {
boolean isNumaSet = false; boolean isNumaSet = false;
boolean isHugePagesSet = false; boolean isHugePagesSet = false;
for (UserVmDetailVO detail : details) { for (VMInstanceDetailVO detail : details) {
if (detail.getName().equals(DPDK_NUMA)) { if (detail.getName().equals(DPDK_NUMA)) {
isNumaSet = true; isNumaSet = true;
} else if (detail.getName().equals(DPDK_HUGE_PAGES)) { } else if (detail.getName().equals(DPDK_HUGE_PAGES)) {

View File

@ -66,7 +66,7 @@ import com.cloud.utils.db.Transaction;
import com.cloud.utils.db.TransactionCallback; import com.cloud.utils.db.TransactionCallback;
import com.cloud.utils.db.TransactionStatus; import com.cloud.utils.db.TransactionStatus;
import com.cloud.vm.dao.NicDetailsDao; import com.cloud.vm.dao.NicDetailsDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
@Component @Component
public class ResourceMetaDataManagerImpl extends ManagerBase implements ResourceMetaDataService, ResourceMetaDataManager { public class ResourceMetaDataManagerImpl extends ManagerBase implements ResourceMetaDataService, ResourceMetaDataManager {
@ -75,7 +75,7 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource
@Inject @Inject
NicDetailsDao _nicDetailDao; NicDetailsDao _nicDetailDao;
@Inject @Inject
UserVmDetailsDao _userVmDetailDao; VMInstanceDetailsDao _userVmDetailDao;
@Inject @Inject
DataCenterDetailsDao _dcDetailsDao; DataCenterDetailsDao _dcDetailsDao;
@Inject @Inject

View File

@ -84,14 +84,14 @@ import com.cloud.utils.fsm.StateMachine2;
import com.cloud.vm.Nic; import com.cloud.vm.Nic;
import com.cloud.vm.NicProfile; import com.cloud.vm.NicProfile;
import com.cloud.vm.ReservationContext; import com.cloud.vm.ReservationContext;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.VirtualMachineManager;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.VmDetailConstants; import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
public class ConfigDriveNetworkElement extends AdapterBase implements NetworkElement, public class ConfigDriveNetworkElement extends AdapterBase implements NetworkElement,
UserDataServiceProvider, DhcpServiceProvider, DnsServiceProvider, UserDataServiceProvider, DhcpServiceProvider, DnsServiceProvider,
@ -104,7 +104,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
@Inject @Inject
UserVmDao _userVmDao; UserVmDao _userVmDao;
@Inject @Inject
UserVmDetailsDao _userVmDetailsDao; VMInstanceDetailsDao _vmInstanceDetailsDao;
@Inject @Inject
ConfigurationManager _configMgr; ConfigurationManager _configMgr;
@Inject @Inject
@ -224,7 +224,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
} }
private String getSshKey(VirtualMachineProfile profile) { private String getSshKey(VirtualMachineProfile profile) {
final UserVmDetailVO vmDetailSshKey = _userVmDetailsDao.findDetail(profile.getId(), VmDetailConstants.SSH_PUBLIC_KEY); final VMInstanceDetailVO vmDetailSshKey = _vmInstanceDetailsDao.findDetail(profile.getId(), VmDetailConstants.SSH_PUBLIC_KEY);
return (vmDetailSshKey!=null ? vmDetailSshKey.getValue() : null); return (vmDetailSshKey!=null ? vmDetailSshKey.getValue() : null);
} }
@ -299,7 +299,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
final String password_encrypted = DBEncryptionUtil.encrypt(password); final String password_encrypted = DBEncryptionUtil.encrypt(password);
final UserVmVO userVmVO = _userVmDao.findById(vm.getId()); final UserVmVO userVmVO = _userVmDao.findById(vm.getId());
_userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.PASSWORD, password_encrypted, false); _vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.PASSWORD, password_encrypted, false);
userVmVO.setUpdateParameters(true); userVmVO.setUpdateParameters(true);
_userVmDao.update(userVmVO.getId(), userVmVO); _userVmDao.update(userVmVO.getId(), userVmVO);
@ -530,7 +530,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
} }
private Location getConfigDriveLocation(long vmId) { private Location getConfigDriveLocation(long vmId) {
final UserVmDetailVO vmDetailConfigDriveLocation = _userVmDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION); final VMInstanceDetailVO vmDetailConfigDriveLocation = _vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION);
if (vmDetailConfigDriveLocation != null) { if (vmDetailConfigDriveLocation != null) {
if (Location.HOST.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) { if (Location.HOST.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) {
return Location.HOST; return Location.HOST;
@ -544,7 +544,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
} }
private boolean isConfigDriveIsoOnHostCache(long vmId) { private boolean isConfigDriveIsoOnHostCache(long vmId) {
final UserVmDetailVO vmDetailConfigDriveLocation = _userVmDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION); final VMInstanceDetailVO vmDetailConfigDriveLocation = _vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION);
if (vmDetailConfigDriveLocation != null && Location.HOST.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) { if (vmDetailConfigDriveLocation != null && Location.HOST.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) {
return true; return true;
} }
@ -552,7 +552,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
} }
private boolean isLastConfigDriveIsoOnHostCache(long vmId) { private boolean isLastConfigDriveIsoOnHostCache(long vmId) {
final UserVmDetailVO vmDetailLastConfigDriveLocation = _userVmDetailsDao.findDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION); final VMInstanceDetailVO vmDetailLastConfigDriveLocation = _vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION);
if (vmDetailLastConfigDriveLocation == null) { if (vmDetailLastConfigDriveLocation == null) {
return isConfigDriveIsoOnHostCache(vmId); return isConfigDriveIsoOnHostCache(vmId);
} }
@ -681,15 +681,15 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
} }
private void updateConfigDriveLocationInVMDetails(long vmId, NetworkElement.Location configDriveLocation) { private void updateConfigDriveLocationInVMDetails(long vmId, NetworkElement.Location configDriveLocation) {
final UserVmDetailVO vmDetailConfigDriveLocation = _userVmDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION); final VMInstanceDetailVO vmDetailConfigDriveLocation = _vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION);
if (vmDetailConfigDriveLocation != null) { if (vmDetailConfigDriveLocation != null) {
if (!configDriveLocation.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) { if (!configDriveLocation.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) {
_userVmDetailsDao.addDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION, vmDetailConfigDriveLocation.getValue(), false); _vmInstanceDetailsDao.addDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION, vmDetailConfigDriveLocation.getValue(), false);
} else { } else {
_userVmDetailsDao.removeDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION); _vmInstanceDetailsDao.removeDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION);
} }
} }
_userVmDetailsDao.addDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION, configDriveLocation.toString(), false); _vmInstanceDetailsDao.addDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION, configDriveLocation.toString(), false);
} }
private Map<String, String> getVMCustomUserdataParamMap(long vmId) { private Map<String, String> getVMCustomUserdataParamMap(long vmId) {

View File

@ -262,7 +262,7 @@ import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicIpAliasDao; import com.cloud.vm.dao.NicIpAliasDao;
import com.cloud.vm.dao.NicIpAliasVO; import com.cloud.vm.dao.NicIpAliasVO;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.google.gson.JsonSyntaxException; import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken; import com.google.gson.reflect.TypeToken;
@ -310,7 +310,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
@Inject protected RemoteAccessVpnDao _vpnDao; @Inject protected RemoteAccessVpnDao _vpnDao;
@Inject protected NicDao _nicDao; @Inject protected NicDao _nicDao;
@Inject private NicIpAliasDao _nicIpAliasDao; @Inject private NicIpAliasDao _nicIpAliasDao;
@Inject private UserVmDetailsDao _vmDetailsDao; @Inject private VMInstanceDetailsDao _vmDetailsDao;
@Inject protected VirtualRouterProviderDao _vrProviderDao; @Inject protected VirtualRouterProviderDao _vrProviderDao;
@Inject private ManagementServerHostDao _msHostDao; @Inject private ManagementServerHostDao _msHostDao;
@Inject private Site2SiteCustomerGatewayDao _s2sCustomerGatewayDao; @Inject private Site2SiteCustomerGatewayDao _s2sCustomerGatewayDao;

View File

@ -215,7 +215,7 @@ import com.cloud.vm.VirtualMachineManager;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.VirtualMachineProfileImpl; import com.cloud.vm.VirtualMachineProfileImpl;
import com.cloud.vm.VmDetailConstants; import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -305,7 +305,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
@Inject @Inject
private ClusterVSMMapDao _clusterVSMMapDao; private ClusterVSMMapDao _clusterVSMMapDao;
@Inject @Inject
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private AnnotationDao annotationDao; private AnnotationDao annotationDao;
@Inject @Inject
@ -1692,8 +1692,8 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
for (VMInstanceVO vm : vms) { for (VMInstanceVO vm : vms) {
GetVncPortAnswer vmVncPortAnswer = (GetVncPortAnswer) _agentMgr.easySend(hostId, new GetVncPortCommand(vm.getId(), vm.getInstanceName())); GetVncPortAnswer vmVncPortAnswer = (GetVncPortAnswer) _agentMgr.easySend(hostId, new GetVncPortCommand(vm.getId(), vm.getInstanceName()));
if (vmVncPortAnswer != null) { if (vmVncPortAnswer != null) {
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.KVM_VNC_ADDRESS, vmVncPortAnswer.getAddress(), true); vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.KVM_VNC_ADDRESS, vmVncPortAnswer.getAddress(), true);
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT, String.valueOf(vmVncPortAnswer.getPort()), true); vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT, String.valueOf(vmVncPortAnswer.getPort()), true);
} }
} }
} }

View File

@ -69,12 +69,12 @@ import com.cloud.utils.StringUtils;
import com.cloud.utils.Ternary; import com.cloud.utils.Ternary;
import com.cloud.utils.component.ManagerBase; import com.cloud.utils.component.ManagerBase;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.VirtualMachineProfileImpl; import com.cloud.vm.VirtualMachineProfileImpl;
import com.cloud.vm.VmDetailConstants; import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
public class RollingMaintenanceManagerImpl extends ManagerBase implements RollingMaintenanceManager { public class RollingMaintenanceManagerImpl extends ManagerBase implements RollingMaintenanceManager {
@ -90,7 +90,7 @@ public class RollingMaintenanceManagerImpl extends ManagerBase implements Rollin
@Inject @Inject
private VMInstanceDao vmInstanceDao; private VMInstanceDao vmInstanceDao;
@Inject @Inject
protected UserVmDetailsDao userVmDetailsDao; protected VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private ServiceOfferingDao serviceOfferingDao; private ServiceOfferingDao serviceOfferingDao;
@Inject @Inject
@ -689,12 +689,12 @@ public class RollingMaintenanceManagerImpl extends ManagerBase implements Rollin
return new Ternary<>(cpu, speed, ramSize); return new Ternary<>(cpu, speed, ramSize);
} }
List<UserVmDetailVO> vmDetails = userVmDetailsDao.listDetails(runningVM.getId()); List<VMInstanceDetailVO> vmDetails = vmInstanceDetailsDao.listDetails(runningVM.getId());
if (CollectionUtils.isEmpty(vmDetails)) { if (CollectionUtils.isEmpty(vmDetails)) {
return new Ternary<>(cpu, speed, ramSize); return new Ternary<>(cpu, speed, ramSize);
} }
for (UserVmDetailVO vmDetail : vmDetails) { for (VMInstanceDetailVO vmDetail : vmDetails) {
if (StringUtils.isBlank(vmDetail.getName()) || StringUtils.isBlank(vmDetail.getValue())) { if (StringUtils.isBlank(vmDetail.getName()) || StringUtils.isBlank(vmDetail.getValue())) {
continue; continue;
} }

View File

@ -848,7 +848,7 @@ import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.InstanceGroupVO; import com.cloud.vm.InstanceGroupVO;
import com.cloud.vm.NicVO; import com.cloud.vm.NicVO;
import com.cloud.vm.SecondaryStorageVmVO; import com.cloud.vm.SecondaryStorageVmVO;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmManager; import com.cloud.vm.UserVmManager;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
@ -863,7 +863,7 @@ import com.cloud.vm.dao.InstanceGroupDao;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.SecondaryStorageVmDao; import com.cloud.vm.dao.SecondaryStorageVmDao;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
public class ManagementServerImpl extends ManagerBase implements ManagementServer, Configurable { public class ManagementServerImpl extends ManagerBase implements ManagementServer, Configurable {
@ -894,7 +894,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
@Inject @Inject
private ClusterDao _clusterDao; private ClusterDao _clusterDao;
@Inject @Inject
protected UserVmDetailsDao _UserVmDetailsDao; protected VMInstanceDetailsDao _vmInstanceDetailsDao;
@Inject @Inject
private SecondaryStorageVmDao _secStorageVmDao; private SecondaryStorageVmDao _secStorageVmDao;
@Inject @Inject
@ -1416,10 +1416,10 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
} }
protected Pair<Boolean, List<HostVO>> filterUefiHostsForMigration(List<HostVO> allHosts, List<HostVO> filteredHosts, VirtualMachine vm) { protected Pair<Boolean, List<HostVO>> filterUefiHostsForMigration(List<HostVO> allHosts, List<HostVO> filteredHosts, VirtualMachine vm) {
UserVmDetailVO userVmDetailVO = _UserVmDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString()); VMInstanceDetailVO vmInstanceDetailVO = _vmInstanceDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString());
if (userVmDetailVO != null && if (vmInstanceDetailVO != null &&
(ApiConstants.BootMode.LEGACY.toString().equalsIgnoreCase(userVmDetailVO.getValue()) || (ApiConstants.BootMode.LEGACY.toString().equalsIgnoreCase(vmInstanceDetailVO.getValue()) ||
ApiConstants.BootMode.SECURE.toString().equalsIgnoreCase(userVmDetailVO.getValue()))) { ApiConstants.BootMode.SECURE.toString().equalsIgnoreCase(vmInstanceDetailVO.getValue()))) {
logger.info(" Live Migration of UEFI enabled VM : " + vm.getInstanceName() + " is not supported"); logger.info(" Live Migration of UEFI enabled VM : " + vm.getInstanceName() + " is not supported");
if (CollectionUtils.isEmpty(filteredHosts)) { if (CollectionUtils.isEmpty(filteredHosts)) {
filteredHosts = new ArrayList<>(allHosts); filteredHosts = new ArrayList<>(allHosts);

View File

@ -215,7 +215,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.NoTransitionException; import com.cloud.utils.fsm.NoTransitionException;
import com.cloud.utils.fsm.StateMachine2; import com.cloud.utils.fsm.StateMachine2;
import com.cloud.vm.DiskProfile; import com.cloud.vm.DiskProfile;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmManager; import com.cloud.vm.UserVmManager;
import com.cloud.vm.UserVmService; import com.cloud.vm.UserVmService;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
@ -237,7 +237,7 @@ import com.cloud.vm.VmWorkResizeVolume;
import com.cloud.vm.VmWorkSerializer; import com.cloud.vm.VmWorkSerializer;
import com.cloud.vm.VmWorkTakeVolumeSnapshot; import com.cloud.vm.VmWorkTakeVolumeSnapshot;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.VMSnapshotVO; import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao; import com.cloud.vm.snapshot.dao.VMSnapshotDao;
@ -283,7 +283,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
@Inject @Inject
private UserVmDao _userVmDao; private UserVmDao _userVmDao;
@Inject @Inject
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private UserVmService _userVmService; private UserVmService _userVmService;
@Inject @Inject
@ -1597,13 +1597,13 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
_volsDao.update(volume.getId(), volume); _volsDao.update(volume.getId(), volume);
if (Volume.Type.ROOT.equals(volume.getVolumeType()) && userVm != null) { if (Volume.Type.ROOT.equals(volume.getVolumeType()) && userVm != null) {
UserVmDetailVO userVmDetailVO = userVmDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE); VMInstanceDetailVO vmInstanceDetailVO = vmInstanceDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
if (userVmDetailVO != null) { if (vmInstanceDetailVO != null) {
userVmDetailVO.setValue(String.valueOf(newSize/ GiB_TO_BYTES)); vmInstanceDetailVO.setValue(String.valueOf(newSize/ GiB_TO_BYTES));
userVmDetailsDao.update(userVmDetailVO.getId(), userVmDetailVO); vmInstanceDetailsDao.update(vmInstanceDetailVO.getId(), vmInstanceDetailVO);
} else { } else {
UserVmDetailVO detailVO = new UserVmDetailVO(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE, String.valueOf(newSize/ GiB_TO_BYTES), true); VMInstanceDetailVO detailVO = new VMInstanceDetailVO(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE, String.valueOf(newSize/ GiB_TO_BYTES), true);
userVmDetailsDao.persist(detailVO); vmInstanceDetailsDao.persist(detailVO);
} }
} }

View File

@ -59,8 +59,6 @@ import javax.naming.ConfigurationException;
import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.ParserConfigurationException;
import com.cloud.deploy.DeploymentPlan;
import com.cloud.network.NetworkService;
import org.apache.cloudstack.acl.ControlledEntity; import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.ControlledEntity.ACLType; import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType; import org.apache.cloudstack.acl.SecurityChecker.AccessType;
@ -116,6 +114,8 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManager; import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManager;
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore; import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver; import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory; import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo; import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService; import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
@ -140,9 +140,9 @@ import org.apache.cloudstack.storage.template.VnfTemplateManager;
import org.apache.cloudstack.userdata.UserDataManager; import org.apache.cloudstack.userdata.UserDataManager;
import org.apache.cloudstack.utils.bytescale.ByteScaleUtils; import org.apache.cloudstack.utils.bytescale.ByteScaleUtils;
import org.apache.cloudstack.utils.security.ParserUtils; import org.apache.cloudstack.utils.security.ParserUtils;
import org.apache.cloudstack.vm.UnmanagedVMsManager;
import org.apache.cloudstack.vm.lease.VMLeaseManager; import org.apache.cloudstack.vm.lease.VMLeaseManager;
import org.apache.cloudstack.vm.schedule.VMScheduleManager; import org.apache.cloudstack.vm.schedule.VMScheduleManager;
import org.apache.cloudstack.vm.UnmanagedVMsManager;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.math.NumberUtils; import org.apache.commons.lang.math.NumberUtils;
@ -211,6 +211,7 @@ import com.cloud.dc.dao.HostPodDao;
import com.cloud.dc.dao.VlanDao; import com.cloud.dc.dao.VlanDao;
import com.cloud.deploy.DataCenterDeployment; import com.cloud.deploy.DataCenterDeployment;
import com.cloud.deploy.DeployDestination; import com.cloud.deploy.DeployDestination;
import com.cloud.deploy.DeploymentPlan;
import com.cloud.deploy.DeploymentPlanner; import com.cloud.deploy.DeploymentPlanner;
import com.cloud.deploy.DeploymentPlanner.ExcludeList; import com.cloud.deploy.DeploymentPlanner.ExcludeList;
import com.cloud.deploy.DeploymentPlanningManager; import com.cloud.deploy.DeploymentPlanningManager;
@ -261,6 +262,7 @@ import com.cloud.network.Network.IpAddresses;
import com.cloud.network.Network.Provider; import com.cloud.network.Network.Provider;
import com.cloud.network.Network.Service; import com.cloud.network.Network.Service;
import com.cloud.network.NetworkModel; import com.cloud.network.NetworkModel;
import com.cloud.network.NetworkService;
import com.cloud.network.Networks.TrafficType; import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetwork; import com.cloud.network.PhysicalNetwork;
import com.cloud.network.as.AutoScaleManager; import com.cloud.network.as.AutoScaleManager;
@ -390,16 +392,13 @@ import com.cloud.vm.dao.InstanceGroupVMMapDao;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicExtraDhcpOptionDao; import com.cloud.vm.dao.NicExtraDhcpOptionDao;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VmStatsDao; import com.cloud.vm.dao.VmStatsDao;
import com.cloud.vm.snapshot.VMSnapshotManager; import com.cloud.vm.snapshot.VMSnapshotManager;
import com.cloud.vm.snapshot.VMSnapshotVO; import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao; import com.cloud.vm.snapshot.dao.VMSnapshotDao;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
public class UserVmManagerImpl extends ManagerBase implements UserVmManager, VirtualMachineGuru, Configurable { public class UserVmManagerImpl extends ManagerBase implements UserVmManager, VirtualMachineGuru, Configurable {
@ -491,7 +490,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
@Inject @Inject
private SSHKeyPairDao _sshKeyPairDao; private SSHKeyPairDao _sshKeyPairDao;
@Inject @Inject
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private HypervisorCapabilitiesDao _hypervisorCapabilitiesDao; private HypervisorCapabilitiesDao _hypervisorCapabilitiesDao;
@Inject @Inject
@ -1060,7 +1059,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
} }
protected void removeEncryptedPasswordFromUserVmVoDetails(long vmId) { protected void removeEncryptedPasswordFromUserVmVoDetails(long vmId) {
userVmDetailsDao.removeDetail(vmId, VmDetailConstants.ENCRYPTED_PASSWORD); vmInstanceDetailsDao.removeDetail(vmId, VmDetailConstants.ENCRYPTED_PASSWORD);
} }
private boolean resetVMSSHKeyInternal(Long vmId, String sshPublicKeys, String keypairnames) throws ResourceUnavailableException, InsufficientCapacityException { private boolean resetVMSSHKeyInternal(Long vmId, String sshPublicKeys, String keypairnames) throws ResourceUnavailableException, InsufficientCapacityException {
@ -2863,20 +2862,20 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
final List<String> userReadOnlySettings = Stream.of(QueryService.UserVMReadOnlyDetails.value().split(",")) final List<String> userReadOnlySettings = Stream.of(QueryService.UserVMReadOnlyDetails.value().split(","))
.map(item -> (item).trim()) .map(item -> (item).trim())
.collect(Collectors.toList()); .collect(Collectors.toList());
List<UserVmDetailVO> existingDetails = userVmDetailsDao.listDetails(id); List<VMInstanceDetailVO> existingDetails = vmInstanceDetailsDao.listDetails(id);
if (cleanupDetails){ if (cleanupDetails){
if (caller != null && caller.getType() == Account.Type.ADMIN) { if (caller != null && caller.getType() == Account.Type.ADMIN) {
for (final UserVmDetailVO detail : existingDetails) { for (final VMInstanceDetailVO detail : existingDetails) {
if (detail != null && detail.isDisplay() && !isExtraConfig(detail.getName())) { if (detail != null && detail.isDisplay() && !isExtraConfig(detail.getName())) {
userVmDetailsDao.removeDetail(id, detail.getName()); vmInstanceDetailsDao.removeDetail(id, detail.getName());
} }
} }
} else { } else {
for (final UserVmDetailVO detail : existingDetails) { for (final VMInstanceDetailVO detail : existingDetails) {
if (detail != null && !userDenyListedSettings.contains(detail.getName()) if (detail != null && !userDenyListedSettings.contains(detail.getName())
&& !userReadOnlySettings.contains(detail.getName()) && detail.isDisplay() && !userReadOnlySettings.contains(detail.getName()) && detail.isDisplay()
&& !isExtraConfig(detail.getName())) { && !isExtraConfig(detail.getName())) {
userVmDetailsDao.removeDetail(id, detail.getName()); vmInstanceDetailsDao.removeDetail(id, detail.getName());
} }
} }
} }
@ -2909,7 +2908,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
} }
} }
// Add any existing user denied or read-only details. We do it here because admins would already provide these (or can delete them). // Add any existing user denied or read-only details. We do it here because admins would already provide these (or can delete them).
for (final UserVmDetailVO detail : existingDetails) { for (final VMInstanceDetailVO detail : existingDetails) {
if (userDenyListedSettings.contains(detail.getName()) || userReadOnlySettings.contains(detail.getName())) { if (userDenyListedSettings.contains(detail.getName()) || userReadOnlySettings.contains(detail.getName())) {
details.put(detail.getName(), detail.getValue()); details.put(detail.getName(), detail.getValue());
} }
@ -2917,7 +2916,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
} }
// ensure details marked as non-displayable are maintained, regardless of admin or not // ensure details marked as non-displayable are maintained, regardless of admin or not
for (final UserVmDetailVO existingDetail : existingDetails) { for (final VMInstanceDetailVO existingDetail : existingDetails) {
if (!existingDetail.isDisplay() || isExtraConfig(existingDetail.getName())) { if (!existingDetail.isDisplay() || isExtraConfig(existingDetail.getName())) {
details.put(existingDetail.getName(), existingDetail.getValue()); details.put(existingDetail.getName(), existingDetail.getValue());
} }
@ -3316,7 +3315,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
} }
additonalParams.put(VirtualMachineProfile.Param.BootIntoSetup, cmd.getBootIntoSetup()); additonalParams.put(VirtualMachineProfile.Param.BootIntoSetup, cmd.getBootIntoSetup());
} }
UserVmDetailVO uefiDetail = userVmDetailsDao.findDetail(cmd.getId(), ApiConstants.BootType.UEFI.toString()); VMInstanceDetailVO uefiDetail = vmInstanceDetailsDao.findDetail(cmd.getId(), ApiConstants.BootType.UEFI.toString());
if (uefiDetail != null) { if (uefiDetail != null) {
addVmUefiBootOptionsToParams(additonalParams, uefiDetail.getName(), uefiDetail.getValue()); addVmUefiBootOptionsToParams(additonalParams, uefiDetail.getName(), uefiDetail.getValue());
} }
@ -5111,7 +5110,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
podId = adminCmd.getPodId(); podId = adminCmd.getPodId();
clusterId = adminCmd.getClusterId(); clusterId = adminCmd.getClusterId();
} }
UserVmDetailVO uefiDetail = userVmDetailsDao.findDetail(cmd.getEntityId(), ApiConstants.BootType.UEFI.toString()); VMInstanceDetailVO uefiDetail = vmInstanceDetailsDao.findDetail(cmd.getEntityId(), ApiConstants.BootType.UEFI.toString());
if (uefiDetail != null) { if (uefiDetail != null) {
addVmUefiBootOptionsToParams(additionalParams, uefiDetail.getName(), uefiDetail.getValue()); addVmUefiBootOptionsToParams(additionalParams, uefiDetail.getName(), uefiDetail.getValue());
} }
@ -5217,7 +5216,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
@Override @Override
public boolean finalizeVirtualMachineProfile(VirtualMachineProfile profile, DeployDestination dest, ReservationContext context) { public boolean finalizeVirtualMachineProfile(VirtualMachineProfile profile, DeployDestination dest, ReservationContext context) {
UserVmVO vm = _vmDao.findById(profile.getId()); UserVmVO vm = _vmDao.findById(profile.getId());
Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vm.getId()); Map<String, String> details = vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
vm.setDetails(details); vm.setDetails(details);
StringBuilder buf = profile.getBootArgsBuilder(); StringBuilder buf = profile.getBootArgsBuilder();
if (CKS_NODE.equals(vm.getUserVmType()) || SHAREDFSVM.equals(vm.getUserVmType())) { if (CKS_NODE.equals(vm.getUserVmType()) || SHAREDFSVM.equals(vm.getUserVmType())) {
@ -5689,7 +5688,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
// display purposes // display purposes
if (template.isEnablePassword()) { if (template.isEnablePassword()) {
if (vm.getDetail(VmDetailConstants.PASSWORD) != null) { if (vm.getDetail(VmDetailConstants.PASSWORD) != null) {
userVmDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD); vmInstanceDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
} }
vm.setUpdateParameters(false); vm.setUpdateParameters(false);
_vmDao.update(vm.getId(), vm); _vmDao.update(vm.getId(), vm);
@ -6399,7 +6398,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
String instanceUuid = instance.getUuid(); String instanceUuid = instance.getUuid();
// vm must have active lease associated during deployment // vm must have active lease associated during deployment
Map<String, String> vmDetails = userVmDetailsDao.listDetailsKeyPairs(instance.getId(), Map<String, String> vmDetails = vmInstanceDetailsDao.listDetailsKeyPairs(instance.getId(),
List.of(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE, VmDetailConstants.INSTANCE_LEASE_EXECUTION)); List.of(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE, VmDetailConstants.INSTANCE_LEASE_EXECUTION));
String leaseExecution = vmDetails.get(VmDetailConstants.INSTANCE_LEASE_EXECUTION); String leaseExecution = vmDetails.get(VmDetailConstants.INSTANCE_LEASE_EXECUTION);
String leaseExpiryDate = vmDetails.get(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE); String leaseExpiryDate = vmDetails.get(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
@ -6432,7 +6431,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
} }
if (leaseDuration < 1) { if (leaseDuration < 1) {
userVmDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION, vmInstanceDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION,
VMLeaseManager.LeaseActionExecution.DISABLED.name(), false); VMLeaseManager.LeaseActionExecution.DISABLED.name(), false);
ActionEventUtils.onActionEvent(CallContext.current().getCallingUserId(), instance.getAccountId(), instance.getDomainId(), ActionEventUtils.onActionEvent(CallContext.current().getCallingUserId(), instance.getAccountId(), instance.getDomainId(),
EventTypes.VM_LEASE_DISABLED, "Disabling lease on the instance", instance.getId(), ApiCommandResourceType.VirtualMachine.toString()); EventTypes.VM_LEASE_DISABLED, "Disabling lease on the instance", instance.getId(), ApiCommandResourceType.VirtualMachine.toString());
@ -6452,9 +6451,9 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
sdf.setTimeZone(TimeZone.getTimeZone("UTC")); sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
String formattedLeaseExpiryDate = sdf.format(leaseExpiryDate); String formattedLeaseExpiryDate = sdf.format(leaseExpiryDate);
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE, formattedLeaseExpiryDate, false); vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE, formattedLeaseExpiryDate, false);
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION, leaseExpiryAction.name(), false); vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION, leaseExpiryAction.name(), false);
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION, "PENDING", false); vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION, "PENDING", false);
logger.debug("Instance lease for instanceId: {} is configured to expire on: {} with action: {}", vm.getUuid(), formattedLeaseExpiryDate, leaseExpiryAction); logger.debug("Instance lease for instanceId: {} is configured to expire on: {} with action: {}", vm.getUuid(), formattedLeaseExpiryDate, leaseExpiryAction);
} }
@ -6496,7 +6495,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
boolean validXenOrVmwareConfiguration = isValidXenOrVmwareConfiguration(cfg, allowedKeyList); boolean validXenOrVmwareConfiguration = isValidXenOrVmwareConfiguration(cfg, allowedKeyList);
String[] paramArray = cfg.split("="); String[] paramArray = cfg.split("=");
if (validXenOrVmwareConfiguration && paramArray.length == 2) { if (validXenOrVmwareConfiguration && paramArray.length == 2) {
userVmDetailsDao.addDetail(vm.getId(), paramArray[0].trim(), paramArray[1].trim(), true); vmInstanceDetailsDao.addDetail(vm.getId(), paramArray[0].trim(), paramArray[1].trim(), true);
} else { } else {
throw new CloudRuntimeException("Extra config " + cfg + " is not on the list of allowed keys for VMware hypervisor hosts."); throw new CloudRuntimeException("Extra config " + cfg + " is not on the list of allowed keys for VMware hypervisor hosts.");
} }
@ -6525,7 +6524,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
String[] allowedKeyList = XenServerAdditionalConfigAllowList.value().split(","); String[] allowedKeyList = XenServerAdditionalConfigAllowList.value().split(",");
boolean validXenOrVmwareConfiguration = isValidXenOrVmwareConfiguration(cfg, allowedKeyList); boolean validXenOrVmwareConfiguration = isValidXenOrVmwareConfiguration(cfg, allowedKeyList);
if (validXenOrVmwareConfiguration) { if (validXenOrVmwareConfiguration) {
userVmDetailsDao.addDetail(vm.getId(), extraConfigKey + String.valueOf(i), cfg, true); vmInstanceDetailsDao.addDetail(vm.getId(), extraConfigKey + String.valueOf(i), cfg, true);
i++; i++;
} else { } else {
throw new CloudRuntimeException("Extra config " + cfg + " is not on the list of allowed keys for XenServer hypervisor hosts."); throw new CloudRuntimeException("Extra config " + cfg + " is not on the list of allowed keys for XenServer hypervisor hosts.");
@ -6609,7 +6608,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
extraConfigKey += "-" + String.valueOf(i); extraConfigKey += "-" + String.valueOf(i);
extraConfigValue = cfg; extraConfigValue = cfg;
} }
userVmDetailsDao.addDetail(vm.getId(), extraConfigKey, extraConfigValue, true); vmInstanceDetailsDao.addDetail(vm.getId(), extraConfigKey, extraConfigValue, true);
i++; i++;
} }
} }
@ -8794,7 +8793,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
vm.setUpdateParameters(false); vm.setUpdateParameters(false);
_vmDao.loadDetails(vm); _vmDao.loadDetails(vm);
if (vm.getDetail(VmDetailConstants.PASSWORD) != null) { if (vm.getDetail(VmDetailConstants.PASSWORD) != null) {
userVmDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD); vmInstanceDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
} }
_vmDao.update(vm.getId(), vm); _vmDao.update(vm.getId(), vm);
} }
@ -8816,7 +8815,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
VolumeVO resizedVolume = (VolumeVO) vol; VolumeVO resizedVolume = (VolumeVO) vol;
Long size = null; Long size = null;
if (template != null && template.getSize() != null) { if (template != null && template.getSize() != null) {
UserVmDetailVO vmRootDiskSizeDetail = userVmDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE); VMInstanceDetailVO vmRootDiskSizeDetail = vmInstanceDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
if (vmRootDiskSizeDetail == null) { if (vmRootDiskSizeDetail == null) {
size = template.getSize(); size = template.getSize();
} else { } else {
@ -8824,7 +8823,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
if (template.getSize() >= rootDiskSize) { if (template.getSize() >= rootDiskSize) {
size = template.getSize(); size = template.getSize();
if (update) { if (update) {
userVmDetailsDao.remove(vmRootDiskSizeDetail.getId()); vmInstanceDetailsDao.remove(vmRootDiskSizeDetail.getId());
} }
} else { } else {
size = rootDiskSize; size = rootDiskSize;
@ -8865,13 +8864,13 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
if (update) { if (update) {
resizedVolume.setSize(rootDiskSize); resizedVolume.setSize(rootDiskSize);
} }
UserVmDetailVO vmRootDiskSizeDetail = userVmDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE); VMInstanceDetailVO vmRootDiskSizeDetail = vmInstanceDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
if (update) { if (update) {
if (vmRootDiskSizeDetail != null) { if (vmRootDiskSizeDetail != null) {
vmRootDiskSizeDetail.setValue(details.get(VmDetailConstants.ROOT_DISK_SIZE)); vmRootDiskSizeDetail.setValue(details.get(VmDetailConstants.ROOT_DISK_SIZE));
userVmDetailsDao.update(vmRootDiskSizeDetail.getId(), vmRootDiskSizeDetail); vmInstanceDetailsDao.update(vmRootDiskSizeDetail.getId(), vmRootDiskSizeDetail);
} else { } else {
userVmDetailsDao.persist(new UserVmDetailVO(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE, vmInstanceDetailsDao.persist(new VMInstanceDetailVO(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE,
details.get(VmDetailConstants.ROOT_DISK_SIZE), true)); details.get(VmDetailConstants.ROOT_DISK_SIZE), true));
} }
} }
@ -9336,7 +9335,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
private void unmanageVMFromDB(long vmId) { private void unmanageVMFromDB(long vmId) {
VMInstanceVO vm = _vmInstanceDao.findById(vmId); VMInstanceVO vm = _vmInstanceDao.findById(vmId);
userVmDetailsDao.removeDetails(vmId); vmInstanceDetailsDao.removeDetails(vmId);
vm.setState(State.Expunging); vm.setState(State.Expunging);
vm.setRemoved(new Date()); vm.setRemoved(new Date());
_vmInstanceDao.update(vm.getId(), vm); _vmInstanceDao.update(vm.getId(), vm);

View File

@ -109,7 +109,7 @@ import com.cloud.utils.db.TransactionCallbackWithException;
import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn; import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
import com.cloud.utils.db.TransactionStatus; import com.cloud.utils.db.TransactionStatus;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmManager; import com.cloud.vm.UserVmManager;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
@ -123,7 +123,7 @@ import com.cloud.vm.VmWorkJobHandler;
import com.cloud.vm.VmWorkJobHandlerProxy; import com.cloud.vm.VmWorkJobHandlerProxy;
import com.cloud.vm.VmWorkSerializer; import com.cloud.vm.VmWorkSerializer;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.dao.VMSnapshotDao; import com.cloud.vm.snapshot.dao.VMSnapshotDao;
import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao; import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao;
@ -164,7 +164,7 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
@Inject @Inject
protected ServiceOfferingDao _serviceOfferingDao; protected ServiceOfferingDao _serviceOfferingDao;
@Inject @Inject
protected UserVmDetailsDao _userVmDetailsDao; protected VMInstanceDetailsDao _vmInstanceDetailsDao;
@Inject @Inject
protected VMSnapshotDetailsDao _vmSnapshotDetailsDao; protected VMSnapshotDetailsDao _vmSnapshotDetailsDao;
@Inject @Inject
@ -473,9 +473,9 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
protected void addSupportForCustomServiceOffering(long vmId, long serviceOfferingId, long vmSnapshotId) { protected void addSupportForCustomServiceOffering(long vmId, long serviceOfferingId, long vmSnapshotId) {
ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(serviceOfferingId); ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(serviceOfferingId);
if (serviceOfferingVO.isDynamic()) { if (serviceOfferingVO.isDynamic()) {
List<UserVmDetailVO> vmDetails = _userVmDetailsDao.listDetails(vmId); List<VMInstanceDetailVO> vmDetails = _vmInstanceDetailsDao.listDetails(vmId);
List<VMSnapshotDetailsVO> vmSnapshotDetails = new ArrayList<VMSnapshotDetailsVO>(); List<VMSnapshotDetailsVO> vmSnapshotDetails = new ArrayList<VMSnapshotDetailsVO>();
for (UserVmDetailVO detail : vmDetails) { for (VMInstanceDetailVO detail : vmDetails) {
if(detail.getName().equalsIgnoreCase(VmDetailConstants.CPU_NUMBER) || detail.getName().equalsIgnoreCase(VmDetailConstants.CPU_SPEED) || detail.getName().equalsIgnoreCase(VmDetailConstants.MEMORY)) { if(detail.getName().equalsIgnoreCase(VmDetailConstants.CPU_NUMBER) || detail.getName().equalsIgnoreCase(VmDetailConstants.CPU_SPEED) || detail.getName().equalsIgnoreCase(VmDetailConstants.MEMORY)) {
vmSnapshotDetails.add(new VMSnapshotDetailsVO(vmSnapshotId, detail.getName(), detail.getValue(), detail.isDisplay())); vmSnapshotDetails.add(new VMSnapshotDetailsVO(vmSnapshotId, detail.getName(), detail.getValue(), detail.isDisplay()));
} }
@ -812,9 +812,9 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
* @return map * @return map
*/ */
protected Map<String, String> getVmMapDetails(UserVm userVm) { protected Map<String, String> getVmMapDetails(UserVm userVm) {
List<UserVmDetailVO> userVmDetails = _userVmDetailsDao.listDetails(userVm.getId()); List<VMInstanceDetailVO> userVmDetails = _vmInstanceDetailsDao.listDetails(userVm.getId());
Map<String, String> details = new HashMap<String, String>(); Map<String, String> details = new HashMap<String, String>();
for (UserVmDetailVO detail : userVmDetails) { for (VMInstanceDetailVO detail : userVmDetails) {
details.put(detail.getName(), detail.getValue()); details.put(detail.getName(), detail.getValue());
} }
return details; return details;
@ -943,11 +943,11 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(vmSnapshotVo.getServiceOfferingId()); ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(vmSnapshotVo.getServiceOfferingId());
if (serviceOfferingVO.isDynamic()) { if (serviceOfferingVO.isDynamic()) {
List<VMSnapshotDetailsVO> vmSnapshotDetails = _vmSnapshotDetailsDao.listDetails(vmSnapshotVo.getId()); List<VMSnapshotDetailsVO> vmSnapshotDetails = _vmSnapshotDetailsDao.listDetails(vmSnapshotVo.getId());
List<UserVmDetailVO> userVmDetails = new ArrayList<UserVmDetailVO>(); List<VMInstanceDetailVO> userVmDetails = new ArrayList<VMInstanceDetailVO>();
for (VMSnapshotDetailsVO detail : vmSnapshotDetails) { for (VMSnapshotDetailsVO detail : vmSnapshotDetails) {
userVmDetails.add(new UserVmDetailVO(userVm.getId(), detail.getName(), detail.getValue(), detail.isDisplay())); userVmDetails.add(new VMInstanceDetailVO(userVm.getId(), detail.getName(), detail.getValue(), detail.isDisplay()));
} }
_userVmDetailsDao.saveDetails(userVmDetails); _vmInstanceDetailsDao.saveDetails(userVmDetails);
} }
} }

View File

@ -63,12 +63,12 @@ import com.cloud.utils.db.EntityManager;
import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.GlobalLock;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.ConsoleSessionVO; import com.cloud.vm.ConsoleSessionVO;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.VirtualMachineManager;
import com.cloud.vm.VmDetailConstants; import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.ConsoleSessionDao; import com.cloud.vm.dao.ConsoleSessionDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
@ -92,7 +92,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
@Inject @Inject
private EntityManager entityManager; private EntityManager entityManager;
@Inject @Inject
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private KeysManager keysManager; private KeysManager keysManager;
@Inject @Inject
@ -344,8 +344,8 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
if (hostVo.getHypervisorType() == Hypervisor.HypervisorType.KVM && if (hostVo.getHypervisorType() == Hypervisor.HypervisorType.KVM &&
(hostVo.getResourceState().equals(ResourceState.ErrorInMaintenance) || (hostVo.getResourceState().equals(ResourceState.ErrorInMaintenance) ||
hostVo.getResourceState().equals(ResourceState.ErrorInPrepareForMaintenance))) { hostVo.getResourceState().equals(ResourceState.ErrorInPrepareForMaintenance))) {
UserVmDetailVO detailAddress = userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_ADDRESS); VMInstanceDetailVO detailAddress = vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_ADDRESS);
UserVmDetailVO detailPort = userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT); VMInstanceDetailVO detailPort = vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT);
if (detailAddress != null && detailPort != null) { if (detailAddress != null && detailPort != null) {
portInfo = new Pair<>(detailAddress.getValue(), Integer.valueOf(detailPort.getValue())); portInfo = new Pair<>(detailAddress.getValue(), Integer.valueOf(detailPort.getValue()));
} else { } else {
@ -372,7 +372,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
} }
String sid = vm.getVncPassword(); String sid = vm.getVncPassword();
UserVmDetailVO details = userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.KEYBOARD); VMInstanceDetailVO details = vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.KEYBOARD);
String tag = vm.getUuid(); String tag = vm.getUuid();
String displayName = vm.getHostName(); String displayName = vm.getHostName();
@ -416,7 +416,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
} }
private String generateConsoleAccessUrl(String rootUrl, ConsoleProxyClientParam param, String token, int vncPort, private String generateConsoleAccessUrl(String rootUrl, ConsoleProxyClientParam param, String token, int vncPort,
VirtualMachine vm, HostVO hostVo, UserVmDetailVO details) { VirtualMachine vm, HostVO hostVo, VMInstanceDetailVO details) {
StringBuilder sb = new StringBuilder(rootUrl); StringBuilder sb = new StringBuilder(rootUrl);
if (param.getHypervHost() != null || !ConsoleProxyManager.NoVncConsoleDefault.value()) { if (param.getHypervHost() != null || !ConsoleProxyManager.NoVncConsoleDefault.value()) {
sb.append("/ajax?token=" + token); sb.append("/ajax?token=" + token);
@ -450,7 +450,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
int port, String sid, String tag, String ticket, int port, String sid, String tag, String ticket,
String sessionUuid, String addr, String sessionUuid, String addr,
String extraSecurityToken, VirtualMachine vm, String extraSecurityToken, VirtualMachine vm,
HostVO hostVo, UserVmDetailVO details, HostVO hostVo, VMInstanceDetailVO details,
Pair<String, Integer> portInfo, String host, Pair<String, Integer> portInfo, String host,
String displayName) { String displayName) {
ConsoleProxyClientParam param = new ConsoleProxyClientParam(); ConsoleProxyClientParam param = new ConsoleProxyClientParam();

View File

@ -93,7 +93,7 @@ import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicDetailsDao; import com.cloud.vm.dao.NicDetailsDao;
import com.cloud.vm.dao.NicExtraDhcpOptionDao; import com.cloud.vm.dao.NicExtraDhcpOptionDao;
import com.cloud.vm.dao.NicSecondaryIpDao; import com.cloud.vm.dao.NicSecondaryIpDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.VMSnapshotVO; import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao; import com.cloud.vm.snapshot.dao.VMSnapshotDao;
@ -125,7 +125,7 @@ public class ResourceCleanupServiceImpl extends ManagerBase implements ResourceC
@Inject @Inject
InlineLoadBalancerNicMapDao inlineLoadBalancerNicMapDao; InlineLoadBalancerNicMapDao inlineLoadBalancerNicMapDao;
@Inject @Inject
UserVmDetailsDao userVmDetailsDao; VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
VMSnapshotDao vmSnapshotDao; VMSnapshotDao vmSnapshotDao;
@Inject @Inject
@ -269,7 +269,7 @@ public class ResourceCleanupServiceImpl extends ManagerBase implements ResourceC
} }
purgeVMVolumes(vmIds, batchSize); purgeVMVolumes(vmIds, batchSize);
purgeVMNics(vmIds, batchSize); purgeVMNics(vmIds, batchSize);
userVmDetailsDao.batchExpungeForResources(vmIds, batchSize); vmInstanceDetailsDao.batchExpungeForResources(vmIds, batchSize);
purgeVMSnapshots(vmIds, batchSize); purgeVMSnapshots(vmIds, batchSize);
autoScaleVmGroupVmMapDao.expungeByVmList(vmIds, batchSize); autoScaleVmGroupVmMapDao.expungeByVmList(vmIds, batchSize);
commandExecLogDao.expungeByVmList(vmIds, batchSize); commandExecLogDao.expungeByVmList(vmIds, batchSize);

View File

@ -139,7 +139,7 @@ import com.cloud.vm.VirtualMachineProfileImpl;
import com.cloud.vm.VmDetailConstants; import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.google.gson.Gson; import com.google.gson.Gson;
import org.apache.cloudstack.acl.ControlledEntity; import org.apache.cloudstack.acl.ControlledEntity;
@ -223,7 +223,7 @@ public class UnmanagedVMsManagerImpl implements UnmanagedVMsManager {
@Inject @Inject
private ResourceLimitService resourceLimitService; private ResourceLimitService resourceLimitService;
@Inject @Inject
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private UserVmManager userVmManager; private UserVmManager userVmManager;
@Inject @Inject

View File

@ -18,23 +18,21 @@
package org.apache.cloudstack.vm.lease; package org.apache.cloudstack.vm.lease;
import com.cloud.api.ApiGsonHelper; import java.util.ArrayList;
import com.cloud.api.query.dao.UserVmJoinDao; import java.util.Calendar;
import com.cloud.api.query.vo.UserVmJoinVO; import java.util.Date;
import com.cloud.event.ActionEventUtils; import java.util.HashMap;
import com.cloud.event.EventTypes; import java.util.HashSet;
import com.cloud.user.Account; import java.util.List;
import com.cloud.user.User; import java.util.Map;
import com.cloud.utils.DateUtil; import java.util.Set;
import com.cloud.utils.Pair; import java.util.concurrent.Executors;
import com.cloud.utils.component.ComponentContext; import java.util.concurrent.ScheduledExecutorService;
import com.cloud.utils.component.ManagerBase; import java.util.concurrent.TimeUnit;
import com.cloud.utils.concurrency.NamedThreadFactory;
import com.cloud.utils.db.GlobalLock; import javax.inject.Inject;
import com.cloud.vm.VmDetailConstants; import javax.naming.ConfigurationException;
import com.cloud.vm.dao.UserVmDetailsDao;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.apache.cloudstack.api.ApiCommandResourceType; import org.apache.cloudstack.api.ApiCommandResourceType;
import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.ApiConstants;
import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd; import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
@ -52,26 +50,29 @@ import org.apache.cloudstack.managed.context.ManagedContextRunnable;
import org.apache.commons.lang3.EnumUtils; import org.apache.commons.lang3.EnumUtils;
import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.lang3.time.DateUtils;
import javax.inject.Inject; import com.cloud.api.ApiGsonHelper;
import javax.naming.ConfigurationException; import com.cloud.api.query.dao.UserVmJoinDao;
import com.cloud.api.query.vo.UserVmJoinVO;
import java.util.ArrayList; import com.cloud.event.ActionEventUtils;
import java.util.Calendar; import com.cloud.event.EventTypes;
import java.util.Date; import com.cloud.user.Account;
import java.util.HashMap; import com.cloud.user.User;
import java.util.HashSet; import com.cloud.utils.DateUtil;
import java.util.List; import com.cloud.utils.Pair;
import java.util.Map; import com.cloud.utils.component.ComponentContext;
import java.util.Set; import com.cloud.utils.component.ManagerBase;
import java.util.concurrent.Executors; import com.cloud.utils.concurrency.NamedThreadFactory;
import java.util.concurrent.ScheduledExecutorService; import com.cloud.utils.db.GlobalLock;
import java.util.concurrent.TimeUnit; import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class VMLeaseManagerImpl extends ManagerBase implements VMLeaseManager, Configurable { public class VMLeaseManagerImpl extends ManagerBase implements VMLeaseManager, Configurable {
private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 5; // 5 seconds private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 5; // 5 seconds
@Inject @Inject
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Inject @Inject
private UserVmJoinDao userVmJoinDao; private UserVmJoinDao userVmJoinDao;
@ -131,7 +132,7 @@ public class VMLeaseManagerImpl extends ManagerBase implements VMLeaseManager, C
List<UserVmJoinVO> leaseExpiringForInstances = userVmJoinDao.listLeaseInstancesExpiringInDays(-1); List<UserVmJoinVO> leaseExpiringForInstances = userVmJoinDao.listLeaseInstancesExpiringInDays(-1);
logger.debug("Total instances found for lease cancellation: {}", leaseExpiringForInstances.size()); logger.debug("Total instances found for lease cancellation: {}", leaseExpiringForInstances.size());
for (UserVmJoinVO instance : leaseExpiringForInstances) { for (UserVmJoinVO instance : leaseExpiringForInstances) {
userVmDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION, vmInstanceDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION,
LeaseActionExecution.CANCELLED.name(), false); LeaseActionExecution.CANCELLED.name(), false);
String leaseCancellationMsg = String.format("Lease is cancelled for the instance: %s (id: %s) ", instance.getName(), instance.getUuid()); String leaseCancellationMsg = String.format("Lease is cancelled for the instance: %s (id: %s) ", instance.getName(), instance.getUuid());
ActionEventUtils.onActionEvent(instance.getUserId(), instance.getAccountId(), instance.getDomainId(), ActionEventUtils.onActionEvent(instance.getUserId(), instance.getAccountId(), instance.getDomainId(),
@ -370,7 +371,7 @@ public class VMLeaseManagerImpl extends ManagerBase implements VMLeaseManager, C
if (VMLeaseManager.class.getSimpleName().equals(params.get(JOB_INITIATOR))) { if (VMLeaseManager.class.getSimpleName().equals(params.get(JOB_INITIATOR))) {
logger.debug("Lease expiry job: {} successfully executed for instanceId: {}", asyncExpiryJob.getId(), asyncExpiryJob.getInstanceId()); logger.debug("Lease expiry job: {} successfully executed for instanceId: {}", asyncExpiryJob.getId(), asyncExpiryJob.getInstanceId());
userVmDetailsDao.addDetail(asyncExpiryJob.getInstanceId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION, LeaseActionExecution.DONE.name(), false); vmInstanceDetailsDao.addDetail(asyncExpiryJob.getInstanceId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION, LeaseActionExecution.DONE.name(), false);
} }
} }
} catch (final Exception e) { } catch (final Exception e) {

View File

@ -49,7 +49,7 @@ import com.cloud.user.dao.UserDao;
import com.cloud.user.dao.UserStatisticsDao; import com.cloud.user.dao.UserStatisticsDao;
import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
public class UserVmJoinDaoImplTest extends GenericDaoBaseWithTagInformationBaseTest<UserVmJoinVO, UserVmResponse> { public class UserVmJoinDaoImplTest extends GenericDaoBaseWithTagInformationBaseTest<UserVmJoinVO, UserVmResponse> {
@ -67,7 +67,7 @@ public class UserVmJoinDaoImplTest extends GenericDaoBaseWithTagInformationBaseT
private AccountManager accountMgr; private AccountManager accountMgr;
@Mock @Mock
private UserVmDetailsDao _userVmDetailsDao; private VMInstanceDetailsDao _vmInstanceDetailsDao;
@Mock @Mock
private UserStatisticsDao userStatsDao; private UserStatisticsDao userStatsDao;

View File

@ -79,7 +79,7 @@ import com.cloud.vm.VirtualMachine.Type;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.VirtualMachineProfileImpl; import com.cloud.vm.VirtualMachineProfileImpl;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import org.apache.cloudstack.affinity.AffinityGroupProcessor; import org.apache.cloudstack.affinity.AffinityGroupProcessor;
import org.apache.cloudstack.affinity.AffinityGroupService; import org.apache.cloudstack.affinity.AffinityGroupService;
@ -182,7 +182,7 @@ public class DeploymentPlanningManagerImplTest {
DedicatedResourceDao _dedicatedDao; DedicatedResourceDao _dedicatedDao;
@Inject @Inject
UserVmDetailsDao vmDetailsDao; VMInstanceDetailsDao vmDetailsDao;
@Inject @Inject
VMTemplateDao templateDao; VMTemplateDao templateDao;
@ -1114,8 +1114,8 @@ public class DeploymentPlanningManagerImplTest {
} }
@Bean @Bean
public UserVmDetailsDao userVmDetailsDao() { public VMInstanceDetailsDao vmInstanceDetailsDao() {
return Mockito.mock(UserVmDetailsDao.class); return Mockito.mock(VMInstanceDetailsDao.class);
} }
@Bean @Bean

View File

@ -22,12 +22,13 @@ import com.cloud.host.dao.HostDao;
import com.cloud.offering.ServiceOffering; import com.cloud.offering.ServiceOffering;
import com.cloud.service.ServiceOfferingDetailsVO; import com.cloud.service.ServiceOfferingDetailsVO;
import com.cloud.service.dao.ServiceOfferingDetailsDao; import com.cloud.service.dao.ServiceOfferingDetailsDao;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@ -54,7 +55,7 @@ public class DpdkHelperImplTest {
@Mock @Mock
VMInstanceDao vmInstanceDao; VMInstanceDao vmInstanceDao;
@Mock @Mock
UserVmDetailsDao userVmDetailsDao; VMInstanceDetailsDao vmInstanceDetailsDao;
@Spy @Spy
@InjectMocks @InjectMocks
@ -73,9 +74,9 @@ public class DpdkHelperImplTest {
@Mock @Mock
ServiceOffering serviceOffering; ServiceOffering serviceOffering;
@Mock @Mock
UserVmDetailVO dpdkNumaVmDetail; VMInstanceDetailVO dpdkNumaVmDetail;
@Mock @Mock
UserVmDetailVO dpdkHugePagesVmDetail; VMInstanceDetailVO dpdkHugePagesVmDetail;
@Mock @Mock
HostVO hostVO; HostVO hostVO;
@Mock @Mock
@ -135,7 +136,7 @@ public class DpdkHelperImplTest {
Mockito.lenient().when(dpdkNumaVmDetail.getValue()).thenReturn(dpdkNumaConf); Mockito.lenient().when(dpdkNumaVmDetail.getValue()).thenReturn(dpdkNumaConf);
Mockito.when(dpdkHugePagesVmDetail.getName()).thenReturn(DpdkHelper.DPDK_HUGE_PAGES); Mockito.when(dpdkHugePagesVmDetail.getName()).thenReturn(DpdkHelper.DPDK_HUGE_PAGES);
Mockito.lenient().when(dpdkHugePagesVmDetail.getValue()).thenReturn(dpdkHugePagesConf); Mockito.lenient().when(dpdkHugePagesVmDetail.getValue()).thenReturn(dpdkHugePagesConf);
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(Arrays.asList(dpdkNumaVmDetail, dpdkHugePagesVmDetail)); Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(Arrays.asList(dpdkNumaVmDetail, dpdkHugePagesVmDetail));
} }
@Test @Test
@ -202,7 +203,7 @@ public class DpdkHelperImplTest {
@Test @Test
public void testIsVMDpdkEnabledGuestTypeMissingConfigurationOnDetails() { public void testIsVMDpdkEnabledGuestTypeMissingConfigurationOnDetails() {
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(Arrays.asList(dpdkNumaVmDetail)); Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(Arrays.asList(dpdkNumaVmDetail));
Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(new ArrayList<>()); Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(new ArrayList<>());
Assert.assertFalse(dpdkHelper.isVMDpdkEnabled(vmId)); Assert.assertFalse(dpdkHelper.isVMDpdkEnabled(vmId));
Mockito.verify(dpdkHelper, Mockito.never()).isHostDpdkEnabled(hostId); Mockito.verify(dpdkHelper, Mockito.never()).isHostDpdkEnabled(hostId);
@ -210,7 +211,7 @@ public class DpdkHelperImplTest {
@Test @Test
public void testIsVMDpdkEnabledGuestTypeEmptyDetails() { public void testIsVMDpdkEnabledGuestTypeEmptyDetails() {
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(new ArrayList<>()); Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(new ArrayList<>());
Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(new ArrayList<>()); Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(new ArrayList<>());
Assert.assertFalse(dpdkHelper.isVMDpdkEnabled(vmId)); Assert.assertFalse(dpdkHelper.isVMDpdkEnabled(vmId));
Mockito.verify(dpdkHelper, Mockito.never()).isHostDpdkEnabled(hostId); Mockito.verify(dpdkHelper, Mockito.never()).isHostDpdkEnabled(hostId);
@ -223,21 +224,21 @@ public class DpdkHelperImplTest {
@Test @Test
public void testIsVMDpdkEnabledGuestTypeMissingConfigurationOnVmDetails() { public void testIsVMDpdkEnabledGuestTypeMissingConfigurationOnVmDetails() {
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(Collections.singletonList(dpdkNumaVmDetail)); Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(Collections.singletonList(dpdkNumaVmDetail));
Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk"); Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk");
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId)); Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
} }
@Test @Test
public void testIsVMDpdkEnabledGuestTypeEmptyVmDetails() { public void testIsVMDpdkEnabledGuestTypeEmptyVmDetails() {
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(new ArrayList<>()); Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(new ArrayList<>());
Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk"); Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk");
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId)); Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
} }
@Test @Test
public void testIsVMDpdkEnabledGuestTypeMixedConfigurationOnDetails() { public void testIsVMDpdkEnabledGuestTypeMixedConfigurationOnDetails() {
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(Collections.singletonList(dpdkNumaVmDetail)); Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(Collections.singletonList(dpdkNumaVmDetail));
Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(Collections.singletonList(dpdkHugePagesDetailVO)); Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(Collections.singletonList(dpdkHugePagesDetailVO));
Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk"); Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk");
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId)); Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));

View File

@ -51,13 +51,13 @@ import com.cloud.utils.fsm.StateMachine2;
import com.cloud.utils.net.Ip; import com.cloud.utils.net.Ip;
import com.cloud.vm.Nic; import com.cloud.vm.Nic;
import com.cloud.vm.NicProfile; import com.cloud.vm.NicProfile;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.VirtualMachineProfileImpl; import com.cloud.vm.VirtualMachineProfileImpl;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.context.CallContext;
@ -127,7 +127,7 @@ public class ConfigDriveNetworkElementTest {
@Mock private ServiceOfferingDao _serviceOfferingDao; @Mock private ServiceOfferingDao _serviceOfferingDao;
@Mock private UserVmDao _vmDao; @Mock private UserVmDao _vmDao;
@Mock private VMInstanceDao _vmInstanceDao; @Mock private VMInstanceDao _vmInstanceDao;
@Mock private UserVmDetailsDao _userVmDetailsDao; @Mock private VMInstanceDetailsDao _vmInstanceDetailsDao;
@Mock private NetworkDao _networkDao; @Mock private NetworkDao _networkDao;
@Mock private NetworkServiceMapDao _ntwkSrvcDao; @Mock private NetworkServiceMapDao _ntwkSrvcDao;
@Mock private IPAddressDao _ipAddressDao; @Mock private IPAddressDao _ipAddressDao;
@ -269,12 +269,12 @@ public class ConfigDriveNetworkElementTest {
Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount(); Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount();
final HandleConfigDriveIsoAnswer answer = mock(HandleConfigDriveIsoAnswer.class); final HandleConfigDriveIsoAnswer answer = mock(HandleConfigDriveIsoAnswer.class);
final UserVmDetailVO userVmDetailVO = mock(UserVmDetailVO.class); final VMInstanceDetailVO vmInstanceDetailVO = mock(VMInstanceDetailVO.class);
when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest); when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest);
when(virtualMachine.getUuid()).thenReturn("vm-uuid"); when(virtualMachine.getUuid()).thenReturn("vm-uuid");
when(userVmDetailVO.getValue()).thenReturn(PUBLIC_KEY); when(vmInstanceDetailVO.getValue()).thenReturn(PUBLIC_KEY);
when(nicp.getIPv4Address()).thenReturn("192.168.111.111"); when(nicp.getIPv4Address()).thenReturn("192.168.111.111");
when(_userVmDetailsDao.findDetail(Mockito.anyLong(), Mockito.anyString())).thenReturn(userVmDetailVO); when(_vmInstanceDetailsDao.findDetail(Mockito.anyLong(), Mockito.anyString())).thenReturn(vmInstanceDetailVO);
when(_ipAddressDao.findByAssociatedVmId(VMID)).thenReturn(publicIp); when(_ipAddressDao.findByAssociatedVmId(VMID)).thenReturn(publicIp);
when(publicIp.getAddress()).thenReturn(new Ip("7.7.7.7")); when(publicIp.getAddress()).thenReturn(new Ip("7.7.7.7"));
when(_hostDao.findById(virtualMachine.getHostId())).thenReturn(hostVO); when(_hostDao.findById(virtualMachine.getHostId())).thenReturn(hostVO);

View File

@ -95,8 +95,9 @@ import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicIpAliasDao; import com.cloud.vm.dao.NicIpAliasDao;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.network.BgpPeerVO; import org.apache.cloudstack.network.BgpPeerVO;
@ -166,7 +167,7 @@ public class VirtualRouterElementTest {
@Mock private UserVmDao _userVmDao; @Mock private UserVmDao _userVmDao;
@Mock private VlanDao _vlanDao; @Mock private VlanDao _vlanDao;
@Mock private VMInstanceDao _vmDao; @Mock private VMInstanceDao _vmDao;
@Mock private UserVmDetailsDao _vmDetailsDao; @Mock private VMInstanceDetailsDao _vmDetailsDao;
@Mock private VolumeDao _volumeDao; @Mock private VolumeDao _volumeDao;
@Mock private RemoteAccessVpnDao _vpnDao; @Mock private RemoteAccessVpnDao _vpnDao;
@Mock private VpnUserDao _vpnUsersDao; @Mock private VpnUserDao _vpnUsersDao;

View File

@ -74,7 +74,7 @@ import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicIpAliasDao; import com.cloud.vm.dao.NicIpAliasDao;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
import org.apache.cloudstack.network.BgpPeer; import org.apache.cloudstack.network.BgpPeer;
@ -202,7 +202,7 @@ public class VirtualNetworkApplianceManagerImplTest {
private VMInstanceDao _vmDao; private VMInstanceDao _vmDao;
@Mock @Mock
private UserVmDetailsDao _vmDetailsDao; private VMInstanceDetailsDao _vmDetailsDao;
@Mock @Mock
private VolumeDao _volumeDao; private VolumeDao _volumeDao;

View File

@ -50,7 +50,7 @@ import com.cloud.vm.UserVmManager;
import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.VirtualMachineManager;
import com.cloud.vm.dao.NicDaoImpl; import com.cloud.vm.dao.NicDaoImpl;
import com.cloud.vm.dao.UserVmDaoImpl; import com.cloud.vm.dao.UserVmDaoImpl;
import com.cloud.vm.dao.UserVmDetailsDaoImpl; import com.cloud.vm.dao.VMInstanceDetailsDaoImpl;
import com.cloud.vm.dao.VMInstanceDaoImpl; import com.cloud.vm.dao.VMInstanceDaoImpl;
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
import org.apache.cloudstack.framework.config.dao.ConfigurationDaoImpl; import org.apache.cloudstack.framework.config.dao.ConfigurationDaoImpl;
@ -74,7 +74,7 @@ import java.io.IOException;
ConfigurationSubGroupDaoImpl.class, SecurityGroupWorkDaoImpl.class, VmRulesetLogDaoImpl.class, VMInstanceDaoImpl.class, DomainDaoImpl.class, UsageEventDaoImpl.class, ConfigurationSubGroupDaoImpl.class, SecurityGroupWorkDaoImpl.class, VmRulesetLogDaoImpl.class, VMInstanceDaoImpl.class, DomainDaoImpl.class, UsageEventDaoImpl.class,
ResourceTagsDaoImpl.class, HostDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, ResourceTagsDaoImpl.class, HostDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class,
DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class, HostTransferMapDaoImpl.class, SecurityGroupManagerImpl2.class, SecurityGroupDaoImpl.class, DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class, HostTransferMapDaoImpl.class, SecurityGroupManagerImpl2.class, SecurityGroupDaoImpl.class,
SecurityGroupVMMapDaoImpl.class, UserVmDetailsDaoImpl.class, DataCenterIpAddressDaoImpl.class, DataCenterLinkLocalIpAddressDaoImpl.class, SecurityGroupVMMapDaoImpl.class, VMInstanceDetailsDaoImpl.class, DataCenterIpAddressDaoImpl.class, DataCenterLinkLocalIpAddressDaoImpl.class,
DataCenterVnetDaoImpl.class, PodVlanDaoImpl.class, DataCenterDetailsDaoImpl.class, SecurityGroupRuleDaoImpl.class, NicDaoImpl.class, DataCenterVnetDaoImpl.class, PodVlanDaoImpl.class, DataCenterDetailsDaoImpl.class, SecurityGroupRuleDaoImpl.class, NicDaoImpl.class,
SecurityGroupJoinDaoImpl.class}, SecurityGroupJoinDaoImpl.class},
includeFilters = {@Filter(value = Library.class, type = FilterType.CUSTOM)}, includeFilters = {@Filter(value = Library.class, type = FilterType.CUSTOM)},

View File

@ -50,7 +50,7 @@ import com.cloud.utils.ssh.SSHCmdHelper;
import com.cloud.utils.ssh.SshException; import com.cloud.utils.ssh.SshException;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.trilead.ssh2.Connection; import com.trilead.ssh2.Connection;
import org.apache.cloudstack.api.command.admin.host.CancelHostAsDegradedCmd; import org.apache.cloudstack.api.command.admin.host.CancelHostAsDegradedCmd;
@ -105,7 +105,7 @@ public class ResourceManagerImplTest {
@Mock @Mock
private HighAvailabilityManager haManager; private HighAvailabilityManager haManager;
@Mock @Mock
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Mock @Mock
private AgentManager agentManager; private AgentManager agentManager;
@Mock @Mock
@ -341,10 +341,10 @@ public class ResourceManagerImplTest {
verify(resourceManager).setKVMVncAccess(hostId, vms); verify(resourceManager).setKVMVncAccess(hostId, vms);
verify(agentManager, times(vms.size())).easySend(eq(hostId), any(GetVncPortCommand.class)); verify(agentManager, times(vms.size())).easySend(eq(hostId), any(GetVncPortCommand.class));
verify(agentManager).pullAgentToMaintenance(hostId); verify(agentManager).pullAgentToMaintenance(hostId);
verify(userVmDetailsDao).addDetail(eq(vm1Id), eq("kvm.vnc.address"), eq(vm1VncAddress), anyBoolean()); verify(vmInstanceDetailsDao).addDetail(eq(vm1Id), eq("kvm.vnc.address"), eq(vm1VncAddress), anyBoolean());
verify(userVmDetailsDao).addDetail(eq(vm1Id), eq("kvm.vnc.port"), eq(String.valueOf(vm1VncPort)), anyBoolean()); verify(vmInstanceDetailsDao).addDetail(eq(vm1Id), eq("kvm.vnc.port"), eq(String.valueOf(vm1VncPort)), anyBoolean());
verify(userVmDetailsDao).addDetail(eq(vm2Id), eq("kvm.vnc.address"), eq(vm2VncAddress), anyBoolean()); verify(vmInstanceDetailsDao).addDetail(eq(vm2Id), eq("kvm.vnc.address"), eq(vm2VncAddress), anyBoolean());
verify(userVmDetailsDao).addDetail(eq(vm2Id), eq("kvm.vnc.port"), eq(String.valueOf(vm2VncPort)), anyBoolean()); verify(vmInstanceDetailsDao).addDetail(eq(vm2Id), eq("kvm.vnc.port"), eq(String.valueOf(vm2VncPort)), anyBoolean());
} }
@Test(expected = CloudRuntimeException.class) @Test(expected = CloudRuntimeException.class)

View File

@ -27,10 +27,10 @@ import com.cloud.service.ServiceOfferingVO;
import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.service.dao.ServiceOfferingDao;
import com.cloud.utils.Ternary; import com.cloud.utils.Ternary;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.VMInstanceVO; import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VmDetailConstants; import com.cloud.vm.VmDetailConstants;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import org.junit.After; import org.junit.After;
import org.junit.Assert; import org.junit.Assert;
@ -67,7 +67,7 @@ public class RollingMaintenanceManagerImplTest {
@Mock @Mock
ServiceOfferingDao serviceOfferingDao; ServiceOfferingDao serviceOfferingDao;
@Mock @Mock
UserVmDetailsDao userVmDetailsDao; VMInstanceDetailsDao vmInstanceDetailsDao;
@Spy @Spy
@InjectMocks @InjectMocks
@ -213,18 +213,18 @@ public class RollingMaintenanceManagerImplTest {
Mockito.when(serviceOffering.getSpeed()).thenReturn(null); Mockito.when(serviceOffering.getSpeed()).thenReturn(null);
Mockito.when(serviceOffering.getRamSize()).thenReturn(null); Mockito.when(serviceOffering.getRamSize()).thenReturn(null);
List<UserVmDetailVO> vmDetails = new ArrayList<>(); List<VMInstanceDetailVO> vmDetails = new ArrayList<>();
UserVmDetailVO cpuDetail = new UserVmDetailVO(1L, VmDetailConstants.CPU_NUMBER, "2", false); VMInstanceDetailVO cpuDetail = new VMInstanceDetailVO(1L, VmDetailConstants.CPU_NUMBER, "2", false);
vmDetails.add(cpuDetail); vmDetails.add(cpuDetail);
UserVmDetailVO speedDetail = new UserVmDetailVO(1L, VmDetailConstants.CPU_SPEED, "1000", false); VMInstanceDetailVO speedDetail = new VMInstanceDetailVO(1L, VmDetailConstants.CPU_SPEED, "1000", false);
vmDetails.add(speedDetail); vmDetails.add(speedDetail);
UserVmDetailVO ramSizeDetail = new UserVmDetailVO(1L, VmDetailConstants.MEMORY, "1024", false); VMInstanceDetailVO ramSizeDetail = new VMInstanceDetailVO(1L, VmDetailConstants.MEMORY, "1024", false);
vmDetails.add(ramSizeDetail); vmDetails.add(ramSizeDetail);
Mockito.when(vm.getId()).thenReturn(1L); Mockito.when(vm.getId()).thenReturn(1L);
Mockito.when(vm.getServiceOfferingId()).thenReturn(1L); Mockito.when(vm.getServiceOfferingId()).thenReturn(1L);
Mockito.when(serviceOfferingDao.findById(1L)).thenReturn(serviceOffering); Mockito.when(serviceOfferingDao.findById(1L)).thenReturn(serviceOffering);
Mockito.when(userVmDetailsDao.listDetails(1L)).thenReturn(vmDetails); Mockito.when(vmInstanceDetailsDao.listDetails(1L)).thenReturn(vmDetails);
Ternary<Integer, Integer, Integer> cpuSpeedAndRamSize = manager.getComputeResourcesCpuSpeedAndRamSize(vm); Ternary<Integer, Integer, Integer> cpuSpeedAndRamSize = manager.getComputeResourcesCpuSpeedAndRamSize(vm);

View File

@ -97,10 +97,10 @@ import com.cloud.utils.db.Filter;
import com.cloud.utils.db.SearchBuilder; import com.cloud.utils.db.SearchBuilder;
import com.cloud.utils.db.SearchCriteria; import com.cloud.utils.db.SearchCriteria;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.UserVmDetailVO;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
public class ManagementServerImplTest { public class ManagementServerImplTest {
@ -145,7 +145,7 @@ public class ManagementServerImplTest {
UserDataManager userDataManager; UserDataManager userDataManager;
@Mock @Mock
UserVmDetailsDao userVmDetailsDao; VMInstanceDetailsDao vmInstanceDetailsDao;
@Mock @Mock
HostDetailsDao hostDetailsDao; HostDetailsDao hostDetailsDao;
@ -585,10 +585,10 @@ public class ManagementServerImplTest {
UserVmVO vm = Mockito.mock(UserVmVO.class); UserVmVO vm = Mockito.mock(UserVmVO.class);
Mockito.when(vm.getId()).thenReturn(1L); Mockito.when(vm.getId()).thenReturn(1L);
if (uefiValue == null) { if (uefiValue == null) {
Mockito.when(userVmDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString())).thenReturn(null); Mockito.when(vmInstanceDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString())).thenReturn(null);
} else { } else {
UserVmDetailVO detail = new UserVmDetailVO(vm.getId(), ApiConstants.BootType.UEFI.toString(), uefiValue, true); VMInstanceDetailVO detail = new VMInstanceDetailVO(vm.getId(), ApiConstants.BootType.UEFI.toString(), uefiValue, true);
Mockito.when(userVmDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString())).thenReturn(detail); Mockito.when(vmInstanceDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString())).thenReturn(detail);
Mockito.when(hostDetailsDao.findByName(Host.HOST_UEFI_ENABLE)).thenReturn(new ArrayList<>(List.of(new DetailVO(1l, Host.HOST_UEFI_ENABLE, "true"), new DetailVO(2l, Host.HOST_UEFI_ENABLE, "false")))); Mockito.when(hostDetailsDao.findByName(Host.HOST_UEFI_ENABLE)).thenReturn(new ArrayList<>(List.of(new DetailVO(1l, Host.HOST_UEFI_ENABLE, "true"), new DetailVO(2l, Host.HOST_UEFI_ENABLE, "false"))));
} }
return vm; return vm;

View File

@ -98,7 +98,7 @@ import com.cloud.user.AccountVO;
import com.cloud.utils.Pair; import com.cloud.utils.Pair;
import com.cloud.utils.component.ComponentContext; import com.cloud.utils.component.ComponentContext;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
@RunWith(SpringJUnit4ClassRunner.class) @RunWith(SpringJUnit4ClassRunner.class)
@ -116,7 +116,7 @@ public class FirstFitPlannerTest {
@Inject @Inject
HostDetailsDao hostDetailsDao; HostDetailsDao hostDetailsDao;
@Inject @Inject
UserVmDetailsDao vmDetailsDao; VMInstanceDetailsDao vmDetailsDao;
@Inject @Inject
ConfigurationDao configDao; ConfigurationDao configDao;
@Inject @Inject
@ -476,8 +476,8 @@ public class FirstFitPlannerTest {
} }
@Bean @Bean
public UserVmDetailsDao userVmDetailsDao() { public VMInstanceDetailsDao vmInstanceDetailsDao() {
return Mockito.mock(UserVmDetailsDao.class); return Mockito.mock(VMInstanceDetailsDao.class);
} }
@Bean @Bean

View File

@ -23,6 +23,8 @@ import static org.junit.Assert.assertThrows;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyList;
import static org.mockito.ArgumentMatchers.anyLong; import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.ArgumentMatchers.anyMap;
import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.anyString;
@ -34,14 +36,24 @@ import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TimeZone;
import java.util.UUID;
import com.cloud.storage.StorageManager;
import org.apache.cloudstack.acl.ControlledEntity; import org.apache.cloudstack.acl.ControlledEntity;
import org.apache.cloudstack.acl.SecurityChecker; import org.apache.cloudstack.acl.SecurityChecker;
import org.apache.cloudstack.api.BaseCmd.HTTPMethod; import org.apache.cloudstack.api.BaseCmd.HTTPMethod;
@ -56,10 +68,13 @@ import org.apache.cloudstack.context.CallContext;
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore; import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.Scope; import org.apache.cloudstack.engine.subsystem.api.storage.Scope;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
import org.apache.cloudstack.storage.template.VnfTemplateManager; import org.apache.cloudstack.storage.template.VnfTemplateManager;
import org.apache.cloudstack.userdata.UserDataManager; import org.apache.cloudstack.userdata.UserDataManager;
import org.apache.cloudstack.vm.lease.VMLeaseManager;
import org.junit.After; import org.junit.After;
import org.junit.Assert; import org.junit.Assert;
import org.junit.Before; import org.junit.Before;
@ -67,6 +82,7 @@ import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockedStatic;
import org.mockito.Mockito; import org.mockito.Mockito;
import org.mockito.Spy; import org.mockito.Spy;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
@ -127,6 +143,7 @@ import com.cloud.storage.GuestOSVO;
import com.cloud.storage.ScopeType; import com.cloud.storage.ScopeType;
import com.cloud.storage.SnapshotVO; import com.cloud.storage.SnapshotVO;
import com.cloud.storage.Storage; import com.cloud.storage.Storage;
import com.cloud.storage.StorageManager;
import com.cloud.storage.VMTemplateVO; import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.Volume; import com.cloud.storage.Volume;
import com.cloud.storage.VolumeApiService; import com.cloud.storage.VolumeApiService;
@ -155,32 +172,10 @@ import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.exception.ExceptionProxyObject; import com.cloud.utils.exception.ExceptionProxyObject;
import com.cloud.vm.dao.NicDao; import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.snapshot.VMSnapshotVO; import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao; import com.cloud.vm.snapshot.dao.VMSnapshotDao;
import org.apache.cloudstack.vm.lease.VMLeaseManager;
import org.mockito.MockedStatic;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.Date;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.TimeZone;
import java.util.UUID;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyList;
import static org.mockito.Mockito.verify;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
public class UserVmManagerImplTest { public class UserVmManagerImplTest {
@ -231,7 +226,7 @@ public class UserVmManagerImplTest {
private EntityManager entityManager; private EntityManager entityManager;
@Mock @Mock
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Mock @Mock
private UserVmVO userVmVoMock; private UserVmVO userVmVoMock;
@ -524,7 +519,7 @@ public class UserVmManagerImplTest {
verifyMethodsThatAreAlwaysExecuted(); verifyMethodsThatAreAlwaysExecuted();
Mockito.verify(userVmManagerImpl).updateDisplayVmFlag(false, vmId, userVmVoMock); Mockito.verify(userVmManagerImpl).updateDisplayVmFlag(false, vmId, userVmVoMock);
Mockito.verify(userVmDetailsDao, times(0)).removeDetail(anyLong(), anyString()); Mockito.verify(vmInstanceDetailsDao, times(0)).removeDetail(anyLong(), anyString());
} }
@Test @Test
@ -541,8 +536,8 @@ public class UserVmManagerImplTest {
userVmManagerImpl.updateVirtualMachine(updateVmCommand); userVmManagerImpl.updateVirtualMachine(updateVmCommand);
verifyMethodsThatAreAlwaysExecuted(); verifyMethodsThatAreAlwaysExecuted();
Mockito.verify(userVmDetailsDao).removeDetail(vmId, "userdetail"); Mockito.verify(vmInstanceDetailsDao).removeDetail(vmId, "userdetail");
Mockito.verify(userVmDetailsDao, times(0)).removeDetail(vmId, "systemdetail"); Mockito.verify(vmInstanceDetailsDao, times(0)).removeDetail(vmId, "systemdetail");
Mockito.verify(userVmManagerImpl, times(0)).updateDisplayVmFlag(false, vmId, userVmVoMock); Mockito.verify(userVmManagerImpl, times(0)).updateDisplayVmFlag(false, vmId, userVmVoMock);
} }
@ -567,13 +562,13 @@ public class UserVmManagerImplTest {
prepareAndExecuteMethodDealingWithDetails(false, false); prepareAndExecuteMethodDealingWithDetails(false, false);
} }
private List<UserVmDetailVO> prepareExistingDetails(Long vmId, String... existingDetailKeys) { private List<VMInstanceDetailVO> prepareExistingDetails(Long vmId, String... existingDetailKeys) {
List<UserVmDetailVO> existingDetails = new ArrayList<>(); List<VMInstanceDetailVO> existingDetails = new ArrayList<>();
for (String detail : existingDetailKeys) { for (String detail : existingDetailKeys) {
existingDetails.add(new UserVmDetailVO(vmId, detail, "foo", true)); existingDetails.add(new VMInstanceDetailVO(vmId, detail, "foo", true));
} }
existingDetails.add(new UserVmDetailVO(vmId, "systemdetail", "bar", false)); existingDetails.add(new VMInstanceDetailVO(vmId, "systemdetail", "bar", false));
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(existingDetails); Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(existingDetails);
return existingDetails; return existingDetails;
} }
@ -608,15 +603,15 @@ public class UserVmManagerImplTest {
verifyMethodsThatAreAlwaysExecuted(); verifyMethodsThatAreAlwaysExecuted();
Mockito.verify(userVmVoMock, times(cleanUpDetails || isDetailsEmpty ? 0 : 1)).setDetails(details); Mockito.verify(userVmVoMock, times(cleanUpDetails || isDetailsEmpty ? 0 : 1)).setDetails(details);
Mockito.verify(userVmDetailsDao, times(cleanUpDetails ? 1 : 0)).removeDetail(vmId, "existingdetail"); Mockito.verify(vmInstanceDetailsDao, times(cleanUpDetails ? 1 : 0)).removeDetail(vmId, "existingdetail");
Mockito.verify(userVmDetailsDao, times(0)).removeDetail(vmId, "systemdetail"); Mockito.verify(vmInstanceDetailsDao, times(0)).removeDetail(vmId, "systemdetail");
Mockito.verify(userVmDao, times(cleanUpDetails || isDetailsEmpty ? 0 : 1)).saveDetails(userVmVoMock); Mockito.verify(userVmDao, times(cleanUpDetails || isDetailsEmpty ? 0 : 1)).saveDetails(userVmVoMock);
Mockito.verify(userVmManagerImpl, times(0)).updateDisplayVmFlag(false, vmId, userVmVoMock); Mockito.verify(userVmManagerImpl, times(0)).updateDisplayVmFlag(false, vmId, userVmVoMock);
} }
private void configureDoNothingForDetailsMethod() { private void configureDoNothingForDetailsMethod() {
Mockito.lenient().doNothing().when(userVmManagerImpl).updateDisplayVmFlag(false, vmId, userVmVoMock); Mockito.lenient().doNothing().when(userVmManagerImpl).updateDisplayVmFlag(false, vmId, userVmVoMock);
Mockito.doNothing().when(userVmDetailsDao).removeDetail(anyLong(), anyString()); Mockito.doNothing().when(vmInstanceDetailsDao).removeDetail(anyLong(), anyString());
Mockito.doNothing().when(userVmDao).saveDetails(userVmVoMock); Mockito.doNothing().when(userVmDao).saveDetails(userVmVoMock);
} }
@ -1724,9 +1719,9 @@ public class UserVmManagerImplTest {
Mockito.when(diskOffering.getDiskSize()).thenReturn(8L * GiB_TO_BYTES); Mockito.when(diskOffering.getDiskSize()).thenReturn(8L * GiB_TO_BYTES);
Map<String, String> details = new HashMap<>(); Map<String, String> details = new HashMap<>();
details.put(VmDetailConstants.ROOT_DISK_SIZE, "16"); details.put(VmDetailConstants.ROOT_DISK_SIZE, "16");
UserVmDetailVO vmRootDiskSizeDetail = Mockito.mock(UserVmDetailVO.class); VMInstanceDetailVO vmRootDiskSizeDetail = Mockito.mock(VMInstanceDetailVO.class);
Mockito.when(vmRootDiskSizeDetail.getValue()).thenReturn("20"); Mockito.when(vmRootDiskSizeDetail.getValue()).thenReturn("20");
Mockito.when(userVmDetailsDao.findDetail(1L, VmDetailConstants.ROOT_DISK_SIZE)).thenReturn(vmRootDiskSizeDetail); Mockito.when(vmInstanceDetailsDao.findDetail(1L, VmDetailConstants.ROOT_DISK_SIZE)).thenReturn(vmRootDiskSizeDetail);
Long actualSize = userVmManagerImpl.getRootVolumeSizeForVmRestore(null, template, userVm, diskOffering, details, false); Long actualSize = userVmManagerImpl.getRootVolumeSizeForVmRestore(null, template, userVm, diskOffering, details, false);
Assert.assertEquals(16 * GiB_TO_BYTES, actualSize.longValue()); Assert.assertEquals(16 * GiB_TO_BYTES, actualSize.longValue());
} }
@ -1739,9 +1734,9 @@ public class UserVmManagerImplTest {
Mockito.when(userVm.getId()).thenReturn(1L); Mockito.when(userVm.getId()).thenReturn(1L);
DiskOffering diskOffering = null; DiskOffering diskOffering = null;
Map<String, String> details = new HashMap<>(); Map<String, String> details = new HashMap<>();
UserVmDetailVO vmRootDiskSizeDetail = Mockito.mock(UserVmDetailVO.class); VMInstanceDetailVO vmRootDiskSizeDetail = Mockito.mock(VMInstanceDetailVO.class);
Mockito.when(vmRootDiskSizeDetail.getValue()).thenReturn("20"); Mockito.when(vmRootDiskSizeDetail.getValue()).thenReturn("20");
Mockito.when(userVmDetailsDao.findDetail(1L, VmDetailConstants.ROOT_DISK_SIZE)).thenReturn(vmRootDiskSizeDetail); Mockito.when(vmInstanceDetailsDao.findDetail(1L, VmDetailConstants.ROOT_DISK_SIZE)).thenReturn(vmRootDiskSizeDetail);
Long actualSize = userVmManagerImpl.getRootVolumeSizeForVmRestore(null, template, userVm, diskOffering, details, false); Long actualSize = userVmManagerImpl.getRootVolumeSizeForVmRestore(null, template, userVm, diskOffering, details, false);
Assert.assertEquals(20 * GiB_TO_BYTES, actualSize.longValue()); Assert.assertEquals(20 * GiB_TO_BYTES, actualSize.longValue());
} }
@ -3290,16 +3285,16 @@ public class UserVmManagerImplTest {
when(userVm.getId()).thenReturn(vmId); when(userVm.getId()).thenReturn(vmId);
when(userVm.getUuid()).thenReturn(UUID.randomUUID().toString()); when(userVm.getUuid()).thenReturn(UUID.randomUUID().toString());
userVmManagerImpl.addLeaseDetailsForInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP); userVmManagerImpl.addLeaseDetailsForInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
verify(userVmDetailsDao).addDetail(eq(vmId), eq(VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION), eq(VMLeaseManager.ExpiryAction.STOP.name()), anyBoolean()); verify(vmInstanceDetailsDao).addDetail(eq(vmId), eq(VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION), eq(VMLeaseManager.ExpiryAction.STOP.name()), anyBoolean());
verify(userVmDetailsDao).addDetail(eq(vmId), eq(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE), eq(getLeaseExpiryDate(10L)), anyBoolean()); verify(vmInstanceDetailsDao).addDetail(eq(vmId), eq(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE), eq(getLeaseExpiryDate(10L)), anyBoolean());
} }
@Test @Test
public void testAddNullDurationLeaseDetailsForInstance() { public void testAddNullDurationLeaseDetailsForInstance() {
UserVm userVm = mock(UserVm.class); UserVm userVm = mock(UserVm.class);
userVmManagerImpl.addLeaseDetailsForInstance(userVm, null, VMLeaseManager.ExpiryAction.STOP); userVmManagerImpl.addLeaseDetailsForInstance(userVm, null, VMLeaseManager.ExpiryAction.STOP);
Mockito.verify(userVmDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION); Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION);
Mockito.verify(userVmDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE); Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
} }
@Test @Test
@ -3346,7 +3341,7 @@ public class UserVmManagerImplTest {
public void testApplyLeaseOnUpdateInstanceForNoLease() { public void testApplyLeaseOnUpdateInstanceForNoLease() {
UserVmVO userVm = Mockito.mock(UserVmVO.class); UserVmVO userVm = Mockito.mock(UserVmVO.class);
when(userVm.getId()).thenReturn(vmId); when(userVm.getId()).thenReturn(vmId);
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.DISABLED.name())); when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.DISABLED.name()));
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP); userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any()); Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
} }
@ -3355,7 +3350,7 @@ public class UserVmManagerImplTest {
public void testApplyLeaseOnUpdateInstanceForLease() { public void testApplyLeaseOnUpdateInstanceForLease() {
UserVmVO userVm = Mockito.mock(UserVmVO.class); UserVmVO userVm = Mockito.mock(UserVmVO.class);
when(userVm.getId()).thenReturn(vmId); when(userVm.getId()).thenReturn(vmId);
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.PENDING.name())); when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.PENDING.name()));
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP); userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
Mockito.verify(userVmManagerImpl, Mockito.times(1)).addLeaseDetailsForInstance(any(), any(), any()); Mockito.verify(userVmManagerImpl, Mockito.times(1)).addLeaseDetailsForInstance(any(), any(), any());
} }
@ -3364,7 +3359,7 @@ public class UserVmManagerImplTest {
public void testApplyLeaseOnUpdateInstanceForDisabledLeaseInstance() { public void testApplyLeaseOnUpdateInstanceForDisabledLeaseInstance() {
UserVmVO userVm = Mockito.mock(UserVmVO.class); UserVmVO userVm = Mockito.mock(UserVmVO.class);
when(userVm.getId()).thenReturn(vmId); when(userVm.getId()).thenReturn(vmId);
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.DISABLED.name())); when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.DISABLED.name()));
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP); userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
Mockito.verify(userVmManagerImpl, Mockito.times(1)).addLeaseDetailsForInstance(any(), any(), any()); Mockito.verify(userVmManagerImpl, Mockito.times(1)).addLeaseDetailsForInstance(any(), any(), any());
} }
@ -3372,7 +3367,7 @@ public class UserVmManagerImplTest {
@Test(expected = CloudRuntimeException.class) @Test(expected = CloudRuntimeException.class)
public void testApplyLeaseOnUpdateInstanceForLeaseExpired() { public void testApplyLeaseOnUpdateInstanceForLeaseExpired() {
UserVmVO userVm = Mockito.mock(UserVmVO.class); UserVmVO userVm = Mockito.mock(UserVmVO.class);
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(-2, VMLeaseManager.LeaseActionExecution.PENDING.name())); when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(-2, VMLeaseManager.LeaseActionExecution.PENDING.name()));
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP); userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any()); Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
} }
@ -3381,7 +3376,7 @@ public class UserVmManagerImplTest {
public void testApplyLeaseOnUpdateInstanceToRemoveLease() { public void testApplyLeaseOnUpdateInstanceToRemoveLease() {
UserVmVO userVm = Mockito.mock(UserVmVO.class); UserVmVO userVm = Mockito.mock(UserVmVO.class);
when(userVm.getId()).thenReturn(vmId);; when(userVm.getId()).thenReturn(vmId);;
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(2, VMLeaseManager.LeaseActionExecution.PENDING.name())); when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(2, VMLeaseManager.LeaseActionExecution.PENDING.name()));
try (MockedStatic<ActionEventUtils> ignored = Mockito.mockStatic(ActionEventUtils.class)) { try (MockedStatic<ActionEventUtils> ignored = Mockito.mockStatic(ActionEventUtils.class)) {
Mockito.when(ActionEventUtils.onActionEvent(Mockito.anyLong(), Mockito.anyLong(), Mockito.when(ActionEventUtils.onActionEvent(Mockito.anyLong(), Mockito.anyLong(),
Mockito.anyLong(), Mockito.anyLong(),
@ -3390,7 +3385,7 @@ public class UserVmManagerImplTest {
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, -1, VMLeaseManager.ExpiryAction.STOP); userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, -1, VMLeaseManager.ExpiryAction.STOP);
} }
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any()); Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
Mockito.verify(userVmDetailsDao, Mockito.times(1)). Mockito.verify(vmInstanceDetailsDao, Mockito.times(1)).
addDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXECUTION, VMLeaseManager.LeaseActionExecution.DISABLED.name(), false); addDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXECUTION, VMLeaseManager.LeaseActionExecution.DISABLED.name(), false);
} }
@ -3398,11 +3393,11 @@ public class UserVmManagerImplTest {
public void testApplyLeaseOnUpdateInstanceToRemoveLeaseForExpired() { public void testApplyLeaseOnUpdateInstanceToRemoveLeaseForExpired() {
UserVmVO userVm = Mockito.mock(UserVmVO.class); UserVmVO userVm = Mockito.mock(UserVmVO.class);
when(userVm.getId()).thenReturn(vmId); when(userVm.getId()).thenReturn(vmId);
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(-2, VMLeaseManager.LeaseActionExecution.PENDING.name())); when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(-2, VMLeaseManager.LeaseActionExecution.PENDING.name()));
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, -1, VMLeaseManager.ExpiryAction.STOP); userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, -1, VMLeaseManager.ExpiryAction.STOP);
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any()); Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
Mockito.verify(userVmDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION); Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION);
Mockito.verify(userVmDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE); Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
} }
String getLeaseExpiryDate(long leaseDuration) { String getLeaseExpiryDate(long leaseDuration) {

View File

@ -46,13 +46,13 @@ import com.cloud.user.dao.UserDao;
import com.cloud.uservm.UserVm; import com.cloud.uservm.UserVm;
import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.fsm.NoTransitionException; import com.cloud.utils.fsm.NoTransitionException;
import com.cloud.vm.UserVmDetailVO; import com.cloud.vm.VMInstanceDetailVO;
import com.cloud.vm.UserVmManager; import com.cloud.vm.UserVmManager;
import com.cloud.vm.UserVmVO; import com.cloud.vm.UserVmVO;
import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachine.State;
import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.VirtualMachineManager;
import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.dao.VMSnapshotDao; import com.cloud.vm.snapshot.dao.VMSnapshotDao;
import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao; import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao;
@ -131,7 +131,7 @@ public class VMSnapshotManagerTest {
@Mock @Mock
ServiceOfferingDao _serviceOfferingDao; ServiceOfferingDao _serviceOfferingDao;
@Mock @Mock
UserVmDetailsDao _userVmDetailsDao; VMInstanceDetailsDao _vmInstanceDetailsDao;
@Mock @Mock
VMSnapshotDetailsDao _vmSnapshotDetailsDao; VMSnapshotDetailsDao _vmSnapshotDetailsDao;
@Mock @Mock
@ -141,7 +141,7 @@ public class VMSnapshotManagerTest {
private static final long SERVICE_OFFERING_ID = 1L; private static final long SERVICE_OFFERING_ID = 1L;
private static final long SERVICE_OFFERING_DIFFERENT_ID = 2L; private static final long SERVICE_OFFERING_DIFFERENT_ID = 2L;
private static VMSnapshot.Type vmSnapshotType; private static VMSnapshot.Type vmSnapshotType;
private static List<UserVmDetailVO> userVmDetails; private static List<VMInstanceDetailVO> userVmDetails;
private static List<VMSnapshotDetailsVO> vmSnapshotDetails; private static List<VMSnapshotDetailsVO> vmSnapshotDetails;
private static final long VM_SNAPSHOT_ID = 1L; private static final long VM_SNAPSHOT_ID = 1L;
@ -157,9 +157,9 @@ public class VMSnapshotManagerTest {
@Mock @Mock
ServiceOfferingVO serviceOffering; ServiceOfferingVO serviceOffering;
@Mock @Mock
UserVmDetailVO userVmDetailCpuNumber; VMInstanceDetailVO userVmDetailCpuNumber;
@Mock @Mock
UserVmDetailVO userVmDetailMemory; VMInstanceDetailVO userVmDetailMemory;
@Mock @Mock
VMSnapshotDetailsVO vmSnapshotDetailCpuNumber; VMSnapshotDetailsVO vmSnapshotDetailCpuNumber;
@Mock @Mock
@ -172,7 +172,7 @@ public class VMSnapshotManagerTest {
@Captor @Captor
ArgumentCaptor<Map<String,String>> mapDetailsCaptor; ArgumentCaptor<Map<String,String>> mapDetailsCaptor;
@Captor @Captor
ArgumentCaptor<List<UserVmDetailVO>> listUserVmDetailsCaptor; ArgumentCaptor<List<VMInstanceDetailVO>> listUserVmDetailsCaptor;
private AutoCloseable closeable; private AutoCloseable closeable;
@ -194,7 +194,7 @@ public class VMSnapshotManagerTest {
doNothing().when(_accountMgr).checkAccess(any(Account.class), any(AccessType.class), any(Boolean.class), any(ControlledEntity.class)); doNothing().when(_accountMgr).checkAccess(any(Account.class), any(AccessType.class), any(Boolean.class), any(ControlledEntity.class));
_vmSnapshotMgr._serviceOfferingDao = _serviceOfferingDao; _vmSnapshotMgr._serviceOfferingDao = _serviceOfferingDao;
_vmSnapshotMgr._userVmDetailsDao = _userVmDetailsDao; _vmSnapshotMgr._vmInstanceDetailsDao = _vmInstanceDetailsDao;
_vmSnapshotMgr._vmSnapshotDetailsDao = _vmSnapshotDetailsDao; _vmSnapshotMgr._vmSnapshotDetailsDao = _vmSnapshotDetailsDao;
_vmSnapshotMgr._userVmManager = _userVmManager; _vmSnapshotMgr._userVmManager = _userVmManager;
@ -238,7 +238,7 @@ public class VMSnapshotManagerTest {
userVmDetails = Arrays.asList(userVmDetailCpuNumber, userVmDetailMemory); userVmDetails = Arrays.asList(userVmDetailCpuNumber, userVmDetailMemory);
vmSnapshotDetails = Arrays.asList(vmSnapshotDetailCpuNumber, vmSnapshotDetailMemory); vmSnapshotDetails = Arrays.asList(vmSnapshotDetailCpuNumber, vmSnapshotDetailMemory);
when(_userVmDetailsDao.listDetails(TEST_VM_ID)).thenReturn(userVmDetails); when(_vmInstanceDetailsDao.listDetails(TEST_VM_ID)).thenReturn(userVmDetails);
when(_vmSnapshotDetailsDao.listDetails(VM_SNAPSHOT_ID)).thenReturn(vmSnapshotDetails); when(_vmSnapshotDetailsDao.listDetails(VM_SNAPSHOT_ID)).thenReturn(vmSnapshotDetails);
when(userVm.getId()).thenReturn(TEST_VM_ID); when(userVm.getId()).thenReturn(TEST_VM_ID);
@ -327,7 +327,7 @@ public class VMSnapshotManagerTest {
@Test @Test
public void testAddSupportForCustomServiceOfferingNotDynamicServiceOffering() { public void testAddSupportForCustomServiceOfferingNotDynamicServiceOffering() {
_vmSnapshotMgr.addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID); _vmSnapshotMgr.addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID);
verify(_userVmDetailsDao, never()).listDetails(TEST_VM_ID); verify(_vmInstanceDetailsDao, never()).listDetails(TEST_VM_ID);
} }
@Test @Test
@ -335,7 +335,7 @@ public class VMSnapshotManagerTest {
when(serviceOffering.isDynamic()).thenReturn(true); when(serviceOffering.isDynamic()).thenReturn(true);
_vmSnapshotMgr.addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID); _vmSnapshotMgr.addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID);
verify(_userVmDetailsDao).listDetails(TEST_VM_ID); verify(_vmInstanceDetailsDao).listDetails(TEST_VM_ID);
verify(_vmSnapshotDetailsDao).saveDetails(listVmSnapshotDetailsCaptor.capture()); verify(_vmSnapshotDetailsDao).saveDetails(listVmSnapshotDetailsCaptor.capture());
} }
@ -405,7 +405,7 @@ public class VMSnapshotManagerTest {
when(serviceOffering.isDynamic()).thenReturn(true); when(serviceOffering.isDynamic()).thenReturn(true);
_vmSnapshotMgr.revertUserVmDetailsFromVmSnapshot(vmMock, vmSnapshotVO); _vmSnapshotMgr.revertUserVmDetailsFromVmSnapshot(vmMock, vmSnapshotVO);
verify(_vmSnapshotDetailsDao).listDetails(VM_SNAPSHOT_ID); verify(_vmSnapshotDetailsDao).listDetails(VM_SNAPSHOT_ID);
verify(_userVmDetailsDao).saveDetails(listUserVmDetailsCaptor.capture()); verify(_vmInstanceDetailsDao).saveDetails(listUserVmDetailsCaptor.capture());
} }
} }

View File

@ -82,7 +82,7 @@ import com.cloud.vm.dao.DomainRouterDaoImpl;
import com.cloud.vm.dao.NicDaoImpl; import com.cloud.vm.dao.NicDaoImpl;
import com.cloud.vm.dao.NicSecondaryIpDaoImpl; import com.cloud.vm.dao.NicSecondaryIpDaoImpl;
import com.cloud.vm.dao.UserVmDaoImpl; import com.cloud.vm.dao.UserVmDaoImpl;
import com.cloud.vm.dao.UserVmDetailsDaoImpl; import com.cloud.vm.dao.VMInstanceDetailsDaoImpl;
import com.cloud.vm.dao.VMInstanceDaoImpl; import com.cloud.vm.dao.VMInstanceDaoImpl;
import com.cloud.vpc.dao.MockNetworkOfferingDaoImpl; import com.cloud.vpc.dao.MockNetworkOfferingDaoImpl;
import com.cloud.vpc.dao.MockNetworkOfferingServiceMapDaoImpl; import com.cloud.vpc.dao.MockNetworkOfferingServiceMapDaoImpl;
@ -113,7 +113,7 @@ import java.io.IOException;
Site2SiteVpnGatewayDaoImpl.class, PodVlanMapDaoImpl.class, AccountVlanMapDaoImpl.class, DomainVlanMapDaoImpl.class, HostDaoImpl.class, HostDetailsDaoImpl.class, Site2SiteVpnGatewayDaoImpl.class, PodVlanMapDaoImpl.class, AccountVlanMapDaoImpl.class, DomainVlanMapDaoImpl.class, HostDaoImpl.class, HostDetailsDaoImpl.class,
HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, RouterNetworkDaoImpl.class, HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, RouterNetworkDaoImpl.class,
UserStatisticsDaoImpl.class, PhysicalNetworkTrafficTypeDaoImpl.class, FirewallRulesCidrsDaoImpl.class, ResourceLimitManagerImpl.class, UserStatisticsDaoImpl.class, PhysicalNetworkTrafficTypeDaoImpl.class, FirewallRulesCidrsDaoImpl.class, ResourceLimitManagerImpl.class,
ResourceLimitDaoImpl.class, ResourceCountDaoImpl.class, DomainDaoImpl.class, UserVmDaoImpl.class, UserVmDetailsDaoImpl.class, NicDaoImpl.class, ResourceLimitDaoImpl.class, ResourceCountDaoImpl.class, DomainDaoImpl.class, UserVmDaoImpl.class, VMInstanceDetailsDaoImpl.class, NicDaoImpl.class,
SnapshotDaoImpl.class, VMInstanceDaoImpl.class, VolumeDaoImpl.class, UserIpv6AddressDaoImpl.class, NicSecondaryIpDaoImpl.class, SnapshotDaoImpl.class, VMInstanceDaoImpl.class, VolumeDaoImpl.class, UserIpv6AddressDaoImpl.class, NicSecondaryIpDaoImpl.class,
VpcServiceMapDaoImpl.class, ServiceOfferingDaoImpl.class, MockVpcDaoImpl.class, VMTemplateDaoImpl.class, VpcServiceMapDaoImpl.class, ServiceOfferingDaoImpl.class, MockVpcDaoImpl.class, VMTemplateDaoImpl.class,
VMTemplateZoneDaoImpl.class, VMTemplateDetailsDaoImpl.class, DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class, VMTemplateZoneDaoImpl.class, VMTemplateDetailsDaoImpl.class, DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class,

View File

@ -24,7 +24,7 @@ import com.cloud.user.AccountManager;
import com.cloud.utils.db.EntityManager; import com.cloud.utils.db.EntityManager;
import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineManager; import com.cloud.vm.VirtualMachineManager;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import org.apache.cloudstack.acl.SecurityChecker; import org.apache.cloudstack.acl.SecurityChecker;
import org.apache.cloudstack.framework.security.keys.KeysManager; import org.apache.cloudstack.framework.security.keys.KeysManager;
import org.junit.Assert; import org.junit.Assert;
@ -51,7 +51,7 @@ public class ConsoleAccessManagerImplTest {
@Mock @Mock
private EntityManager entityManager; private EntityManager entityManager;
@Mock @Mock
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Mock @Mock
private KeysManager keysManager; private KeysManager keysManager;
@Mock @Mock

View File

@ -61,7 +61,7 @@ import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
import com.cloud.user.AccountManager; import com.cloud.user.AccountManager;
import com.cloud.user.AccountVO; import com.cloud.user.AccountVO;
import com.cloud.user.UserVO; import com.cloud.user.UserVO;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import junit.framework.TestCase; import junit.framework.TestCase;
@ -84,7 +84,7 @@ public class CreateNetworkOfferingTest extends TestCase {
VpcManager vpcMgr; VpcManager vpcMgr;
@Mock @Mock
UserVmDetailsDao userVmDetailsDao; VMInstanceDetailsDao vmInstanceDetailsDao;
@Mock @Mock
UsageEventDao UsageEventDao; UsageEventDao UsageEventDao;

View File

@ -75,7 +75,7 @@ import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.NicDetailsDao; import com.cloud.vm.dao.NicDetailsDao;
import com.cloud.vm.dao.NicExtraDhcpOptionDao; import com.cloud.vm.dao.NicExtraDhcpOptionDao;
import com.cloud.vm.dao.NicSecondaryIpDao; import com.cloud.vm.dao.NicSecondaryIpDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
import com.cloud.vm.snapshot.VMSnapshotVO; import com.cloud.vm.snapshot.VMSnapshotVO;
import com.cloud.vm.snapshot.dao.VMSnapshotDao; import com.cloud.vm.snapshot.dao.VMSnapshotDao;
@ -111,7 +111,7 @@ public class ResourceCleanupServiceImplTest {
@Mock @Mock
VMSnapshotDetailsDao vmSnapshotDetailsDao; VMSnapshotDetailsDao vmSnapshotDetailsDao;
@Mock @Mock
UserVmDetailsDao userVmDetailsDao; VMInstanceDetailsDao vmInstanceDetailsDao;
@Mock @Mock
AutoScaleVmGroupVmMapDao autoScaleVmGroupVmMapDao; AutoScaleVmGroupVmMapDao autoScaleVmGroupVmMapDao;
@Mock @Mock
@ -297,7 +297,7 @@ public class ResourceCleanupServiceImplTest {
resourceCleanupService.purgeLinkedVMEntities(new ArrayList<>(), 50L); resourceCleanupService.purgeLinkedVMEntities(new ArrayList<>(), 50L);
Mockito.verify(resourceCleanupService, Mockito.never()).purgeVMVolumes(Mockito.anyList(), Mockito.verify(resourceCleanupService, Mockito.never()).purgeVMVolumes(Mockito.anyList(),
Mockito.anyLong()); Mockito.anyLong());
Mockito.verify(userVmDetailsDao, Mockito.never()) Mockito.verify(vmInstanceDetailsDao, Mockito.never())
.batchExpungeForResources(Mockito.anyList(), Mockito.anyLong()); .batchExpungeForResources(Mockito.anyList(), Mockito.anyLong());
} }
@ -307,7 +307,7 @@ public class ResourceCleanupServiceImplTest {
Mockito.eq(batchSize)); Mockito.eq(batchSize));
Mockito.doReturn(2L).when(resourceCleanupService).purgeVMNics(Mockito.anyList(), Mockito.doReturn(2L).when(resourceCleanupService).purgeVMNics(Mockito.anyList(),
Mockito.eq(batchSize)); Mockito.eq(batchSize));
Mockito.when(userVmDetailsDao.batchExpungeForResources(Mockito.anyList(), Mockito.anyLong())).thenReturn(2L); Mockito.when(vmInstanceDetailsDao.batchExpungeForResources(Mockito.anyList(), Mockito.anyLong())).thenReturn(2L);
Mockito.doReturn(2L).when(resourceCleanupService).purgeVMSnapshots(Mockito.anyList(), Mockito.doReturn(2L).when(resourceCleanupService).purgeVMSnapshots(Mockito.anyList(),
Mockito.eq(batchSize)); Mockito.eq(batchSize));
Mockito.when(autoScaleVmGroupVmMapDao.expungeByVmList(Mockito.anyList(), Mockito.anyLong())).thenReturn(2); Mockito.when(autoScaleVmGroupVmMapDao.expungeByVmList(Mockito.anyList(), Mockito.anyLong())).thenReturn(2);
@ -327,7 +327,7 @@ public class ResourceCleanupServiceImplTest {
Mockito.verify(resourceCleanupService, Mockito.times(1)).purgeVMVolumes(ids, batchSize); Mockito.verify(resourceCleanupService, Mockito.times(1)).purgeVMVolumes(ids, batchSize);
Mockito.verify(resourceCleanupService, Mockito.times(1)).purgeVMNics(ids, batchSize); Mockito.verify(resourceCleanupService, Mockito.times(1)).purgeVMNics(ids, batchSize);
Mockito.verify(userVmDetailsDao, Mockito.times(1)) Mockito.verify(vmInstanceDetailsDao, Mockito.times(1))
.batchExpungeForResources(ids, batchSize); .batchExpungeForResources(ids, batchSize);
Mockito.verify(resourceCleanupService, Mockito.times(1)) Mockito.verify(resourceCleanupService, Mockito.times(1))
.purgeVMSnapshots(ids, batchSize); .purgeVMSnapshots(ids, batchSize);

View File

@ -18,16 +18,31 @@
package org.apache.cloudstack.vm.lease; package org.apache.cloudstack.vm.lease;
import com.cloud.api.query.dao.UserVmJoinDao; import static org.junit.Assert.assertEquals;
import com.cloud.api.query.vo.UserVmJoinVO; import static org.junit.Assert.assertNotNull;
import com.cloud.event.ActionEventUtils; import static org.junit.Assert.assertNull;
import com.cloud.user.User; import static org.junit.Assert.assertTrue;
import com.cloud.utils.component.ComponentContext; import static org.mockito.ArgumentMatchers.any;
import com.cloud.utils.db.GlobalLock; import static org.mockito.ArgumentMatchers.anyBoolean;
import com.cloud.utils.exception.CloudRuntimeException; import static org.mockito.ArgumentMatchers.anyLong;
import com.cloud.vm.VirtualMachine; import static org.mockito.ArgumentMatchers.anyString;
import com.cloud.vm.VmDetailConstants; import static org.mockito.ArgumentMatchers.eq;
import com.cloud.vm.dao.UserVmDetailsDao; import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import javax.naming.ConfigurationException;
import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd; import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
import org.apache.cloudstack.api.command.user.vm.StopVMCmd; import org.apache.cloudstack.api.command.user.vm.StopVMCmd;
import org.apache.cloudstack.framework.config.ConfigKey; import org.apache.cloudstack.framework.config.ConfigKey;
@ -47,29 +62,16 @@ import org.mockito.Spy;
import org.mockito.junit.MockitoJUnitRunner; import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import javax.naming.ConfigurationException; import com.cloud.api.query.dao.UserVmJoinDao;
import java.lang.reflect.Field; import com.cloud.api.query.vo.UserVmJoinVO;
import java.util.ArrayList; import com.cloud.event.ActionEventUtils;
import java.util.Arrays; import com.cloud.user.User;
import java.util.HashMap; import com.cloud.utils.component.ComponentContext;
import java.util.List; import com.cloud.utils.db.GlobalLock;
import java.util.UUID; import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.vm.VirtualMachine;
import static org.junit.Assert.assertEquals; import com.cloud.vm.VmDetailConstants;
import static org.junit.Assert.assertNotNull; import com.cloud.vm.dao.VMInstanceDetailsDao;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class) @RunWith(MockitoJUnitRunner.class)
public class VMLeaseManagerImplTest { public class VMLeaseManagerImplTest {
@ -88,7 +90,7 @@ public class VMLeaseManagerImplTest {
MessageBus messageBus; MessageBus messageBus;
@Mock @Mock
private UserVmDetailsDao userVmDetailsDao; private VMInstanceDetailsDao vmInstanceDetailsDao;
@Mock @Mock
private AsyncJobManager asyncJobManager; private AsyncJobManager asyncJobManager;
@ -104,7 +106,7 @@ public class VMLeaseManagerImplTest {
vmLeaseManager.setAsyncJobDispatcher(asyncJobDispatcher); vmLeaseManager.setAsyncJobDispatcher(asyncJobDispatcher);
when(asyncJobDispatcher.getName()).thenReturn("AsyncJobDispatcher"); when(asyncJobDispatcher.getName()).thenReturn("AsyncJobDispatcher");
when(asyncJobManager.submitAsyncJob(any(AsyncJobVO.class))).thenReturn(1L); when(asyncJobManager.submitAsyncJob(any(AsyncJobVO.class))).thenReturn(1L);
doNothing().when(userVmDetailsDao).addDetail( doNothing().when(vmInstanceDetailsDao).addDetail(
anyLong(), anyString(), anyString(), anyBoolean() anyLong(), anyString(), anyString(), anyBoolean()
); );
try { try {
@ -275,7 +277,7 @@ public class VMLeaseManagerImplTest {
utilities.when(() -> ActionEventUtils.onStartedActionEvent(Mockito.anyLong(), Mockito.anyLong(), Mockito.anyString(), utilities.when(() -> ActionEventUtils.onStartedActionEvent(Mockito.anyLong(), Mockito.anyLong(), Mockito.anyString(),
Mockito.anyString(), Mockito.anyLong(), Mockito.anyString(), Mockito.anyBoolean(), Mockito.anyLong())).thenReturn(1L); Mockito.anyString(), Mockito.anyLong(), Mockito.anyString(), Mockito.anyBoolean(), Mockito.anyLong())).thenReturn(1L);
vmLeaseManager.cancelLeaseOnExistingInstances(); vmLeaseManager.cancelLeaseOnExistingInstances();
verify(userVmDetailsDao).addDetail(1L, VmDetailConstants.INSTANCE_LEASE_EXECUTION, VMLeaseManager.LeaseActionExecution.CANCELLED.name(), false); verify(vmInstanceDetailsDao).addDetail(1L, VmDetailConstants.INSTANCE_LEASE_EXECUTION, VMLeaseManager.LeaseActionExecution.CANCELLED.name(), false);
} }
} }

View File

@ -50,7 +50,7 @@
<bean id="ipv6ServiceImpl" class="com.cloud.network.Ipv6ServiceImpl" /> <bean id="ipv6ServiceImpl" class="com.cloud.network.Ipv6ServiceImpl" />
<bean id="managementServiceConfigurationImpl" class="com.cloud.configuration.ManagementServiceConfigurationImpl" /> <bean id="managementServiceConfigurationImpl" class="com.cloud.configuration.ManagementServiceConfigurationImpl" />
<bean class="org.apache.cloudstack.networkoffering.ChildTestConfiguration" /> <bean class="org.apache.cloudstack.networkoffering.ChildTestConfiguration" />
<bean id="UservmDetailsDaoImpl" class="com.cloud.vm.dao.UserVmDetailsDaoImpl" /> <bean id="UservmDetailsDaoImpl" class="com.cloud.vm.dao.VMInstanceDetailsDaoImpl" />
<bean id="hostGpuGroupsDaoImpl" class="com.cloud.gpu.dao.HostGpuGroupsDaoImpl" /> <bean id="hostGpuGroupsDaoImpl" class="com.cloud.gpu.dao.HostGpuGroupsDaoImpl" />
<bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" /> <bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" />
<bean id="usageEventDaoImpl" class="com.cloud.event.dao.UsageEventDaoImpl" /> <bean id="usageEventDaoImpl" class="com.cloud.event.dao.UsageEventDaoImpl" />

View File

@ -157,7 +157,7 @@ import com.cloud.vm.VirtualMachineManager;
import com.cloud.vm.VirtualMachineName; import com.cloud.vm.VirtualMachineName;
import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.SecondaryStorageVmDao; import com.cloud.vm.dao.SecondaryStorageVmDao;
import com.cloud.vm.dao.UserVmDetailsDao; import com.cloud.vm.dao.VMInstanceDetailsDao;
import com.cloud.vm.dao.VMInstanceDao; import com.cloud.vm.dao.VMInstanceDao;
/** /**
@ -223,7 +223,7 @@ public class SecondaryStorageManagerImpl extends ManagerBase implements Secondar
@Inject @Inject
protected CapacityDao _capacityDao; protected CapacityDao _capacityDao;
@Inject @Inject
UserVmDetailsDao _vmDetailsDao; VMInstanceDetailsDao _vmDetailsDao;
@Inject @Inject
protected ResourceManager _resourceMgr; protected ResourceManager _resourceMgr;
@Inject @Inject