mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
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:
parent
7da5f9002b
commit
83bccead3d
@ -40,7 +40,7 @@ public class VirtualMachineProfileImpl implements VirtualMachineProfile {
|
||||
VirtualMachine _vm;
|
||||
ServiceOffering _offering;
|
||||
VirtualMachineTemplate _template;
|
||||
UserVmDetailVO _userVmDetails;
|
||||
VMInstanceDetailVO _userVmDetails;
|
||||
Map<Param, Object> _params;
|
||||
List<NicProfile> _nics = new ArrayList<NicProfile>();
|
||||
List<DiskTO> _disks = new ArrayList<DiskTO>();
|
||||
|
||||
@ -286,7 +286,7 @@ import com.cloud.vm.VirtualMachine.PowerState;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
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.snapshot.VMSnapshotManager;
|
||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||
@ -381,7 +381,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
||||
@Inject
|
||||
private ClusterDetailsDao _clusterDetailsDao;
|
||||
@Inject
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private VolumeOrchestrationService volumeMgr;
|
||||
@Inject
|
||||
@ -1370,8 +1370,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
||||
_resourceMgr.updateGPUDetails(destHostId, gpuDevice.getGroupDetails());
|
||||
}
|
||||
|
||||
if (userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_VM) != null) {
|
||||
userVmDetailsDao.removeDetail(vm.getId(), VmDetailConstants.DEPLOY_VM);
|
||||
if (vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_VM) != null) {
|
||||
vmInstanceDetailsDao.removeDetail(vm.getId(), VmDetailConstants.DEPLOY_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 float parsedClusterCpuDetailCpu = Float.parseFloat(clusterDetailCpu.getValue());
|
||||
final float parsedClusterDetailRam = Float.parseFloat(clusterDetailRam.getValue());
|
||||
UserVmDetailVO vmDetailCpu = userVmDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO);
|
||||
UserVmDetailVO vmDetailRam = userVmDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
|
||||
VMInstanceDetailVO vmDetailCpu = vmInstanceDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO);
|
||||
VMInstanceDetailVO vmDetailRam = vmInstanceDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
|
||||
|
||||
if ((vmDetailCpu == null && parsedClusterCpuDetailCpu > 1f) ||
|
||||
(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) ||
|
||||
(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()));
|
||||
@ -3324,7 +3324,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
||||
|
||||
if (defaultNic != null && VirtualMachine.Type.User.equals(vm.getType())) {
|
||||
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);
|
||||
|
||||
Network network = _networkModel.getNetwork(defaultNic.getNetworkId());
|
||||
@ -4842,29 +4842,29 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
||||
}
|
||||
|
||||
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.cpuSpeed.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()) {
|
||||
UserVmDetailVO detailVO = new UserVmDetailVO(vmId, entry.getKey(), entry.getValue(), true);
|
||||
VMInstanceDetailVO detailVO = new VMInstanceDetailVO(vmId, entry.getKey(), entry.getValue(), true);
|
||||
detailList.add(detailVO);
|
||||
}
|
||||
userVmDetailsDao.saveDetails(detailList);
|
||||
vmInstanceDetailsDao.saveDetails(detailList);
|
||||
}
|
||||
|
||||
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.cpuSpeed.name(), serviceOffering.getSpeed().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()) {
|
||||
UserVmDetailVO detailVO = new UserVmDetailVO(vmId, entry.getKey(), entry.getValue(), true);
|
||||
VMInstanceDetailVO detailVO = new VMInstanceDetailVO(vmId, entry.getKey(), entry.getValue(), true);
|
||||
detailList.add(detailVO);
|
||||
}
|
||||
userVmDetailsDao.saveDetails(detailList);
|
||||
vmInstanceDetailsDao.saveDetails(detailList);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -6182,7 +6182,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
||||
@Override
|
||||
public Map<Long, Boolean> getDiskOfferingSuitabilityForVm(long vmId, List<Long> diskOfferingIds) {
|
||||
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<>();
|
||||
}
|
||||
VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm);
|
||||
|
||||
@ -61,7 +61,7 @@ import com.cloud.vm.NicProfile;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachineManager;
|
||||
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 static org.apache.cloudstack.api.ApiConstants.MAX_IOPS;
|
||||
@ -86,7 +86,7 @@ public class CloudOrchestrator implements OrchestrationService {
|
||||
protected UserVmDao _userVmDao = null;
|
||||
|
||||
@Inject
|
||||
protected UserVmDetailsDao _userVmDetailsDao = null;
|
||||
protected VMInstanceDetailsDao _vmInstanceDetailsDao = null;
|
||||
|
||||
@Inject
|
||||
protected ServiceOfferingDao _serviceOfferingDao;
|
||||
@ -199,7 +199,7 @@ public class CloudOrchestrator implements OrchestrationService {
|
||||
rootDiskOfferingInfo.setSize(rootDiskSize);
|
||||
|
||||
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) {
|
||||
String minIops = userVmDetails.get(MIN_IOPS);
|
||||
@ -231,7 +231,7 @@ public class CloudOrchestrator implements OrchestrationService {
|
||||
dataDiskOfferingInfo.setSize(size);
|
||||
|
||||
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) {
|
||||
String minIops = userVmDetails.get("minIopsDo");
|
||||
@ -307,7 +307,7 @@ public class CloudOrchestrator implements OrchestrationService {
|
||||
rootDiskOfferingInfo.setSize(size);
|
||||
|
||||
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) {
|
||||
String minIops = userVmDetails.get("minIopsDo");
|
||||
|
||||
@ -168,7 +168,7 @@ import com.cloud.utils.fsm.StateMachine2;
|
||||
import com.cloud.vm.DiskProfile;
|
||||
import com.cloud.vm.SecondaryStorageVmVO;
|
||||
import com.cloud.vm.UserVmCloneSettingVO;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
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.UserVmCloneSettingDao;
|
||||
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 {
|
||||
|
||||
@ -255,7 +255,7 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
|
||||
@Inject
|
||||
TemplateService templateService;
|
||||
@Inject
|
||||
UserVmDetailsDao userVmDetailsDao;
|
||||
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private SecondaryStorageVmDao secondaryStorageVmDao;
|
||||
@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.",
|
||||
vm.getDataCenterId(), vm);
|
||||
} 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) {
|
||||
configurationId = configurationDetail.getValue();
|
||||
}
|
||||
@ -1126,13 +1126,13 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
|
||||
String diskControllerSubType = disksAsIs.get(0).getDiskControllerSubType();
|
||||
if (StringUtils.isNotBlank(diskControllerSubType)) {
|
||||
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) {
|
||||
detail.setValue(diskControllerSubType);
|
||||
userVmDetailsDao.update(detail.getId(), detail);
|
||||
vmInstanceDetailsDao.update(detail.getId(), detail);
|
||||
} else {
|
||||
detail = new UserVmDetailVO(vmId, VmDetailConstants.ROOT_DISK_CONTROLLER, diskControllerSubType, false);
|
||||
userVmDetailsDao.persist(detail);
|
||||
detail = new VMInstanceDetailVO(vmId, VmDetailConstants.ROOT_DISK_CONTROLLER, diskControllerSubType, false);
|
||||
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) {
|
||||
if (volume.getInstanceId() != null) {
|
||||
UserVmDetailVO ioDriverPolicy = userVmDetailsDao.findDetail(volume.getInstanceId(),
|
||||
VMInstanceDetailVO ioDriverPolicy = vmInstanceDetailsDao.findDetail(volume.getInstanceId(),
|
||||
VmDetailConstants.IO_POLICY);
|
||||
if (ioDriverPolicy != null) {
|
||||
if (IoDriverPolicy.STORAGE_SPECIFIC.toString().equals(ioDriverPolicy.getValue())) {
|
||||
|
||||
@ -131,7 +131,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.fsm.StateMachine2;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
@ -224,7 +224,7 @@ public class VirtualMachineManagerImplTest {
|
||||
@Mock
|
||||
private ClusterDetailsDao _clusterDetailsDao;
|
||||
@Mock
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Mock
|
||||
private ItWorkDao _workDao;
|
||||
@Mock
|
||||
@ -1098,7 +1098,7 @@ public class VirtualMachineManagerImplTest {
|
||||
when(cluster.getId()).thenReturn(1L);
|
||||
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(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_ram.getValue()).thenReturn("1.0");
|
||||
doReturn(false).when(virtualMachineManagerImpl).areAllVolumesAllocated(Mockito.anyLong());
|
||||
@ -1194,7 +1194,7 @@ public class VirtualMachineManagerImplTest {
|
||||
when(cluster.getId()).thenReturn(1L);
|
||||
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(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_ram.getValue()).thenReturn("1.0");
|
||||
doReturn(true).when(virtualMachineManagerImpl).areAllVolumesAllocated(Mockito.anyLong());
|
||||
|
||||
@ -39,7 +39,7 @@ import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
|
||||
@Component
|
||||
@DB()
|
||||
@ -48,7 +48,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
|
||||
@Inject
|
||||
protected ServiceOfferingDetailsDao detailsDao;
|
||||
@Inject
|
||||
protected UserVmDetailsDao userVmDetailsDao;
|
||||
protected VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private DiskOfferingDao diskOfferingDao;
|
||||
|
||||
@ -176,7 +176,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
|
||||
if (vmId == null) {
|
||||
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 offering;
|
||||
@ -190,7 +190,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
|
||||
if (vmId == null) {
|
||||
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 offering;
|
||||
|
||||
@ -26,8 +26,8 @@ import javax.persistence.Table;
|
||||
import org.apache.cloudstack.api.ResourceDetail;
|
||||
|
||||
@Entity
|
||||
@Table(name = "user_vm_details")
|
||||
public class UserVmDetailVO implements ResourceDetail {
|
||||
@Table(name = "vm_instance_details")
|
||||
public class VMInstanceDetailVO implements ResourceDetail {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "id")
|
||||
@ -45,10 +45,10 @@ public class UserVmDetailVO implements ResourceDetail {
|
||||
@Column(name = "display")
|
||||
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.name = name;
|
||||
this.value = value;
|
||||
@ -57,7 +57,7 @@ import com.cloud.utils.db.SearchCriteria.Func;
|
||||
import com.cloud.utils.db.TransactionLegacy;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.NicVO;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
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;
|
||||
|
||||
@Inject
|
||||
protected UserVmDetailsDao _detailsDao;
|
||||
protected VMInstanceDetailsDao _detailsDao;
|
||||
@Inject
|
||||
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());
|
||||
|
||||
List<UserVmDetailVO> details = new ArrayList<UserVmDetailVO>();
|
||||
List<VMInstanceDetailVO> details = new ArrayList<VMInstanceDetailVO>();
|
||||
for (Map.Entry<String, String> entry : detailsStr.entrySet()) {
|
||||
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);
|
||||
|
||||
@ -19,7 +19,7 @@ package com.cloud.vm.dao;
|
||||
import org.apache.cloudstack.resourcedetail.ResourceDetailsDao;
|
||||
|
||||
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> {
|
||||
}
|
||||
@ -21,14 +21,14 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase;
|
||||
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
|
||||
@Component
|
||||
public class UserVmDetailsDaoImpl extends ResourceDetailsDaoBase<UserVmDetailVO> implements UserVmDetailsDao {
|
||||
public class VMInstanceDetailsDaoImpl extends ResourceDetailsDaoBase<VMInstanceDetailVO> implements VMInstanceDetailsDao {
|
||||
|
||||
@Override
|
||||
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));
|
||||
}
|
||||
|
||||
}
|
||||
@ -63,7 +63,7 @@
|
||||
<bean id="storagePoolHostDaoImpl" class="com.cloud.storage.dao.StoragePoolHostDaoImpl" />
|
||||
<bean id="storagePoolTagsDaoImpl" class="com.cloud.storage.dao.StoragePoolTagsDaoImpl" />
|
||||
<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="vMInstanceDaoImpl" class="com.cloud.vm.dao.VMInstanceDaoImpl" />
|
||||
<bean id="vMSnapshotDaoImpl" class="com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl" />
|
||||
|
||||
@ -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`)
|
||||
);
|
||||
|
||||
-- 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');
|
||||
UPDATE `cloud`.`backup_schedule` SET uuid = UUID();
|
||||
|
||||
@ -203,7 +203,7 @@ FROM
|
||||
LEFT JOIN `vpc` ON (((`networks`.`vpc_id` = `vpc`.`id`)
|
||||
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_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'))))
|
||||
LEFT JOIN `resource_tags` ON (((`resource_tags`.`resource_id` = `vm_instance`.`id`)
|
||||
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 `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 `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'))))
|
||||
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'))))
|
||||
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')))
|
||||
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'))
|
||||
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'))
|
||||
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'))));
|
||||
|
||||
@ -91,7 +91,7 @@ import com.cloud.vm.dao.DomainRouterDao;
|
||||
import com.cloud.vm.dao.NicDaoImpl;
|
||||
import com.cloud.vm.dao.SecondaryStorageVmDaoImpl;
|
||||
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.snapshot.dao.VMSnapshotDaoImpl;
|
||||
|
||||
@ -101,7 +101,7 @@ import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
|
||||
ConfigurationGroupDaoImpl.class, ConfigurationSubGroupDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, VMTemplateZoneDaoImpl.class,
|
||||
VMTemplateDetailsDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, DataCenterIpAddressDaoImpl.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,
|
||||
StoragePoolWorkDaoImpl.class, StorageCacheManagerImpl.class, UserDaoImpl.class, DataCenterDaoImpl.class, StoragePoolDetailsDaoImpl.class, DomainDaoImpl.class,
|
||||
DownloadMonitorImpl.class, AccountDaoImpl.class, ActionEventUtils.class, EventDaoImpl.class},
|
||||
|
||||
@ -92,10 +92,10 @@ import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.utils.Pair;
|
||||
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.constants.VmDetails;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||
@ -174,7 +174,7 @@ public class PresetVariableHelper {
|
||||
VMSnapshotDao vmSnapshotDao;
|
||||
|
||||
@Inject
|
||||
UserVmDetailsDao userVmDetailsDao;
|
||||
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
|
||||
@Inject
|
||||
BackupOfferingDao backupOfferingDao;
|
||||
@ -465,7 +465,7 @@ public class PresetVariableHelper {
|
||||
computingResources.setCpuSpeed(serviceOfferingVo.getSpeed());
|
||||
|
||||
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.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) {
|
||||
List<UserVmDetailVO> detailFiltered = details.stream().filter(det -> name.equals(det.getName())).collect(Collectors.toList());
|
||||
protected Integer getDetailByName(List<VMInstanceDetailVO> details, String name, Integer defaultValue) {
|
||||
List<VMInstanceDetailVO> detailFiltered = details.stream().filter(det -> name.equals(det.getName())).collect(Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isEmpty(detailFiltered)) {
|
||||
return defaultValue;
|
||||
}
|
||||
|
||||
UserVmDetailVO detail = detailFiltered.get(0);
|
||||
VMInstanceDetailVO detail = detailFiltered.get(0);
|
||||
|
||||
if (detail.getValue() != null) {
|
||||
return Integer.valueOf(detail.getValue());
|
||||
|
||||
@ -20,8 +20,8 @@ import java.util.Map;
|
||||
|
||||
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);
|
||||
}
|
||||
@ -20,7 +20,7 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.cloudstack.quota.vo.UserVmDetailVO;
|
||||
import org.apache.cloudstack.quota.vo.VMInstanceDetailVO;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.cloud.utils.db.GenericDaoBase;
|
||||
@ -28,10 +28,10 @@ import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
|
||||
@Component
|
||||
public class UserVmDetailsDaoImpl extends GenericDaoBase<UserVmDetailVO, Long> implements UserVmDetailsDao {
|
||||
private SearchBuilder<UserVmDetailVO> AllFieldsSearch;
|
||||
public class VMInstanceDetailsDaoImpl extends GenericDaoBase<VMInstanceDetailVO, Long> implements VMInstanceDetailsDao {
|
||||
private SearchBuilder<VMInstanceDetailVO> AllFieldsSearch;
|
||||
|
||||
public UserVmDetailsDaoImpl() {
|
||||
public VMInstanceDetailsDaoImpl() {
|
||||
AllFieldsSearch = createSearchBuilder();
|
||||
AllFieldsSearch.and("resourceId", AllFieldsSearch.entity().getResourceId(), 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
|
||||
public Map<String, String> listDetailsKeyPairs(long resourceId) {
|
||||
Map<String, String> details = new HashMap<String, String>();
|
||||
SearchCriteria<UserVmDetailVO> sc = AllFieldsSearch.create();
|
||||
SearchCriteria<VMInstanceDetailVO> sc = AllFieldsSearch.create();
|
||||
sc.setParameters("resourceId", resourceId);
|
||||
|
||||
List<UserVmDetailVO> results = search(sc, null);
|
||||
for (UserVmDetailVO result : results) {
|
||||
List<VMInstanceDetailVO> results = search(sc, null);
|
||||
for (VMInstanceDetailVO result : results) {
|
||||
details.put(result.getName(), result.getValue());
|
||||
}
|
||||
return details;
|
||||
@ -26,8 +26,8 @@ import javax.persistence.Table;
|
||||
import org.apache.cloudstack.api.ResourceDetail;
|
||||
|
||||
@Entity
|
||||
@Table(name = "user_vm_details")
|
||||
public class UserVmDetailVO implements ResourceDetail {
|
||||
@Table(name = "vm_instance_details")
|
||||
public class VMInstanceDetailVO implements ResourceDetail {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "id")
|
||||
@ -45,10 +45,10 @@ public class UserVmDetailVO implements ResourceDetail {
|
||||
@Column(name = "display")
|
||||
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.name = name;
|
||||
this.value = value;
|
||||
@ -25,7 +25,7 @@
|
||||
<bean id="QuotaEmailTemplatesDao"
|
||||
class="org.apache.cloudstack.quota.dao.QuotaEmailTemplatesDaoImpl" />
|
||||
<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="QuotaAlertManager" class="org.apache.cloudstack.quota.QuotaAlertManagerImpl" />
|
||||
|
||||
@ -93,9 +93,9 @@ import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.utils.Pair;
|
||||
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.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
import com.cloud.vm.snapshot.VMSnapshot;
|
||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||
@ -171,7 +171,7 @@ public class PresetVariableHelperTest {
|
||||
VolumeDao volumeDaoMock;
|
||||
|
||||
@Mock
|
||||
UserVmDetailsDao userVmDetailsDaoMock;
|
||||
VMInstanceDetailsDao vmInstanceDetailsDaoMock;
|
||||
|
||||
@InjectMocks
|
||||
PresetVariableHelper presetVariableHelperSpy = Mockito.spy(PresetVariableHelper.class);
|
||||
@ -296,11 +296,11 @@ public class PresetVariableHelperTest {
|
||||
return quotaTypesMap.entrySet();
|
||||
}
|
||||
|
||||
private List<UserVmDetailVO> getVmDetailsForTests() {
|
||||
List<UserVmDetailVO> details = new LinkedList<>();
|
||||
details.add(new UserVmDetailVO(1l, "test_with_value", "277", false));
|
||||
details.add(new UserVmDetailVO(1l, "test_with_invalid_value", "invalid", false));
|
||||
details.add(new UserVmDetailVO(1l, "test_with_null", null, false));
|
||||
private List<VMInstanceDetailVO> getVmDetailsForTests() {
|
||||
List<VMInstanceDetailVO> details = new LinkedList<>();
|
||||
details.add(new VMInstanceDetailVO(1l, "test_with_value", "277", false));
|
||||
details.add(new VMInstanceDetailVO(1l, "test_with_invalid_value", "invalid", false));
|
||||
details.add(new VMInstanceDetailVO(1l, "test_with_null", null, false));
|
||||
return details;
|
||||
}
|
||||
|
||||
@ -1245,7 +1245,7 @@ public class PresetVariableHelperTest {
|
||||
ComputingResources result = presetVariableHelperSpy.getPresetVariableValueComputingResource(vmInstanceVoMock, serviceOfferingVoMock);
|
||||
|
||||
Assert.assertEquals(expected.toString(), result.toString());
|
||||
Mockito.verify(userVmDetailsDaoMock, Mockito.never()).listDetails(Mockito.anyLong());
|
||||
Mockito.verify(vmInstanceDetailsDaoMock, Mockito.never()).listDetails(Mockito.anyLong());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -1263,7 +1263,7 @@ public class PresetVariableHelperTest {
|
||||
ComputingResources result = presetVariableHelperSpy.getPresetVariableValueComputingResource(vmInstanceVoMock, serviceOfferingVoMock);
|
||||
|
||||
Assert.assertEquals(expected.toString(), result.toString());
|
||||
Mockito.verify(userVmDetailsDaoMock).listDetails(Mockito.anyLong());
|
||||
Mockito.verify(vmInstanceDetailsDaoMock).listDetails(Mockito.anyLong());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@ -95,7 +95,7 @@ import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ -123,7 +123,7 @@ public class ImplicitPlannerTest {
|
||||
@Inject
|
||||
UserVmDao vmDao;
|
||||
@Inject
|
||||
UserVmDetailsDao vmDetailsDao;
|
||||
VMInstanceDetailsDao vmDetailsDao;
|
||||
@Inject
|
||||
VMInstanceDao vmInstanceDao;
|
||||
@Inject
|
||||
@ -489,8 +489,8 @@ public class ImplicitPlannerTest {
|
||||
}
|
||||
|
||||
@Bean
|
||||
public UserVmDetailsDao userVmDetailsDao() {
|
||||
return Mockito.mock(UserVmDetailsDao.class);
|
||||
public VMInstanceDetailsDao vmInstanceDetailsDao() {
|
||||
return Mockito.mock(VMInstanceDetailsDao.class);
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@ -17,9 +17,9 @@
|
||||
package com.cloud.kubernetes.cluster;
|
||||
|
||||
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.WORKER;
|
||||
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.DEFAULT;
|
||||
import static com.cloud.utils.NumbersUtil.toHumanReadableSize;
|
||||
import static com.cloud.vm.UserVmManager.AllowUserExpungeRecoverVm;
|
||||
|
||||
@ -47,28 +47,6 @@ import java.util.stream.Collectors;
|
||||
import javax.inject.Inject;
|
||||
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.Role;
|
||||
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.ResponseObject.ResponseView;
|
||||
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.DisassociateIPAddrCmd;
|
||||
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.UpdateFirewallRuleCmd;
|
||||
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.CreateKubernetesClusterCmd;
|
||||
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.framework.config.ConfigKey;
|
||||
import org.apache.cloudstack.managed.context.ManagedContextRunnable;
|
||||
import org.apache.commons.beanutils.BeanUtils;
|
||||
import org.apache.cloudstack.network.RoutedIpv4Manager;
|
||||
import org.apache.commons.beanutils.BeanUtils;
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.logging.log4j.Level;
|
||||
|
||||
import com.cloud.api.ApiDBUtils;
|
||||
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.vo.NetworkOfferingJoinVO;
|
||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||
import com.cloud.bgp.BGPService;
|
||||
import com.cloud.capacity.CapacityManager;
|
||||
import com.cloud.dc.ClusterDetailsDao;
|
||||
import com.cloud.dc.ClusterDetailsVO;
|
||||
import com.cloud.dc.ClusterVO;
|
||||
import com.cloud.dc.DataCenter;
|
||||
import com.cloud.dc.DataCenterVO;
|
||||
import com.cloud.dc.DedicatedResourceVO;
|
||||
import com.cloud.dc.dao.ClusterDao;
|
||||
import com.cloud.dc.dao.DataCenterDao;
|
||||
import com.cloud.dc.dao.DedicatedResourceDao;
|
||||
import com.cloud.deploy.DeployDestination;
|
||||
import com.cloud.domain.Domain;
|
||||
import com.cloud.event.ActionEvent;
|
||||
@ -159,13 +141,19 @@ import com.cloud.exception.ConcurrentOperationException;
|
||||
import com.cloud.exception.InsufficientCapacityException;
|
||||
import com.cloud.exception.InsufficientServerCapacityException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.ManagementServerException;
|
||||
import com.cloud.exception.PermissionDeniedException;
|
||||
import com.cloud.exception.ResourceAllocationException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.host.Host;
|
||||
import com.cloud.host.HostVO;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
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.KubernetesClusterAddWorker;
|
||||
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.KubernetesClusterStartWorker;
|
||||
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.NetworkDao;
|
||||
import com.cloud.network.dao.NetworkVO;
|
||||
import com.cloud.network.dao.NsxProviderDao;
|
||||
import com.cloud.network.dao.PhysicalNetworkDao;
|
||||
import com.cloud.network.element.NsxProviderVO;
|
||||
import com.cloud.network.router.NetworkHelper;
|
||||
import com.cloud.network.rules.FirewallRule;
|
||||
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.SecurityGroupManager;
|
||||
import com.cloud.network.security.SecurityGroupService;
|
||||
@ -214,6 +206,7 @@ import com.cloud.service.ServiceOfferingVO;
|
||||
import com.cloud.service.dao.ServiceOfferingDao;
|
||||
import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.dao.VMTemplateDao;
|
||||
import com.cloud.template.TemplateApiService;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.AccountService;
|
||||
@ -221,9 +214,13 @@ import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.SSHKeyPairVO;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.user.UserAccount;
|
||||
import com.cloud.user.UserDataVO;
|
||||
import com.cloud.user.UserVO;
|
||||
import com.cloud.user.dao.AccountDao;
|
||||
import com.cloud.user.dao.SSHKeyPairDao;
|
||||
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.Ternary;
|
||||
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.StateMachine2;
|
||||
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.VirtualMachine;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
import org.apache.logging.log4j.Level;
|
||||
|
||||
public class KubernetesClusterManagerImpl extends ManagerBase implements KubernetesClusterService {
|
||||
|
||||
@ -328,8 +327,6 @@ public class KubernetesClusterManagerImpl extends ManagerBase implements Kuberne
|
||||
@Inject
|
||||
protected UserDao userDao;
|
||||
@Inject
|
||||
protected UserVmDetailsDao userVmDetailsDao;
|
||||
@Inject
|
||||
protected VMInstanceDao vmInstanceDao;
|
||||
@Inject
|
||||
protected UserVmJoinDao userVmJoinDao;
|
||||
|
||||
@ -122,12 +122,12 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.fsm.NoTransitionException;
|
||||
import com.cloud.utils.fsm.StateMachine2;
|
||||
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.UserVmVO;
|
||||
import com.cloud.vm.VmDetailConstants;
|
||||
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.ETCD;
|
||||
@ -185,7 +185,7 @@ public class KubernetesClusterActionWorker {
|
||||
@Inject
|
||||
protected UserVmDao userVmDao;
|
||||
@Inject
|
||||
protected UserVmDetailsDao userVmDetailsDao;
|
||||
protected VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
protected UserVmService userVmService;
|
||||
@Inject
|
||||
@ -281,7 +281,7 @@ public class KubernetesClusterActionWorker {
|
||||
if (userVM == null) {
|
||||
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())) {
|
||||
return vmDetail.getValue();
|
||||
} else {
|
||||
@ -654,7 +654,7 @@ public class KubernetesClusterActionWorker {
|
||||
for (Long vmId : clusterVMs) {
|
||||
UserVm controlNode = userVmDao.findById(vmId);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -296,7 +296,7 @@ import com.cloud.vm.dao.NicSecondaryIpDaoImpl;
|
||||
import com.cloud.vm.dao.SecondaryStorageVmDaoImpl;
|
||||
import com.cloud.vm.dao.UserVmCloneSettingDaoImpl;
|
||||
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.snapshot.VMSnapshotManager;
|
||||
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,
|
||||
StoragePoolJoinDaoImpl.class, SyncQueueItemDaoImpl.class, TemplateDataStoreDaoImpl.class, TemplateJoinDaoImpl.class, UploadDaoImpl.class, UsageEventDaoImpl.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,
|
||||
VlanDaoImpl.class, VmDiskStatisticsDaoImpl.class, VmRulesetLogDaoImpl.class, VolumeDaoImpl.class, VolumeJoinDaoImpl.class, VpcDaoImpl.class,
|
||||
VpcGatewayDaoImpl.class, VpcManagerImpl.class, VpcOfferingDaoImpl.class, VpcOfferingServiceMapDaoImpl.class, VpcServiceMapDaoImpl.class,
|
||||
|
||||
@ -61,10 +61,10 @@ import com.cloud.storage.dao.GuestOSDao;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.utils.Pair;
|
||||
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.VirtualMachineProfile;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||
@ -103,7 +103,7 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
|
||||
@Inject
|
||||
CapacityDao _capacityDao;
|
||||
@Inject
|
||||
UserVmDetailsDao _userVmDetailsDao;
|
||||
VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||
|
||||
boolean _checkHvm = true;
|
||||
static DecimalFormat decimalFormat = new DecimalFormat("#.##");
|
||||
@ -124,9 +124,9 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
|
||||
Account account = vmProfile.getOwner();
|
||||
|
||||
boolean isVMDeployedWithUefi = false;
|
||||
UserVmDetailVO userVmDetailVO = _userVmDetailsDao.findDetail(vmProfile.getId(), "UEFI");
|
||||
if(userVmDetailVO != null){
|
||||
if ("secure".equalsIgnoreCase(userVmDetailVO.getValue()) || "legacy".equalsIgnoreCase(userVmDetailVO.getValue())) {
|
||||
VMInstanceDetailVO vmInstanceDetailVO = _vmInstanceDetailsDao.findDetail(vmProfile.getId(), "UEFI");
|
||||
if(vmInstanceDetailVO != null){
|
||||
if ("secure".equalsIgnoreCase(vmInstanceDetailVO.getValue()) || "legacy".equalsIgnoreCase(vmInstanceDetailVO.getValue())) {
|
||||
isVMDeployedWithUefi = true;
|
||||
}
|
||||
}
|
||||
|
||||
@ -343,7 +343,7 @@ import com.cloud.vm.InstanceGroup;
|
||||
import com.cloud.vm.InstanceGroupVO;
|
||||
import com.cloud.vm.NicProfile;
|
||||
import com.cloud.vm.NicVO;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.UserVmManager;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
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.NicSecondaryIpVO;
|
||||
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.snapshot.VMSnapshot;
|
||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||
@ -434,7 +434,7 @@ public class ApiDBUtils {
|
||||
static HighAvailabilityManager s_haMgr;
|
||||
static VpcManager s_vpcMgr;
|
||||
static TaggedResourceService s_taggedResourceService;
|
||||
static UserVmDetailsDao s_userVmDetailsDao;
|
||||
static VMInstanceDetailsDao s_vmInstanceDetailsDao;
|
||||
static SSHKeyPairDao s_sshKeyPairDao;
|
||||
|
||||
static ConditionDao s_asConditionDao;
|
||||
@ -639,7 +639,7 @@ public class ApiDBUtils {
|
||||
@Inject
|
||||
private TaggedResourceService taggedResourceService;
|
||||
@Inject
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private SSHKeyPairDao sshKeyPairDao;
|
||||
|
||||
@ -839,7 +839,7 @@ public class ApiDBUtils {
|
||||
s_vpcMgr = vpcMgr;
|
||||
s_taggedResourceService = taggedResourceService;
|
||||
s_sshKeyPairDao = sshKeyPairDao;
|
||||
s_userVmDetailsDao = userVmDetailsDao;
|
||||
s_vmInstanceDetailsDao = vmInstanceDetailsDao;
|
||||
s_asConditionDao = asConditionDao;
|
||||
s_asPolicyDao = asPolicyDao;
|
||||
s_asPolicyConditionMapDao = asPolicyConditionMapDao;
|
||||
@ -1621,8 +1621,8 @@ public class ApiDBUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static UserVmDetailVO findPublicKeyByVmId(long vmId) {
|
||||
return s_userVmDetailsDao.findDetail(vmId, VmDetailConstants.SSH_PUBLIC_KEY);
|
||||
public static VMInstanceDetailVO findPublicKeyByVmId(long vmId) {
|
||||
return s_vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.SSH_PUBLIC_KEY);
|
||||
}
|
||||
|
||||
public static void getAutoScaleVmGroupPolicies(long vmGroupId, List<AutoScalePolicy> scaleUpPolicies, List<AutoScalePolicy> scaleDownPolicies) {
|
||||
|
||||
@ -36,12 +36,6 @@ import java.util.stream.Stream;
|
||||
|
||||
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.ACLType;
|
||||
import org.apache.cloudstack.acl.SecurityChecker;
|
||||
@ -237,8 +231,11 @@ import com.cloud.cpu.CPU;
|
||||
import com.cloud.dc.ClusterVO;
|
||||
import com.cloud.dc.DataCenter;
|
||||
import com.cloud.dc.DedicatedResourceVO;
|
||||
import com.cloud.dc.Pod;
|
||||
import com.cloud.dc.dao.ClusterDao;
|
||||
import com.cloud.dc.dao.DataCenterDao;
|
||||
import com.cloud.dc.dao.DedicatedResourceDao;
|
||||
import com.cloud.dc.dao.HostPodDao;
|
||||
import com.cloud.domain.Domain;
|
||||
import com.cloud.domain.DomainVO;
|
||||
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.offering.DiskOffering;
|
||||
import com.cloud.offering.ServiceOffering;
|
||||
import com.cloud.org.Cluster;
|
||||
import com.cloud.org.Grouping;
|
||||
import com.cloud.projects.Project;
|
||||
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.resource.ResourceManager;
|
||||
import com.cloud.resource.icon.dao.ResourceIconDao;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.server.ResourceManagerUtil;
|
||||
import com.cloud.server.ResourceMetaDataService;
|
||||
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.DiskOfferingDao;
|
||||
import com.cloud.storage.dao.GuestOSDao;
|
||||
import com.cloud.storage.dao.StoragePoolAndAccessGroupMapDao;
|
||||
import com.cloud.storage.dao.StoragePoolHostDao;
|
||||
import com.cloud.storage.dao.StoragePoolTagsDao;
|
||||
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.InstanceGroupVMMapVO;
|
||||
import com.cloud.vm.NicVO;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
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.NicDao;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
|
||||
@Component
|
||||
public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements QueryService, Configurable {
|
||||
@ -591,7 +591,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
||||
AffinityGroupVMMapDao affinityGroupVMMapDao;
|
||||
|
||||
@Inject
|
||||
UserVmDetailsDao userVmDetailsDao;
|
||||
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
|
||||
@Inject
|
||||
SSHKeyPairDao sshKeyPairDao;
|
||||
@ -1519,7 +1519,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
||||
}
|
||||
|
||||
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().getValue(), SearchCriteria.Op.EQ).values(VMLeaseManager.LeaseActionExecution.PENDING.name());
|
||||
userVmSearchBuilder.join("userVmToLeased", leasedInstancesSearch, leasedInstancesSearch.entity().getResourceId(),
|
||||
@ -1527,8 +1527,8 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
||||
}
|
||||
|
||||
if (keyPairName != null) {
|
||||
SearchBuilder<UserVmDetailVO> vmDetailSearchKeys = userVmDetailsDao.createSearchBuilder();
|
||||
SearchBuilder<UserVmDetailVO> vmDetailSearchVmIds = userVmDetailsDao.createSearchBuilder();
|
||||
SearchBuilder<VMInstanceDetailVO> vmDetailSearchKeys = vmInstanceDetailsDao.createSearchBuilder();
|
||||
SearchBuilder<VMInstanceDetailVO> vmDetailSearchVmIds = vmInstanceDetailsDao.createSearchBuilder();
|
||||
vmDetailSearchKeys.and(vmDetailSearchKeys.entity().getName(), Op.EQ).values(SSH_PUBLIC_KEY);
|
||||
|
||||
SearchBuilder<SSHKeyPairVO> sshKeyPairSearch = sshKeyPairDao.createSearchBuilder();
|
||||
|
||||
@ -16,6 +16,44 @@
|
||||
// under the License.
|
||||
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.ApiResponseHelper;
|
||||
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.Op;
|
||||
import com.cloud.utils.net.Dhcp;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.UserVmManager;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.VmStats;
|
||||
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
||||
import com.cloud.vm.dao.NicSecondaryIpVO;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
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;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
|
||||
@Component
|
||||
public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJoinVO, UserVmResponse> implements UserVmJoinDao {
|
||||
@ -97,7 +99,7 @@ public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJo
|
||||
@Inject
|
||||
public AccountManager _accountMgr;
|
||||
@Inject
|
||||
private UserVmDetailsDao _userVmDetailsDao;
|
||||
private VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private UserDao _userDao;
|
||||
@Inject
|
||||
@ -415,17 +417,17 @@ public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJo
|
||||
// set resource details map
|
||||
// Allow passing details to end user
|
||||
// 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) {
|
||||
Map<String, String> resourceDetails = new HashMap<String, String>();
|
||||
for (UserVmDetailVO userVmDetailVO : vmDetails) {
|
||||
if (!userVmDetailVO.getName().startsWith(ApiConstants.PROPERTIES) ||
|
||||
(UserVmManager.DisplayVMOVFProperties.value() && userVmDetailVO.getName().startsWith(ApiConstants.PROPERTIES))) {
|
||||
resourceDetails.put(userVmDetailVO.getName(), userVmDetailVO.getValue());
|
||||
for (VMInstanceDetailVO vmInstanceDetailVO : vmDetails) {
|
||||
if (!vmInstanceDetailVO.getName().startsWith(ApiConstants.PROPERTIES) ||
|
||||
(UserVmManager.DisplayVMOVFProperties.value() && vmInstanceDetailVO.getName().startsWith(ApiConstants.PROPERTIES))) {
|
||||
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.setBootMode(userVmDetailVO.getValue().toLowerCase());
|
||||
userVmResponse.setBootMode(vmInstanceDetailVO.getValue().toLowerCase());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,7 +89,7 @@ import com.cloud.utils.db.TransactionStatus;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.fsm.StateListener;
|
||||
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.VMInstanceVO;
|
||||
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.VmDetailConstants;
|
||||
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.snapshot.dao.VMSnapshotDao;
|
||||
|
||||
@ -130,7 +130,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
||||
@Inject
|
||||
protected UserVmDao _userVMDao;
|
||||
@Inject
|
||||
protected UserVmDetailsDao _userVmDetailsDao;
|
||||
protected VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||
@Inject
|
||||
ClusterDao _clusterDao;
|
||||
@Inject
|
||||
@ -660,7 +660,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
||||
}
|
||||
|
||||
protected Map<String, String> getVmDetailsForCapacityCalculation(long vmId) {
|
||||
return _userVmDetailsDao.listDetailsKeyPairs(vmId,
|
||||
return _vmInstanceDetailsDao.listDetailsKeyPairs(vmId,
|
||||
List.of(VmDetailConstants.CPU_OVER_COMMIT_RATIO,
|
||||
VmDetailConstants.MEMORY_OVER_COMMIT_RATIO,
|
||||
UsageEventVO.DynamicParameters.memory.name(),
|
||||
@ -769,7 +769,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
||||
} else {
|
||||
// signal if not done already, that the VM has been stopped for skip.counting.hours,
|
||||
// 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())) {
|
||||
_messageBus.publish(_name, "VM_ReservedCapacity_Free", PublishScope.LOCAL, vm);
|
||||
|
||||
|
||||
@ -146,7 +146,7 @@ import com.cloud.vm.VirtualMachineManager;
|
||||
import com.cloud.vm.VirtualMachineName;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
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.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
@ -208,7 +208,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
|
||||
@Inject
|
||||
private PrimaryDataStoreDao primaryDataStoreDao;
|
||||
@Inject
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private ResourceManager resourceManager;
|
||||
@Inject
|
||||
@ -1244,7 +1244,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
|
||||
final Certificate certificate = caManager.issueCertificate(null, Arrays.asList(profile.getHostName(), profile.getInstanceName()),
|
||||
new ArrayList<>(ipAddressDetails.values()), CAManager.CertValidityPeriod.value(), null);
|
||||
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);
|
||||
|
||||
StringBuilder buf = profile.getBootArgsBuilder();
|
||||
|
||||
@ -72,7 +72,7 @@ import com.cloud.utils.component.AdapterBase;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
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.host.dao.HostDetailsDao;
|
||||
|
||||
@ -98,7 +98,7 @@ public class FirstFitPlanner extends AdapterBase implements DeploymentClusterPla
|
||||
@Inject
|
||||
protected UserVmDao vmDao;
|
||||
@Inject
|
||||
protected UserVmDetailsDao vmDetailsDao;
|
||||
protected VMInstanceDetailsDao vmDetailsDao;
|
||||
@Inject
|
||||
protected VMInstanceDao vmInstanceDao;
|
||||
@Inject
|
||||
|
||||
@ -77,7 +77,7 @@ import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.NicSecondaryIpDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
public abstract class HypervisorGuruBase extends AdapterBase implements HypervisorGuru, Configurable {
|
||||
@ -102,7 +102,7 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis
|
||||
protected
|
||||
VMInstanceDao virtualMachineDao;
|
||||
@Inject
|
||||
private UserVmDetailsDao _userVmDetailsDao;
|
||||
private VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private NicSecondaryIpDao _nicSecIpDao;
|
||||
@Inject
|
||||
@ -315,7 +315,7 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis
|
||||
to.setArch("x86_64");
|
||||
}
|
||||
|
||||
Map<String, String> detailsInVm = _userVmDetailsDao.listDetailsKeyPairs(vm.getId());
|
||||
Map<String, String> detailsInVm = _vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
|
||||
if (detailsInVm != null) {
|
||||
to.setDetails(detailsInVm);
|
||||
addExtraConfig(detailsInVm, to, vm.getAccountId(), vm.getHypervisorType());
|
||||
|
||||
@ -23,12 +23,13 @@ import com.cloud.offering.ServiceOffering;
|
||||
import com.cloud.service.ServiceOfferingDetailsVO;
|
||||
import com.cloud.service.dao.ServiceOfferingDetailsDao;
|
||||
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.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@ -46,7 +47,7 @@ public class DpdkHelperImpl implements DpdkHelper {
|
||||
@Inject
|
||||
private VMInstanceDao vmInstanceDao;
|
||||
@Inject
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
|
||||
protected Logger logger = LogManager.getLogger(getClass());
|
||||
|
||||
@ -93,7 +94,7 @@ public class DpdkHelperImpl implements DpdkHelper {
|
||||
return false;
|
||||
}
|
||||
|
||||
List<UserVmDetailVO> details = userVmDetailsDao.listDetails(vm.getId());
|
||||
List<VMInstanceDetailVO> details = vmInstanceDetailsDao.listDetails(vm.getId());
|
||||
List<ServiceOfferingDetailsVO> offeringDetails = serviceOfferingDetailsDao.listDetails(vm.getServiceOfferingId());
|
||||
|
||||
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
|
||||
*/
|
||||
private boolean hasRequiredDPDKConfigurations(List<UserVmDetailVO> details, List<ServiceOfferingDetailsVO> offeringDetails) {
|
||||
private boolean hasRequiredDPDKConfigurations(List<VMInstanceDetailVO> details, List<ServiceOfferingDetailsVO> offeringDetails) {
|
||||
if (CollectionUtils.isEmpty(details)) {
|
||||
return hasValidDPDKConfigurationsOnServiceOffering(false, false, offeringDetails);
|
||||
} else {
|
||||
boolean isNumaSet = false;
|
||||
boolean isHugePagesSet = false;
|
||||
for (UserVmDetailVO detail : details) {
|
||||
for (VMInstanceDetailVO detail : details) {
|
||||
if (detail.getName().equals(DPDK_NUMA)) {
|
||||
isNumaSet = true;
|
||||
} else if (detail.getName().equals(DPDK_HUGE_PAGES)) {
|
||||
|
||||
@ -66,7 +66,7 @@ import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.db.TransactionCallback;
|
||||
import com.cloud.utils.db.TransactionStatus;
|
||||
import com.cloud.vm.dao.NicDetailsDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
|
||||
@Component
|
||||
public class ResourceMetaDataManagerImpl extends ManagerBase implements ResourceMetaDataService, ResourceMetaDataManager {
|
||||
@ -75,7 +75,7 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource
|
||||
@Inject
|
||||
NicDetailsDao _nicDetailDao;
|
||||
@Inject
|
||||
UserVmDetailsDao _userVmDetailDao;
|
||||
VMInstanceDetailsDao _userVmDetailDao;
|
||||
@Inject
|
||||
DataCenterDetailsDao _dcDetailsDao;
|
||||
@Inject
|
||||
|
||||
@ -84,14 +84,14 @@ import com.cloud.utils.fsm.StateMachine2;
|
||||
import com.cloud.vm.Nic;
|
||||
import com.cloud.vm.NicProfile;
|
||||
import com.cloud.vm.ReservationContext;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachineManager;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.VmDetailConstants;
|
||||
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,
|
||||
UserDataServiceProvider, DhcpServiceProvider, DnsServiceProvider,
|
||||
@ -104,7 +104,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
||||
@Inject
|
||||
UserVmDao _userVmDao;
|
||||
@Inject
|
||||
UserVmDetailsDao _userVmDetailsDao;
|
||||
VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||
@Inject
|
||||
ConfigurationManager _configMgr;
|
||||
@Inject
|
||||
@ -224,7 +224,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -299,7 +299,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
||||
final String password_encrypted = DBEncryptionUtil.encrypt(password);
|
||||
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);
|
||||
_userVmDao.update(userVmVO.getId(), userVmVO);
|
||||
@ -530,7 +530,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
||||
}
|
||||
|
||||
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 (Location.HOST.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) {
|
||||
return Location.HOST;
|
||||
@ -544,7 +544,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
||||
}
|
||||
|
||||
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())) {
|
||||
return true;
|
||||
}
|
||||
@ -552,7 +552,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
||||
}
|
||||
|
||||
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) {
|
||||
return isConfigDriveIsoOnHostCache(vmId);
|
||||
}
|
||||
@ -681,15 +681,15 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
||||
}
|
||||
|
||||
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 (!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 {
|
||||
_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) {
|
||||
|
||||
@ -262,7 +262,7 @@ import com.cloud.vm.dao.DomainRouterDao;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.NicIpAliasDao;
|
||||
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.reflect.TypeToken;
|
||||
|
||||
@ -310,7 +310,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
|
||||
@Inject protected RemoteAccessVpnDao _vpnDao;
|
||||
@Inject protected NicDao _nicDao;
|
||||
@Inject private NicIpAliasDao _nicIpAliasDao;
|
||||
@Inject private UserVmDetailsDao _vmDetailsDao;
|
||||
@Inject private VMInstanceDetailsDao _vmDetailsDao;
|
||||
@Inject protected VirtualRouterProviderDao _vrProviderDao;
|
||||
@Inject private ManagementServerHostDao _msHostDao;
|
||||
@Inject private Site2SiteCustomerGatewayDao _s2sCustomerGatewayDao;
|
||||
|
||||
@ -215,7 +215,7 @@ import com.cloud.vm.VirtualMachineManager;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||
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.google.gson.Gson;
|
||||
|
||||
@ -305,7 +305,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
||||
@Inject
|
||||
private ClusterVSMMapDao _clusterVSMMapDao;
|
||||
@Inject
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private AnnotationDao annotationDao;
|
||||
@Inject
|
||||
@ -1692,8 +1692,8 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
||||
for (VMInstanceVO vm : vms) {
|
||||
GetVncPortAnswer vmVncPortAnswer = (GetVncPortAnswer) _agentMgr.easySend(hostId, new GetVncPortCommand(vm.getId(), vm.getInstanceName()));
|
||||
if (vmVncPortAnswer != null) {
|
||||
userVmDetailsDao.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_ADDRESS, vmVncPortAnswer.getAddress(), true);
|
||||
vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT, String.valueOf(vmVncPortAnswer.getPort()), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,12 +69,12 @@ import com.cloud.utils.StringUtils;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.component.ManagerBase;
|
||||
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.VirtualMachine.State;
|
||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||
import com.cloud.vm.VmDetailConstants;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
public class RollingMaintenanceManagerImpl extends ManagerBase implements RollingMaintenanceManager {
|
||||
@ -90,7 +90,7 @@ public class RollingMaintenanceManagerImpl extends ManagerBase implements Rollin
|
||||
@Inject
|
||||
private VMInstanceDao vmInstanceDao;
|
||||
@Inject
|
||||
protected UserVmDetailsDao userVmDetailsDao;
|
||||
protected VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private ServiceOfferingDao serviceOfferingDao;
|
||||
@Inject
|
||||
@ -689,12 +689,12 @@ public class RollingMaintenanceManagerImpl extends ManagerBase implements Rollin
|
||||
return new Ternary<>(cpu, speed, ramSize);
|
||||
}
|
||||
|
||||
List<UserVmDetailVO> vmDetails = userVmDetailsDao.listDetails(runningVM.getId());
|
||||
List<VMInstanceDetailVO> vmDetails = vmInstanceDetailsDao.listDetails(runningVM.getId());
|
||||
if (CollectionUtils.isEmpty(vmDetails)) {
|
||||
return new Ternary<>(cpu, speed, ramSize);
|
||||
}
|
||||
|
||||
for (UserVmDetailVO vmDetail : vmDetails) {
|
||||
for (VMInstanceDetailVO vmDetail : vmDetails) {
|
||||
if (StringUtils.isBlank(vmDetail.getName()) || StringUtils.isBlank(vmDetail.getValue())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -848,7 +848,7 @@ import com.cloud.vm.DomainRouterVO;
|
||||
import com.cloud.vm.InstanceGroupVO;
|
||||
import com.cloud.vm.NicVO;
|
||||
import com.cloud.vm.SecondaryStorageVmVO;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.UserVmManager;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
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.SecondaryStorageVmDao;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
public class ManagementServerImpl extends ManagerBase implements ManagementServer, Configurable {
|
||||
@ -894,7 +894,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
|
||||
@Inject
|
||||
private ClusterDao _clusterDao;
|
||||
@Inject
|
||||
protected UserVmDetailsDao _UserVmDetailsDao;
|
||||
protected VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private SecondaryStorageVmDao _secStorageVmDao;
|
||||
@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) {
|
||||
UserVmDetailVO userVmDetailVO = _UserVmDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString());
|
||||
if (userVmDetailVO != null &&
|
||||
(ApiConstants.BootMode.LEGACY.toString().equalsIgnoreCase(userVmDetailVO.getValue()) ||
|
||||
ApiConstants.BootMode.SECURE.toString().equalsIgnoreCase(userVmDetailVO.getValue()))) {
|
||||
VMInstanceDetailVO vmInstanceDetailVO = _vmInstanceDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString());
|
||||
if (vmInstanceDetailVO != null &&
|
||||
(ApiConstants.BootMode.LEGACY.toString().equalsIgnoreCase(vmInstanceDetailVO.getValue()) ||
|
||||
ApiConstants.BootMode.SECURE.toString().equalsIgnoreCase(vmInstanceDetailVO.getValue()))) {
|
||||
logger.info(" Live Migration of UEFI enabled VM : " + vm.getInstanceName() + " is not supported");
|
||||
if (CollectionUtils.isEmpty(filteredHosts)) {
|
||||
filteredHosts = new ArrayList<>(allHosts);
|
||||
|
||||
@ -215,7 +215,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.fsm.NoTransitionException;
|
||||
import com.cloud.utils.fsm.StateMachine2;
|
||||
import com.cloud.vm.DiskProfile;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.UserVmManager;
|
||||
import com.cloud.vm.UserVmService;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
@ -237,7 +237,7 @@ import com.cloud.vm.VmWorkResizeVolume;
|
||||
import com.cloud.vm.VmWorkSerializer;
|
||||
import com.cloud.vm.VmWorkTakeVolumeSnapshot;
|
||||
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.snapshot.VMSnapshotVO;
|
||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||
@ -283,7 +283,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
||||
@Inject
|
||||
private UserVmDao _userVmDao;
|
||||
@Inject
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private UserVmService _userVmService;
|
||||
@Inject
|
||||
@ -1597,13 +1597,13 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
||||
|
||||
_volsDao.update(volume.getId(), volume);
|
||||
if (Volume.Type.ROOT.equals(volume.getVolumeType()) && userVm != null) {
|
||||
UserVmDetailVO userVmDetailVO = userVmDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
|
||||
if (userVmDetailVO != null) {
|
||||
userVmDetailVO.setValue(String.valueOf(newSize/ GiB_TO_BYTES));
|
||||
userVmDetailsDao.update(userVmDetailVO.getId(), userVmDetailVO);
|
||||
VMInstanceDetailVO vmInstanceDetailVO = vmInstanceDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
|
||||
if (vmInstanceDetailVO != null) {
|
||||
vmInstanceDetailVO.setValue(String.valueOf(newSize/ GiB_TO_BYTES));
|
||||
vmInstanceDetailsDao.update(vmInstanceDetailVO.getId(), vmInstanceDetailVO);
|
||||
} else {
|
||||
UserVmDetailVO detailVO = new UserVmDetailVO(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE, String.valueOf(newSize/ GiB_TO_BYTES), true);
|
||||
userVmDetailsDao.persist(detailVO);
|
||||
VMInstanceDetailVO detailVO = new VMInstanceDetailVO(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE, String.valueOf(newSize/ GiB_TO_BYTES), true);
|
||||
vmInstanceDetailsDao.persist(detailVO);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -59,8 +59,6 @@ import javax.naming.ConfigurationException;
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
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.ACLType;
|
||||
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.PrimaryDataStore;
|
||||
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.VolumeInfo;
|
||||
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.utils.bytescale.ByteScaleUtils;
|
||||
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.schedule.VMScheduleManager;
|
||||
import org.apache.cloudstack.vm.UnmanagedVMsManager;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
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.deploy.DataCenterDeployment;
|
||||
import com.cloud.deploy.DeployDestination;
|
||||
import com.cloud.deploy.DeploymentPlan;
|
||||
import com.cloud.deploy.DeploymentPlanner;
|
||||
import com.cloud.deploy.DeploymentPlanner.ExcludeList;
|
||||
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.Service;
|
||||
import com.cloud.network.NetworkModel;
|
||||
import com.cloud.network.NetworkService;
|
||||
import com.cloud.network.Networks.TrafficType;
|
||||
import com.cloud.network.PhysicalNetwork;
|
||||
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.NicExtraDhcpOptionDao;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VmStatsDao;
|
||||
import com.cloud.vm.snapshot.VMSnapshotManager;
|
||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||
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 {
|
||||
|
||||
@ -491,7 +490,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
@Inject
|
||||
private SSHKeyPairDao _sshKeyPairDao;
|
||||
@Inject
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private HypervisorCapabilitiesDao _hypervisorCapabilitiesDao;
|
||||
@Inject
|
||||
@ -1060,7 +1059,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
}
|
||||
|
||||
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 {
|
||||
@ -2863,20 +2862,20 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
final List<String> userReadOnlySettings = Stream.of(QueryService.UserVMReadOnlyDetails.value().split(","))
|
||||
.map(item -> (item).trim())
|
||||
.collect(Collectors.toList());
|
||||
List<UserVmDetailVO> existingDetails = userVmDetailsDao.listDetails(id);
|
||||
List<VMInstanceDetailVO> existingDetails = vmInstanceDetailsDao.listDetails(id);
|
||||
if (cleanupDetails){
|
||||
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())) {
|
||||
userVmDetailsDao.removeDetail(id, detail.getName());
|
||||
vmInstanceDetailsDao.removeDetail(id, detail.getName());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (final UserVmDetailVO detail : existingDetails) {
|
||||
for (final VMInstanceDetailVO detail : existingDetails) {
|
||||
if (detail != null && !userDenyListedSettings.contains(detail.getName())
|
||||
&& !userReadOnlySettings.contains(detail.getName()) && detail.isDisplay()
|
||||
&& !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).
|
||||
for (final UserVmDetailVO detail : existingDetails) {
|
||||
for (final VMInstanceDetailVO detail : existingDetails) {
|
||||
if (userDenyListedSettings.contains(detail.getName()) || userReadOnlySettings.contains(detail.getName())) {
|
||||
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
|
||||
for (final UserVmDetailVO existingDetail : existingDetails) {
|
||||
for (final VMInstanceDetailVO existingDetail : existingDetails) {
|
||||
if (!existingDetail.isDisplay() || isExtraConfig(existingDetail.getName())) {
|
||||
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());
|
||||
}
|
||||
UserVmDetailVO uefiDetail = userVmDetailsDao.findDetail(cmd.getId(), ApiConstants.BootType.UEFI.toString());
|
||||
VMInstanceDetailVO uefiDetail = vmInstanceDetailsDao.findDetail(cmd.getId(), ApiConstants.BootType.UEFI.toString());
|
||||
if (uefiDetail != null) {
|
||||
addVmUefiBootOptionsToParams(additonalParams, uefiDetail.getName(), uefiDetail.getValue());
|
||||
}
|
||||
@ -5111,7 +5110,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
podId = adminCmd.getPodId();
|
||||
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) {
|
||||
addVmUefiBootOptionsToParams(additionalParams, uefiDetail.getName(), uefiDetail.getValue());
|
||||
}
|
||||
@ -5217,7 +5216,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
@Override
|
||||
public boolean finalizeVirtualMachineProfile(VirtualMachineProfile profile, DeployDestination dest, ReservationContext context) {
|
||||
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);
|
||||
StringBuilder buf = profile.getBootArgsBuilder();
|
||||
if (CKS_NODE.equals(vm.getUserVmType()) || SHAREDFSVM.equals(vm.getUserVmType())) {
|
||||
@ -5689,7 +5688,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
// display purposes
|
||||
if (template.isEnablePassword()) {
|
||||
if (vm.getDetail(VmDetailConstants.PASSWORD) != null) {
|
||||
userVmDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
|
||||
vmInstanceDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
|
||||
}
|
||||
vm.setUpdateParameters(false);
|
||||
_vmDao.update(vm.getId(), vm);
|
||||
@ -6399,7 +6398,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
String instanceUuid = instance.getUuid();
|
||||
|
||||
// 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));
|
||||
String leaseExecution = vmDetails.get(VmDetailConstants.INSTANCE_LEASE_EXECUTION);
|
||||
String leaseExpiryDate = vmDetails.get(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
|
||||
@ -6432,7 +6431,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
}
|
||||
|
||||
if (leaseDuration < 1) {
|
||||
userVmDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION,
|
||||
vmInstanceDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION,
|
||||
VMLeaseManager.LeaseActionExecution.DISABLED.name(), false);
|
||||
ActionEventUtils.onActionEvent(CallContext.current().getCallingUserId(), instance.getAccountId(), instance.getDomainId(),
|
||||
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");
|
||||
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
|
||||
String formattedLeaseExpiryDate = sdf.format(leaseExpiryDate);
|
||||
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE, formattedLeaseExpiryDate, false);
|
||||
userVmDetailsDao.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_EXPIRY_DATE, formattedLeaseExpiryDate, false);
|
||||
vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION, leaseExpiryAction.name(), 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);
|
||||
}
|
||||
|
||||
@ -6496,7 +6495,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
boolean validXenOrVmwareConfiguration = isValidXenOrVmwareConfiguration(cfg, allowedKeyList);
|
||||
String[] paramArray = cfg.split("=");
|
||||
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 {
|
||||
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(",");
|
||||
boolean validXenOrVmwareConfiguration = isValidXenOrVmwareConfiguration(cfg, allowedKeyList);
|
||||
if (validXenOrVmwareConfiguration) {
|
||||
userVmDetailsDao.addDetail(vm.getId(), extraConfigKey + String.valueOf(i), cfg, true);
|
||||
vmInstanceDetailsDao.addDetail(vm.getId(), extraConfigKey + String.valueOf(i), cfg, true);
|
||||
i++;
|
||||
} else {
|
||||
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);
|
||||
extraConfigValue = cfg;
|
||||
}
|
||||
userVmDetailsDao.addDetail(vm.getId(), extraConfigKey, extraConfigValue, true);
|
||||
vmInstanceDetailsDao.addDetail(vm.getId(), extraConfigKey, extraConfigValue, true);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
@ -8794,7 +8793,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
vm.setUpdateParameters(false);
|
||||
_vmDao.loadDetails(vm);
|
||||
if (vm.getDetail(VmDetailConstants.PASSWORD) != null) {
|
||||
userVmDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
|
||||
vmInstanceDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
|
||||
}
|
||||
_vmDao.update(vm.getId(), vm);
|
||||
}
|
||||
@ -8816,7 +8815,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
VolumeVO resizedVolume = (VolumeVO) vol;
|
||||
Long size = 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) {
|
||||
size = template.getSize();
|
||||
} else {
|
||||
@ -8824,7 +8823,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
if (template.getSize() >= rootDiskSize) {
|
||||
size = template.getSize();
|
||||
if (update) {
|
||||
userVmDetailsDao.remove(vmRootDiskSizeDetail.getId());
|
||||
vmInstanceDetailsDao.remove(vmRootDiskSizeDetail.getId());
|
||||
}
|
||||
} else {
|
||||
size = rootDiskSize;
|
||||
@ -8865,13 +8864,13 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
if (update) {
|
||||
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 (vmRootDiskSizeDetail != null) {
|
||||
vmRootDiskSizeDetail.setValue(details.get(VmDetailConstants.ROOT_DISK_SIZE));
|
||||
userVmDetailsDao.update(vmRootDiskSizeDetail.getId(), vmRootDiskSizeDetail);
|
||||
vmInstanceDetailsDao.update(vmRootDiskSizeDetail.getId(), vmRootDiskSizeDetail);
|
||||
} 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));
|
||||
}
|
||||
}
|
||||
@ -9336,7 +9335,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
||||
|
||||
private void unmanageVMFromDB(long vmId) {
|
||||
VMInstanceVO vm = _vmInstanceDao.findById(vmId);
|
||||
userVmDetailsDao.removeDetails(vmId);
|
||||
vmInstanceDetailsDao.removeDetails(vmId);
|
||||
vm.setState(State.Expunging);
|
||||
vm.setRemoved(new Date());
|
||||
_vmInstanceDao.update(vm.getId(), vm);
|
||||
|
||||
@ -109,7 +109,7 @@ import com.cloud.utils.db.TransactionCallbackWithException;
|
||||
import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
|
||||
import com.cloud.utils.db.TransactionStatus;
|
||||
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.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
@ -123,7 +123,7 @@ import com.cloud.vm.VmWorkJobHandler;
|
||||
import com.cloud.vm.VmWorkJobHandlerProxy;
|
||||
import com.cloud.vm.VmWorkSerializer;
|
||||
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.snapshot.dao.VMSnapshotDao;
|
||||
import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao;
|
||||
@ -164,7 +164,7 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
|
||||
@Inject
|
||||
protected ServiceOfferingDao _serviceOfferingDao;
|
||||
@Inject
|
||||
protected UserVmDetailsDao _userVmDetailsDao;
|
||||
protected VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||
@Inject
|
||||
protected VMSnapshotDetailsDao _vmSnapshotDetailsDao;
|
||||
@Inject
|
||||
@ -473,9 +473,9 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
|
||||
protected void addSupportForCustomServiceOffering(long vmId, long serviceOfferingId, long vmSnapshotId) {
|
||||
ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(serviceOfferingId);
|
||||
if (serviceOfferingVO.isDynamic()) {
|
||||
List<UserVmDetailVO> vmDetails = _userVmDetailsDao.listDetails(vmId);
|
||||
List<VMInstanceDetailVO> vmDetails = _vmInstanceDetailsDao.listDetails(vmId);
|
||||
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)) {
|
||||
vmSnapshotDetails.add(new VMSnapshotDetailsVO(vmSnapshotId, detail.getName(), detail.getValue(), detail.isDisplay()));
|
||||
}
|
||||
@ -812,9 +812,9 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
|
||||
* @return map
|
||||
*/
|
||||
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>();
|
||||
for (UserVmDetailVO detail : userVmDetails) {
|
||||
for (VMInstanceDetailVO detail : userVmDetails) {
|
||||
details.put(detail.getName(), detail.getValue());
|
||||
}
|
||||
return details;
|
||||
@ -943,11 +943,11 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
|
||||
ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(vmSnapshotVo.getServiceOfferingId());
|
||||
if (serviceOfferingVO.isDynamic()) {
|
||||
List<VMSnapshotDetailsVO> vmSnapshotDetails = _vmSnapshotDetailsDao.listDetails(vmSnapshotVo.getId());
|
||||
List<UserVmDetailVO> userVmDetails = new ArrayList<UserVmDetailVO>();
|
||||
List<VMInstanceDetailVO> userVmDetails = new ArrayList<VMInstanceDetailVO>();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -63,12 +63,12 @@ import com.cloud.utils.db.EntityManager;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.ConsoleSessionVO;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachineManager;
|
||||
import com.cloud.vm.VmDetailConstants;
|
||||
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.GsonBuilder;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
@ -92,7 +92,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
|
||||
@Inject
|
||||
private EntityManager entityManager;
|
||||
@Inject
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private KeysManager keysManager;
|
||||
@Inject
|
||||
@ -344,8 +344,8 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
|
||||
if (hostVo.getHypervisorType() == Hypervisor.HypervisorType.KVM &&
|
||||
(hostVo.getResourceState().equals(ResourceState.ErrorInMaintenance) ||
|
||||
hostVo.getResourceState().equals(ResourceState.ErrorInPrepareForMaintenance))) {
|
||||
UserVmDetailVO detailAddress = userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_ADDRESS);
|
||||
UserVmDetailVO detailPort = userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT);
|
||||
VMInstanceDetailVO detailAddress = vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_ADDRESS);
|
||||
VMInstanceDetailVO detailPort = vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT);
|
||||
if (detailAddress != null && detailPort != null) {
|
||||
portInfo = new Pair<>(detailAddress.getValue(), Integer.valueOf(detailPort.getValue()));
|
||||
} else {
|
||||
@ -372,7 +372,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
|
||||
}
|
||||
|
||||
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 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,
|
||||
VirtualMachine vm, HostVO hostVo, UserVmDetailVO details) {
|
||||
VirtualMachine vm, HostVO hostVo, VMInstanceDetailVO details) {
|
||||
StringBuilder sb = new StringBuilder(rootUrl);
|
||||
if (param.getHypervHost() != null || !ConsoleProxyManager.NoVncConsoleDefault.value()) {
|
||||
sb.append("/ajax?token=" + token);
|
||||
@ -450,7 +450,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
|
||||
int port, String sid, String tag, String ticket,
|
||||
String sessionUuid, String addr,
|
||||
String extraSecurityToken, VirtualMachine vm,
|
||||
HostVO hostVo, UserVmDetailVO details,
|
||||
HostVO hostVo, VMInstanceDetailVO details,
|
||||
Pair<String, Integer> portInfo, String host,
|
||||
String displayName) {
|
||||
ConsoleProxyClientParam param = new ConsoleProxyClientParam();
|
||||
|
||||
@ -93,7 +93,7 @@ import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.NicDetailsDao;
|
||||
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
||||
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.snapshot.VMSnapshotVO;
|
||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||
@ -125,7 +125,7 @@ public class ResourceCleanupServiceImpl extends ManagerBase implements ResourceC
|
||||
@Inject
|
||||
InlineLoadBalancerNicMapDao inlineLoadBalancerNicMapDao;
|
||||
@Inject
|
||||
UserVmDetailsDao userVmDetailsDao;
|
||||
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
VMSnapshotDao vmSnapshotDao;
|
||||
@Inject
|
||||
@ -269,7 +269,7 @@ public class ResourceCleanupServiceImpl extends ManagerBase implements ResourceC
|
||||
}
|
||||
purgeVMVolumes(vmIds, batchSize);
|
||||
purgeVMNics(vmIds, batchSize);
|
||||
userVmDetailsDao.batchExpungeForResources(vmIds, batchSize);
|
||||
vmInstanceDetailsDao.batchExpungeForResources(vmIds, batchSize);
|
||||
purgeVMSnapshots(vmIds, batchSize);
|
||||
autoScaleVmGroupVmMapDao.expungeByVmList(vmIds, batchSize);
|
||||
commandExecLogDao.expungeByVmList(vmIds, batchSize);
|
||||
|
||||
@ -139,7 +139,7 @@ import com.cloud.vm.VirtualMachineProfileImpl;
|
||||
import com.cloud.vm.VmDetailConstants;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
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.google.gson.Gson;
|
||||
import org.apache.cloudstack.acl.ControlledEntity;
|
||||
@ -223,7 +223,7 @@ public class UnmanagedVMsManagerImpl implements UnmanagedVMsManager {
|
||||
@Inject
|
||||
private ResourceLimitService resourceLimitService;
|
||||
@Inject
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Inject
|
||||
private UserVmManager userVmManager;
|
||||
@Inject
|
||||
|
||||
@ -18,23 +18,21 @@
|
||||
|
||||
package org.apache.cloudstack.vm.lease;
|
||||
|
||||
import com.cloud.api.ApiGsonHelper;
|
||||
import com.cloud.api.query.dao.UserVmJoinDao;
|
||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.component.ManagerBase;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
import com.cloud.vm.VmDetailConstants;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.api.ApiCommandResourceType;
|
||||
import org.apache.cloudstack.api.ApiConstants;
|
||||
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.time.DateUtils;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import com.cloud.api.ApiGsonHelper;
|
||||
import com.cloud.api.query.dao.UserVmJoinDao;
|
||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import com.cloud.event.EventTypes;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.utils.DateUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.component.ManagerBase;
|
||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
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 {
|
||||
private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 5; // 5 seconds
|
||||
|
||||
@Inject
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
|
||||
@Inject
|
||||
private UserVmJoinDao userVmJoinDao;
|
||||
@ -131,7 +132,7 @@ public class VMLeaseManagerImpl extends ManagerBase implements VMLeaseManager, C
|
||||
List<UserVmJoinVO> leaseExpiringForInstances = userVmJoinDao.listLeaseInstancesExpiringInDays(-1);
|
||||
logger.debug("Total instances found for lease cancellation: {}", leaseExpiringForInstances.size());
|
||||
for (UserVmJoinVO instance : leaseExpiringForInstances) {
|
||||
userVmDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION,
|
||||
vmInstanceDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION,
|
||||
LeaseActionExecution.CANCELLED.name(), false);
|
||||
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(),
|
||||
@ -370,7 +371,7 @@ public class VMLeaseManagerImpl extends ManagerBase implements VMLeaseManager, C
|
||||
|
||||
if (VMLeaseManager.class.getSimpleName().equals(params.get(JOB_INITIATOR))) {
|
||||
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) {
|
||||
|
||||
@ -49,7 +49,7 @@ import com.cloud.user.dao.UserDao;
|
||||
import com.cloud.user.dao.UserStatisticsDao;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class UserVmJoinDaoImplTest extends GenericDaoBaseWithTagInformationBaseTest<UserVmJoinVO, UserVmResponse> {
|
||||
@ -67,7 +67,7 @@ public class UserVmJoinDaoImplTest extends GenericDaoBaseWithTagInformationBaseT
|
||||
private AccountManager accountMgr;
|
||||
|
||||
@Mock
|
||||
private UserVmDetailsDao _userVmDetailsDao;
|
||||
private VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||
|
||||
@Mock
|
||||
private UserStatisticsDao userStatsDao;
|
||||
|
||||
@ -79,7 +79,7 @@ import com.cloud.vm.VirtualMachine.Type;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||
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 org.apache.cloudstack.affinity.AffinityGroupProcessor;
|
||||
import org.apache.cloudstack.affinity.AffinityGroupService;
|
||||
@ -182,7 +182,7 @@ public class DeploymentPlanningManagerImplTest {
|
||||
DedicatedResourceDao _dedicatedDao;
|
||||
|
||||
@Inject
|
||||
UserVmDetailsDao vmDetailsDao;
|
||||
VMInstanceDetailsDao vmDetailsDao;
|
||||
|
||||
@Inject
|
||||
VMTemplateDao templateDao;
|
||||
@ -1114,8 +1114,8 @@ public class DeploymentPlanningManagerImplTest {
|
||||
}
|
||||
|
||||
@Bean
|
||||
public UserVmDetailsDao userVmDetailsDao() {
|
||||
return Mockito.mock(UserVmDetailsDao.class);
|
||||
public VMInstanceDetailsDao vmInstanceDetailsDao() {
|
||||
return Mockito.mock(VMInstanceDetailsDao.class);
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@ -22,12 +22,13 @@ import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.offering.ServiceOffering;
|
||||
import com.cloud.service.ServiceOfferingDetailsVO;
|
||||
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.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
@ -54,7 +55,7 @@ public class DpdkHelperImplTest {
|
||||
@Mock
|
||||
VMInstanceDao vmInstanceDao;
|
||||
@Mock
|
||||
UserVmDetailsDao userVmDetailsDao;
|
||||
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
|
||||
@Spy
|
||||
@InjectMocks
|
||||
@ -73,9 +74,9 @@ public class DpdkHelperImplTest {
|
||||
@Mock
|
||||
ServiceOffering serviceOffering;
|
||||
@Mock
|
||||
UserVmDetailVO dpdkNumaVmDetail;
|
||||
VMInstanceDetailVO dpdkNumaVmDetail;
|
||||
@Mock
|
||||
UserVmDetailVO dpdkHugePagesVmDetail;
|
||||
VMInstanceDetailVO dpdkHugePagesVmDetail;
|
||||
@Mock
|
||||
HostVO hostVO;
|
||||
@Mock
|
||||
@ -135,7 +136,7 @@ public class DpdkHelperImplTest {
|
||||
Mockito.lenient().when(dpdkNumaVmDetail.getValue()).thenReturn(dpdkNumaConf);
|
||||
Mockito.when(dpdkHugePagesVmDetail.getName()).thenReturn(DpdkHelper.DPDK_HUGE_PAGES);
|
||||
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
|
||||
@ -202,7 +203,7 @@ public class DpdkHelperImplTest {
|
||||
|
||||
@Test
|
||||
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<>());
|
||||
Assert.assertFalse(dpdkHelper.isVMDpdkEnabled(vmId));
|
||||
Mockito.verify(dpdkHelper, Mockito.never()).isHostDpdkEnabled(hostId);
|
||||
@ -210,7 +211,7 @@ public class DpdkHelperImplTest {
|
||||
|
||||
@Test
|
||||
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<>());
|
||||
Assert.assertFalse(dpdkHelper.isVMDpdkEnabled(vmId));
|
||||
Mockito.verify(dpdkHelper, Mockito.never()).isHostDpdkEnabled(hostId);
|
||||
@ -223,21 +224,21 @@ public class DpdkHelperImplTest {
|
||||
|
||||
@Test
|
||||
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");
|
||||
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
|
||||
}
|
||||
|
||||
@Test
|
||||
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");
|
||||
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
|
||||
}
|
||||
|
||||
@Test
|
||||
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(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk");
|
||||
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
|
||||
|
||||
@ -51,13 +51,13 @@ import com.cloud.utils.fsm.StateMachine2;
|
||||
import com.cloud.utils.net.Ip;
|
||||
import com.cloud.vm.Nic;
|
||||
import com.cloud.vm.NicProfile;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||
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.google.common.collect.Maps;
|
||||
import org.apache.cloudstack.context.CallContext;
|
||||
@ -127,7 +127,7 @@ public class ConfigDriveNetworkElementTest {
|
||||
@Mock private ServiceOfferingDao _serviceOfferingDao;
|
||||
@Mock private UserVmDao _vmDao;
|
||||
@Mock private VMInstanceDao _vmInstanceDao;
|
||||
@Mock private UserVmDetailsDao _userVmDetailsDao;
|
||||
@Mock private VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||
@Mock private NetworkDao _networkDao;
|
||||
@Mock private NetworkServiceMapDao _ntwkSrvcDao;
|
||||
@Mock private IPAddressDao _ipAddressDao;
|
||||
@ -269,12 +269,12 @@ public class ConfigDriveNetworkElementTest {
|
||||
Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount();
|
||||
|
||||
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(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(_userVmDetailsDao.findDetail(Mockito.anyLong(), Mockito.anyString())).thenReturn(userVmDetailVO);
|
||||
when(_vmInstanceDetailsDao.findDetail(Mockito.anyLong(), Mockito.anyString())).thenReturn(vmInstanceDetailVO);
|
||||
when(_ipAddressDao.findByAssociatedVmId(VMID)).thenReturn(publicIp);
|
||||
when(publicIp.getAddress()).thenReturn(new Ip("7.7.7.7"));
|
||||
when(_hostDao.findById(virtualMachine.getHostId())).thenReturn(hostVO);
|
||||
|
||||
@ -95,8 +95,9 @@ import com.cloud.vm.dao.DomainRouterDao;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.NicIpAliasDao;
|
||||
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 org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||
import org.apache.cloudstack.network.BgpPeerVO;
|
||||
@ -166,7 +167,7 @@ public class VirtualRouterElementTest {
|
||||
@Mock private UserVmDao _userVmDao;
|
||||
@Mock private VlanDao _vlanDao;
|
||||
@Mock private VMInstanceDao _vmDao;
|
||||
@Mock private UserVmDetailsDao _vmDetailsDao;
|
||||
@Mock private VMInstanceDetailsDao _vmDetailsDao;
|
||||
@Mock private VolumeDao _volumeDao;
|
||||
@Mock private RemoteAccessVpnDao _vpnDao;
|
||||
@Mock private VpnUserDao _vpnUsersDao;
|
||||
|
||||
@ -74,7 +74,7 @@ import com.cloud.vm.dao.DomainRouterDao;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.NicIpAliasDao;
|
||||
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 org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||
import org.apache.cloudstack.network.BgpPeer;
|
||||
@ -202,7 +202,7 @@ public class VirtualNetworkApplianceManagerImplTest {
|
||||
private VMInstanceDao _vmDao;
|
||||
|
||||
@Mock
|
||||
private UserVmDetailsDao _vmDetailsDao;
|
||||
private VMInstanceDetailsDao _vmDetailsDao;
|
||||
|
||||
@Mock
|
||||
private VolumeDao _volumeDao;
|
||||
|
||||
@ -50,7 +50,7 @@ import com.cloud.vm.UserVmManager;
|
||||
import com.cloud.vm.VirtualMachineManager;
|
||||
import com.cloud.vm.dao.NicDaoImpl;
|
||||
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 org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
||||
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,
|
||||
ResourceTagsDaoImpl.class, HostDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.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,
|
||||
SecurityGroupJoinDaoImpl.class},
|
||||
includeFilters = {@Filter(value = Library.class, type = FilterType.CUSTOM)},
|
||||
|
||||
@ -50,7 +50,7 @@ import com.cloud.utils.ssh.SSHCmdHelper;
|
||||
import com.cloud.utils.ssh.SshException;
|
||||
import com.cloud.vm.VMInstanceVO;
|
||||
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.trilead.ssh2.Connection;
|
||||
import org.apache.cloudstack.api.command.admin.host.CancelHostAsDegradedCmd;
|
||||
@ -105,7 +105,7 @@ public class ResourceManagerImplTest {
|
||||
@Mock
|
||||
private HighAvailabilityManager haManager;
|
||||
@Mock
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Mock
|
||||
private AgentManager agentManager;
|
||||
@Mock
|
||||
@ -341,10 +341,10 @@ public class ResourceManagerImplTest {
|
||||
verify(resourceManager).setKVMVncAccess(hostId, vms);
|
||||
verify(agentManager, times(vms.size())).easySend(eq(hostId), any(GetVncPortCommand.class));
|
||||
verify(agentManager).pullAgentToMaintenance(hostId);
|
||||
verify(userVmDetailsDao).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(userVmDetailsDao).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(vm1Id), eq("kvm.vnc.address"), eq(vm1VncAddress), anyBoolean());
|
||||
verify(vmInstanceDetailsDao).addDetail(eq(vm1Id), eq("kvm.vnc.port"), eq(String.valueOf(vm1VncPort)), anyBoolean());
|
||||
verify(vmInstanceDetailsDao).addDetail(eq(vm2Id), eq("kvm.vnc.address"), eq(vm2VncAddress), anyBoolean());
|
||||
verify(vmInstanceDetailsDao).addDetail(eq(vm2Id), eq("kvm.vnc.port"), eq(String.valueOf(vm2VncPort)), anyBoolean());
|
||||
}
|
||||
|
||||
@Test(expected = CloudRuntimeException.class)
|
||||
|
||||
@ -27,10 +27,10 @@ import com.cloud.service.ServiceOfferingVO;
|
||||
import com.cloud.service.dao.ServiceOfferingDao;
|
||||
import com.cloud.utils.Ternary;
|
||||
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.VmDetailConstants;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
@ -67,7 +67,7 @@ public class RollingMaintenanceManagerImplTest {
|
||||
@Mock
|
||||
ServiceOfferingDao serviceOfferingDao;
|
||||
@Mock
|
||||
UserVmDetailsDao userVmDetailsDao;
|
||||
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
|
||||
@Spy
|
||||
@InjectMocks
|
||||
@ -213,18 +213,18 @@ public class RollingMaintenanceManagerImplTest {
|
||||
Mockito.when(serviceOffering.getSpeed()).thenReturn(null);
|
||||
Mockito.when(serviceOffering.getRamSize()).thenReturn(null);
|
||||
|
||||
List<UserVmDetailVO> vmDetails = new ArrayList<>();
|
||||
UserVmDetailVO cpuDetail = new UserVmDetailVO(1L, VmDetailConstants.CPU_NUMBER, "2", false);
|
||||
List<VMInstanceDetailVO> vmDetails = new ArrayList<>();
|
||||
VMInstanceDetailVO cpuDetail = new VMInstanceDetailVO(1L, VmDetailConstants.CPU_NUMBER, "2", false);
|
||||
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);
|
||||
UserVmDetailVO ramSizeDetail = new UserVmDetailVO(1L, VmDetailConstants.MEMORY, "1024", false);
|
||||
VMInstanceDetailVO ramSizeDetail = new VMInstanceDetailVO(1L, VmDetailConstants.MEMORY, "1024", false);
|
||||
vmDetails.add(ramSizeDetail);
|
||||
|
||||
Mockito.when(vm.getId()).thenReturn(1L);
|
||||
Mockito.when(vm.getServiceOfferingId()).thenReturn(1L);
|
||||
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);
|
||||
|
||||
|
||||
@ -97,10 +97,10 @@ import com.cloud.utils.db.Filter;
|
||||
import com.cloud.utils.db.SearchBuilder;
|
||||
import com.cloud.utils.db.SearchCriteria;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.UserVmDetailVO;
|
||||
import com.cloud.vm.UserVmVO;
|
||||
import com.cloud.vm.VMInstanceDetailVO;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class ManagementServerImplTest {
|
||||
@ -145,7 +145,7 @@ public class ManagementServerImplTest {
|
||||
UserDataManager userDataManager;
|
||||
|
||||
@Mock
|
||||
UserVmDetailsDao userVmDetailsDao;
|
||||
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
|
||||
@Mock
|
||||
HostDetailsDao hostDetailsDao;
|
||||
@ -585,10 +585,10 @@ public class ManagementServerImplTest {
|
||||
UserVmVO vm = Mockito.mock(UserVmVO.class);
|
||||
Mockito.when(vm.getId()).thenReturn(1L);
|
||||
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 {
|
||||
UserVmDetailVO detail = new UserVmDetailVO(vm.getId(), ApiConstants.BootType.UEFI.toString(), uefiValue, true);
|
||||
Mockito.when(userVmDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString())).thenReturn(detail);
|
||||
VMInstanceDetailVO detail = new VMInstanceDetailVO(vm.getId(), ApiConstants.BootType.UEFI.toString(), uefiValue, true);
|
||||
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"))));
|
||||
}
|
||||
return vm;
|
||||
|
||||
@ -98,7 +98,7 @@ import com.cloud.user.AccountVO;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
@ -116,7 +116,7 @@ public class FirstFitPlannerTest {
|
||||
@Inject
|
||||
HostDetailsDao hostDetailsDao;
|
||||
@Inject
|
||||
UserVmDetailsDao vmDetailsDao;
|
||||
VMInstanceDetailsDao vmDetailsDao;
|
||||
@Inject
|
||||
ConfigurationDao configDao;
|
||||
@Inject
|
||||
@ -476,8 +476,8 @@ public class FirstFitPlannerTest {
|
||||
}
|
||||
|
||||
@Bean
|
||||
public UserVmDetailsDao userVmDetailsDao() {
|
||||
return Mockito.mock(UserVmDetailsDao.class);
|
||||
public VMInstanceDetailsDao vmInstanceDetailsDao() {
|
||||
return Mockito.mock(VMInstanceDetailsDao.class);
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@ -23,6 +23,8 @@ import static org.junit.Assert.assertThrows;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.junit.Assert.fail;
|
||||
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.anyMap;
|
||||
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.never;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
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.Date;
|
||||
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.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.SecurityChecker;
|
||||
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.subsystem.api.storage.PrimaryDataStore;
|
||||
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.StoragePoolVO;
|
||||
import org.apache.cloudstack.storage.template.VnfTemplateManager;
|
||||
import org.apache.cloudstack.userdata.UserDataManager;
|
||||
import org.apache.cloudstack.vm.lease.VMLeaseManager;
|
||||
import org.junit.After;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
@ -67,6 +82,7 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockedStatic;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.Spy;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
@ -127,6 +143,7 @@ import com.cloud.storage.GuestOSVO;
|
||||
import com.cloud.storage.ScopeType;
|
||||
import com.cloud.storage.SnapshotVO;
|
||||
import com.cloud.storage.Storage;
|
||||
import com.cloud.storage.StorageManager;
|
||||
import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.Volume;
|
||||
import com.cloud.storage.VolumeApiService;
|
||||
@ -155,32 +172,10 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.exception.ExceptionProxyObject;
|
||||
import com.cloud.vm.dao.NicDao;
|
||||
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.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)
|
||||
public class UserVmManagerImplTest {
|
||||
|
||||
@ -231,7 +226,7 @@ public class UserVmManagerImplTest {
|
||||
private EntityManager entityManager;
|
||||
|
||||
@Mock
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
|
||||
@Mock
|
||||
private UserVmVO userVmVoMock;
|
||||
@ -524,7 +519,7 @@ public class UserVmManagerImplTest {
|
||||
verifyMethodsThatAreAlwaysExecuted();
|
||||
|
||||
Mockito.verify(userVmManagerImpl).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
||||
Mockito.verify(userVmDetailsDao, times(0)).removeDetail(anyLong(), anyString());
|
||||
Mockito.verify(vmInstanceDetailsDao, times(0)).removeDetail(anyLong(), anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -541,8 +536,8 @@ public class UserVmManagerImplTest {
|
||||
|
||||
userVmManagerImpl.updateVirtualMachine(updateVmCommand);
|
||||
verifyMethodsThatAreAlwaysExecuted();
|
||||
Mockito.verify(userVmDetailsDao).removeDetail(vmId, "userdetail");
|
||||
Mockito.verify(userVmDetailsDao, times(0)).removeDetail(vmId, "systemdetail");
|
||||
Mockito.verify(vmInstanceDetailsDao).removeDetail(vmId, "userdetail");
|
||||
Mockito.verify(vmInstanceDetailsDao, times(0)).removeDetail(vmId, "systemdetail");
|
||||
Mockito.verify(userVmManagerImpl, times(0)).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
||||
}
|
||||
|
||||
@ -567,13 +562,13 @@ public class UserVmManagerImplTest {
|
||||
prepareAndExecuteMethodDealingWithDetails(false, false);
|
||||
}
|
||||
|
||||
private List<UserVmDetailVO> prepareExistingDetails(Long vmId, String... existingDetailKeys) {
|
||||
List<UserVmDetailVO> existingDetails = new ArrayList<>();
|
||||
private List<VMInstanceDetailVO> prepareExistingDetails(Long vmId, String... existingDetailKeys) {
|
||||
List<VMInstanceDetailVO> existingDetails = new ArrayList<>();
|
||||
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));
|
||||
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(existingDetails);
|
||||
existingDetails.add(new VMInstanceDetailVO(vmId, "systemdetail", "bar", false));
|
||||
Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(existingDetails);
|
||||
return existingDetails;
|
||||
}
|
||||
|
||||
@ -608,15 +603,15 @@ public class UserVmManagerImplTest {
|
||||
verifyMethodsThatAreAlwaysExecuted();
|
||||
|
||||
Mockito.verify(userVmVoMock, times(cleanUpDetails || isDetailsEmpty ? 0 : 1)).setDetails(details);
|
||||
Mockito.verify(userVmDetailsDao, times(cleanUpDetails ? 1 : 0)).removeDetail(vmId, "existingdetail");
|
||||
Mockito.verify(userVmDetailsDao, times(0)).removeDetail(vmId, "systemdetail");
|
||||
Mockito.verify(vmInstanceDetailsDao, times(cleanUpDetails ? 1 : 0)).removeDetail(vmId, "existingdetail");
|
||||
Mockito.verify(vmInstanceDetailsDao, times(0)).removeDetail(vmId, "systemdetail");
|
||||
Mockito.verify(userVmDao, times(cleanUpDetails || isDetailsEmpty ? 0 : 1)).saveDetails(userVmVoMock);
|
||||
Mockito.verify(userVmManagerImpl, times(0)).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
||||
}
|
||||
|
||||
private void configureDoNothingForDetailsMethod() {
|
||||
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);
|
||||
}
|
||||
|
||||
@ -1724,9 +1719,9 @@ public class UserVmManagerImplTest {
|
||||
Mockito.when(diskOffering.getDiskSize()).thenReturn(8L * GiB_TO_BYTES);
|
||||
Map<String, String> details = new HashMap<>();
|
||||
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(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);
|
||||
Assert.assertEquals(16 * GiB_TO_BYTES, actualSize.longValue());
|
||||
}
|
||||
@ -1739,9 +1734,9 @@ public class UserVmManagerImplTest {
|
||||
Mockito.when(userVm.getId()).thenReturn(1L);
|
||||
DiskOffering diskOffering = null;
|
||||
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(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);
|
||||
Assert.assertEquals(20 * GiB_TO_BYTES, actualSize.longValue());
|
||||
}
|
||||
@ -3290,16 +3285,16 @@ public class UserVmManagerImplTest {
|
||||
when(userVm.getId()).thenReturn(vmId);
|
||||
when(userVm.getUuid()).thenReturn(UUID.randomUUID().toString());
|
||||
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(userVmDetailsDao).addDetail(eq(vmId), eq(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE), eq(getLeaseExpiryDate(10L)), anyBoolean());
|
||||
verify(vmInstanceDetailsDao).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_DATE), eq(getLeaseExpiryDate(10L)), anyBoolean());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddNullDurationLeaseDetailsForInstance() {
|
||||
UserVm userVm = mock(UserVm.class);
|
||||
userVmManagerImpl.addLeaseDetailsForInstance(userVm, null, VMLeaseManager.ExpiryAction.STOP);
|
||||
Mockito.verify(userVmDetailsDao, 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_ACTION);
|
||||
Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -3346,7 +3341,7 @@ public class UserVmManagerImplTest {
|
||||
public void testApplyLeaseOnUpdateInstanceForNoLease() {
|
||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||
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);
|
||||
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
|
||||
}
|
||||
@ -3355,7 +3350,7 @@ public class UserVmManagerImplTest {
|
||||
public void testApplyLeaseOnUpdateInstanceForLease() {
|
||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||
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);
|
||||
Mockito.verify(userVmManagerImpl, Mockito.times(1)).addLeaseDetailsForInstance(any(), any(), any());
|
||||
}
|
||||
@ -3364,7 +3359,7 @@ public class UserVmManagerImplTest {
|
||||
public void testApplyLeaseOnUpdateInstanceForDisabledLeaseInstance() {
|
||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||
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);
|
||||
Mockito.verify(userVmManagerImpl, Mockito.times(1)).addLeaseDetailsForInstance(any(), any(), any());
|
||||
}
|
||||
@ -3372,7 +3367,7 @@ public class UserVmManagerImplTest {
|
||||
@Test(expected = CloudRuntimeException.class)
|
||||
public void testApplyLeaseOnUpdateInstanceForLeaseExpired() {
|
||||
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);
|
||||
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
|
||||
}
|
||||
@ -3381,7 +3376,7 @@ public class UserVmManagerImplTest {
|
||||
public void testApplyLeaseOnUpdateInstanceToRemoveLease() {
|
||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||
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)) {
|
||||
Mockito.when(ActionEventUtils.onActionEvent(Mockito.anyLong(), Mockito.anyLong(),
|
||||
Mockito.anyLong(),
|
||||
@ -3390,7 +3385,7 @@ public class UserVmManagerImplTest {
|
||||
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, -1, VMLeaseManager.ExpiryAction.STOP);
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
@ -3398,11 +3393,11 @@ public class UserVmManagerImplTest {
|
||||
public void testApplyLeaseOnUpdateInstanceToRemoveLeaseForExpired() {
|
||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||
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);
|
||||
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(userVmDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
|
||||
Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION);
|
||||
Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
|
||||
}
|
||||
|
||||
String getLeaseExpiryDate(long leaseDuration) {
|
||||
|
||||
@ -46,13 +46,13 @@ import com.cloud.user.dao.UserDao;
|
||||
import com.cloud.uservm.UserVm;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
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.UserVmVO;
|
||||
import com.cloud.vm.VirtualMachine.State;
|
||||
import com.cloud.vm.VirtualMachineManager;
|
||||
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.snapshot.dao.VMSnapshotDao;
|
||||
import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao;
|
||||
@ -131,7 +131,7 @@ public class VMSnapshotManagerTest {
|
||||
@Mock
|
||||
ServiceOfferingDao _serviceOfferingDao;
|
||||
@Mock
|
||||
UserVmDetailsDao _userVmDetailsDao;
|
||||
VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||
@Mock
|
||||
VMSnapshotDetailsDao _vmSnapshotDetailsDao;
|
||||
@Mock
|
||||
@ -141,7 +141,7 @@ public class VMSnapshotManagerTest {
|
||||
private static final long SERVICE_OFFERING_ID = 1L;
|
||||
private static final long SERVICE_OFFERING_DIFFERENT_ID = 2L;
|
||||
private static VMSnapshot.Type vmSnapshotType;
|
||||
private static List<UserVmDetailVO> userVmDetails;
|
||||
private static List<VMInstanceDetailVO> userVmDetails;
|
||||
private static List<VMSnapshotDetailsVO> vmSnapshotDetails;
|
||||
|
||||
private static final long VM_SNAPSHOT_ID = 1L;
|
||||
@ -157,9 +157,9 @@ public class VMSnapshotManagerTest {
|
||||
@Mock
|
||||
ServiceOfferingVO serviceOffering;
|
||||
@Mock
|
||||
UserVmDetailVO userVmDetailCpuNumber;
|
||||
VMInstanceDetailVO userVmDetailCpuNumber;
|
||||
@Mock
|
||||
UserVmDetailVO userVmDetailMemory;
|
||||
VMInstanceDetailVO userVmDetailMemory;
|
||||
@Mock
|
||||
VMSnapshotDetailsVO vmSnapshotDetailCpuNumber;
|
||||
@Mock
|
||||
@ -172,7 +172,7 @@ public class VMSnapshotManagerTest {
|
||||
@Captor
|
||||
ArgumentCaptor<Map<String,String>> mapDetailsCaptor;
|
||||
@Captor
|
||||
ArgumentCaptor<List<UserVmDetailVO>> listUserVmDetailsCaptor;
|
||||
ArgumentCaptor<List<VMInstanceDetailVO>> listUserVmDetailsCaptor;
|
||||
|
||||
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));
|
||||
|
||||
_vmSnapshotMgr._serviceOfferingDao = _serviceOfferingDao;
|
||||
_vmSnapshotMgr._userVmDetailsDao = _userVmDetailsDao;
|
||||
_vmSnapshotMgr._vmInstanceDetailsDao = _vmInstanceDetailsDao;
|
||||
_vmSnapshotMgr._vmSnapshotDetailsDao = _vmSnapshotDetailsDao;
|
||||
_vmSnapshotMgr._userVmManager = _userVmManager;
|
||||
|
||||
@ -238,7 +238,7 @@ public class VMSnapshotManagerTest {
|
||||
|
||||
userVmDetails = Arrays.asList(userVmDetailCpuNumber, userVmDetailMemory);
|
||||
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(userVm.getId()).thenReturn(TEST_VM_ID);
|
||||
@ -327,7 +327,7 @@ public class VMSnapshotManagerTest {
|
||||
@Test
|
||||
public void testAddSupportForCustomServiceOfferingNotDynamicServiceOffering() {
|
||||
_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
|
||||
@ -335,7 +335,7 @@ public class VMSnapshotManagerTest {
|
||||
when(serviceOffering.isDynamic()).thenReturn(true);
|
||||
_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());
|
||||
}
|
||||
|
||||
@ -405,7 +405,7 @@ public class VMSnapshotManagerTest {
|
||||
when(serviceOffering.isDynamic()).thenReturn(true);
|
||||
_vmSnapshotMgr.revertUserVmDetailsFromVmSnapshot(vmMock, vmSnapshotVO);
|
||||
verify(_vmSnapshotDetailsDao).listDetails(VM_SNAPSHOT_ID);
|
||||
verify(_userVmDetailsDao).saveDetails(listUserVmDetailsCaptor.capture());
|
||||
verify(_vmInstanceDetailsDao).saveDetails(listUserVmDetailsCaptor.capture());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -82,7 +82,7 @@ import com.cloud.vm.dao.DomainRouterDaoImpl;
|
||||
import com.cloud.vm.dao.NicDaoImpl;
|
||||
import com.cloud.vm.dao.NicSecondaryIpDaoImpl;
|
||||
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.vpc.dao.MockNetworkOfferingDaoImpl;
|
||||
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,
|
||||
HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, RouterNetworkDaoImpl.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,
|
||||
VpcServiceMapDaoImpl.class, ServiceOfferingDaoImpl.class, MockVpcDaoImpl.class, VMTemplateDaoImpl.class,
|
||||
VMTemplateZoneDaoImpl.class, VMTemplateDetailsDaoImpl.class, DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class,
|
||||
|
||||
@ -24,7 +24,7 @@ import com.cloud.user.AccountManager;
|
||||
import com.cloud.utils.db.EntityManager;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
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.framework.security.keys.KeysManager;
|
||||
import org.junit.Assert;
|
||||
@ -51,7 +51,7 @@ public class ConsoleAccessManagerImplTest {
|
||||
@Mock
|
||||
private EntityManager entityManager;
|
||||
@Mock
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Mock
|
||||
private KeysManager keysManager;
|
||||
@Mock
|
||||
|
||||
@ -61,7 +61,7 @@ import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.UserVO;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
@ -84,7 +84,7 @@ public class CreateNetworkOfferingTest extends TestCase {
|
||||
VpcManager vpcMgr;
|
||||
|
||||
@Mock
|
||||
UserVmDetailsDao userVmDetailsDao;
|
||||
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
|
||||
@Mock
|
||||
UsageEventDao UsageEventDao;
|
||||
|
||||
@ -75,7 +75,7 @@ import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.NicDetailsDao;
|
||||
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
||||
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.snapshot.VMSnapshotVO;
|
||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||
@ -111,7 +111,7 @@ public class ResourceCleanupServiceImplTest {
|
||||
@Mock
|
||||
VMSnapshotDetailsDao vmSnapshotDetailsDao;
|
||||
@Mock
|
||||
UserVmDetailsDao userVmDetailsDao;
|
||||
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
@Mock
|
||||
AutoScaleVmGroupVmMapDao autoScaleVmGroupVmMapDao;
|
||||
@Mock
|
||||
@ -297,7 +297,7 @@ public class ResourceCleanupServiceImplTest {
|
||||
resourceCleanupService.purgeLinkedVMEntities(new ArrayList<>(), 50L);
|
||||
Mockito.verify(resourceCleanupService, Mockito.never()).purgeVMVolumes(Mockito.anyList(),
|
||||
Mockito.anyLong());
|
||||
Mockito.verify(userVmDetailsDao, Mockito.never())
|
||||
Mockito.verify(vmInstanceDetailsDao, Mockito.never())
|
||||
.batchExpungeForResources(Mockito.anyList(), Mockito.anyLong());
|
||||
}
|
||||
|
||||
@ -307,7 +307,7 @@ public class ResourceCleanupServiceImplTest {
|
||||
Mockito.eq(batchSize));
|
||||
Mockito.doReturn(2L).when(resourceCleanupService).purgeVMNics(Mockito.anyList(),
|
||||
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.eq(batchSize));
|
||||
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)).purgeVMNics(ids, batchSize);
|
||||
Mockito.verify(userVmDetailsDao, Mockito.times(1))
|
||||
Mockito.verify(vmInstanceDetailsDao, Mockito.times(1))
|
||||
.batchExpungeForResources(ids, batchSize);
|
||||
Mockito.verify(resourceCleanupService, Mockito.times(1))
|
||||
.purgeVMSnapshots(ids, batchSize);
|
||||
|
||||
@ -18,16 +18,31 @@
|
||||
|
||||
package org.apache.cloudstack.vm.lease;
|
||||
|
||||
import com.cloud.api.query.dao.UserVmJoinDao;
|
||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VmDetailConstants;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
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;
|
||||
|
||||
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.StopVMCmd;
|
||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||
@ -47,29 +62,16 @@ import org.mockito.Spy;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
||||
import javax.naming.ConfigurationException;
|
||||
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 static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
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;
|
||||
import com.cloud.api.query.dao.UserVmJoinDao;
|
||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||
import com.cloud.event.ActionEventUtils;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.db.GlobalLock;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.vm.VirtualMachine;
|
||||
import com.cloud.vm.VmDetailConstants;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class VMLeaseManagerImplTest {
|
||||
@ -88,7 +90,7 @@ public class VMLeaseManagerImplTest {
|
||||
MessageBus messageBus;
|
||||
|
||||
@Mock
|
||||
private UserVmDetailsDao userVmDetailsDao;
|
||||
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||
|
||||
@Mock
|
||||
private AsyncJobManager asyncJobManager;
|
||||
@ -104,7 +106,7 @@ public class VMLeaseManagerImplTest {
|
||||
vmLeaseManager.setAsyncJobDispatcher(asyncJobDispatcher);
|
||||
when(asyncJobDispatcher.getName()).thenReturn("AsyncJobDispatcher");
|
||||
when(asyncJobManager.submitAsyncJob(any(AsyncJobVO.class))).thenReturn(1L);
|
||||
doNothing().when(userVmDetailsDao).addDetail(
|
||||
doNothing().when(vmInstanceDetailsDao).addDetail(
|
||||
anyLong(), anyString(), anyString(), anyBoolean()
|
||||
);
|
||||
try {
|
||||
@ -275,7 +277,7 @@ public class VMLeaseManagerImplTest {
|
||||
utilities.when(() -> ActionEventUtils.onStartedActionEvent(Mockito.anyLong(), Mockito.anyLong(), Mockito.anyString(),
|
||||
Mockito.anyString(), Mockito.anyLong(), Mockito.anyString(), Mockito.anyBoolean(), Mockito.anyLong())).thenReturn(1L);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
<bean id="ipv6ServiceImpl" class="com.cloud.network.Ipv6ServiceImpl" />
|
||||
<bean id="managementServiceConfigurationImpl" class="com.cloud.configuration.ManagementServiceConfigurationImpl" />
|
||||
<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="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" />
|
||||
<bean id="usageEventDaoImpl" class="com.cloud.event.dao.UsageEventDaoImpl" />
|
||||
|
||||
@ -157,7 +157,7 @@ import com.cloud.vm.VirtualMachineManager;
|
||||
import com.cloud.vm.VirtualMachineName;
|
||||
import com.cloud.vm.VirtualMachineProfile;
|
||||
import com.cloud.vm.dao.SecondaryStorageVmDao;
|
||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||
import com.cloud.vm.dao.VMInstanceDao;
|
||||
|
||||
/**
|
||||
@ -223,7 +223,7 @@ public class SecondaryStorageManagerImpl extends ManagerBase implements Secondar
|
||||
@Inject
|
||||
protected CapacityDao _capacityDao;
|
||||
@Inject
|
||||
UserVmDetailsDao _vmDetailsDao;
|
||||
VMInstanceDetailsDao _vmDetailsDao;
|
||||
@Inject
|
||||
protected ResourceManager _resourceMgr;
|
||||
@Inject
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user