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;
|
VirtualMachine _vm;
|
||||||
ServiceOffering _offering;
|
ServiceOffering _offering;
|
||||||
VirtualMachineTemplate _template;
|
VirtualMachineTemplate _template;
|
||||||
UserVmDetailVO _userVmDetails;
|
VMInstanceDetailVO _userVmDetails;
|
||||||
Map<Param, Object> _params;
|
Map<Param, Object> _params;
|
||||||
List<NicProfile> _nics = new ArrayList<NicProfile>();
|
List<NicProfile> _nics = new ArrayList<NicProfile>();
|
||||||
List<DiskTO> _disks = new ArrayList<DiskTO>();
|
List<DiskTO> _disks = new ArrayList<DiskTO>();
|
||||||
|
|||||||
@ -286,7 +286,7 @@ import com.cloud.vm.VirtualMachine.PowerState;
|
|||||||
import com.cloud.vm.VirtualMachine.State;
|
import com.cloud.vm.VirtualMachine.State;
|
||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotManager;
|
import com.cloud.vm.snapshot.VMSnapshotManager;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||||
@ -381,7 +381,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
@Inject
|
@Inject
|
||||||
private ClusterDetailsDao _clusterDetailsDao;
|
private ClusterDetailsDao _clusterDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private VolumeOrchestrationService volumeMgr;
|
private VolumeOrchestrationService volumeMgr;
|
||||||
@Inject
|
@Inject
|
||||||
@ -1370,8 +1370,8 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
_resourceMgr.updateGPUDetails(destHostId, gpuDevice.getGroupDetails());
|
_resourceMgr.updateGPUDetails(destHostId, gpuDevice.getGroupDetails());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_VM) != null) {
|
if (vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_VM) != null) {
|
||||||
userVmDetailsDao.removeDetail(vm.getId(), VmDetailConstants.DEPLOY_VM);
|
vmInstanceDetailsDao.removeDetail(vm.getId(), VmDetailConstants.DEPLOY_VM);
|
||||||
}
|
}
|
||||||
|
|
||||||
startedVm = vm;
|
startedVm = vm;
|
||||||
@ -1553,16 +1553,16 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
final ClusterDetailsVO clusterDetailRam = _clusterDetailsDao.findDetail(clusterId, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
|
final ClusterDetailsVO clusterDetailRam = _clusterDetailsDao.findDetail(clusterId, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
|
||||||
final float parsedClusterCpuDetailCpu = Float.parseFloat(clusterDetailCpu.getValue());
|
final float parsedClusterCpuDetailCpu = Float.parseFloat(clusterDetailCpu.getValue());
|
||||||
final float parsedClusterDetailRam = Float.parseFloat(clusterDetailRam.getValue());
|
final float parsedClusterDetailRam = Float.parseFloat(clusterDetailRam.getValue());
|
||||||
UserVmDetailVO vmDetailCpu = userVmDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO);
|
VMInstanceDetailVO vmDetailCpu = vmInstanceDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO);
|
||||||
UserVmDetailVO vmDetailRam = userVmDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
|
VMInstanceDetailVO vmDetailRam = vmInstanceDetailsDao.findDetail(vmProfile.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO);
|
||||||
|
|
||||||
if ((vmDetailCpu == null && parsedClusterCpuDetailCpu > 1f) ||
|
if ((vmDetailCpu == null && parsedClusterCpuDetailCpu > 1f) ||
|
||||||
(vmDetailCpu != null && Float.parseFloat(vmDetailCpu.getValue()) != parsedClusterCpuDetailCpu)) {
|
(vmDetailCpu != null && Float.parseFloat(vmDetailCpu.getValue()) != parsedClusterCpuDetailCpu)) {
|
||||||
userVmDetailsDao.addDetail(vmProfile.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO, clusterDetailCpu.getValue(), true);
|
vmInstanceDetailsDao.addDetail(vmProfile.getId(), VmDetailConstants.CPU_OVER_COMMIT_RATIO, clusterDetailCpu.getValue(), true);
|
||||||
}
|
}
|
||||||
if ((vmDetailRam == null && parsedClusterDetailRam > 1f) ||
|
if ((vmDetailRam == null && parsedClusterDetailRam > 1f) ||
|
||||||
(vmDetailRam != null && Float.parseFloat(vmDetailRam.getValue()) != parsedClusterDetailRam)) {
|
(vmDetailRam != null && Float.parseFloat(vmDetailRam.getValue()) != parsedClusterDetailRam)) {
|
||||||
userVmDetailsDao.addDetail(vmProfile.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO, clusterDetailRam.getValue(), true);
|
vmInstanceDetailsDao.addDetail(vmProfile.getId(), VmDetailConstants.MEMORY_OVER_COMMIT_RATIO, clusterDetailRam.getValue(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
vmProfile.setCpuOvercommitRatio(Float.parseFloat(clusterDetailCpu.getValue()));
|
vmProfile.setCpuOvercommitRatio(Float.parseFloat(clusterDetailCpu.getValue()));
|
||||||
@ -3324,7 +3324,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
|
|
||||||
if (defaultNic != null && VirtualMachine.Type.User.equals(vm.getType())) {
|
if (defaultNic != null && VirtualMachine.Type.User.equals(vm.getType())) {
|
||||||
UserVmVO userVm = _userVmDao.findById(vm.getId());
|
UserVmVO userVm = _userVmDao.findById(vm.getId());
|
||||||
Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vm.getId());
|
Map<String, String> details = vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
|
||||||
userVm.setDetails(details);
|
userVm.setDetails(details);
|
||||||
|
|
||||||
Network network = _networkModel.getNetwork(defaultNic.getNetworkId());
|
Network network = _networkModel.getNetwork(defaultNic.getNetworkId());
|
||||||
@ -4842,29 +4842,29 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void removeCustomOfferingDetails(long vmId) {
|
private void removeCustomOfferingDetails(long vmId) {
|
||||||
Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vmId);
|
Map<String, String> details = vmInstanceDetailsDao.listDetailsKeyPairs(vmId);
|
||||||
details.remove(UsageEventVO.DynamicParameters.cpuNumber.name());
|
details.remove(UsageEventVO.DynamicParameters.cpuNumber.name());
|
||||||
details.remove(UsageEventVO.DynamicParameters.cpuSpeed.name());
|
details.remove(UsageEventVO.DynamicParameters.cpuSpeed.name());
|
||||||
details.remove(UsageEventVO.DynamicParameters.memory.name());
|
details.remove(UsageEventVO.DynamicParameters.memory.name());
|
||||||
List<UserVmDetailVO> detailList = new ArrayList<>();
|
List<VMInstanceDetailVO> detailList = new ArrayList<>();
|
||||||
for(Map.Entry<String, String> entry: details.entrySet()) {
|
for(Map.Entry<String, String> entry: details.entrySet()) {
|
||||||
UserVmDetailVO detailVO = new UserVmDetailVO(vmId, entry.getKey(), entry.getValue(), true);
|
VMInstanceDetailVO detailVO = new VMInstanceDetailVO(vmId, entry.getKey(), entry.getValue(), true);
|
||||||
detailList.add(detailVO);
|
detailList.add(detailVO);
|
||||||
}
|
}
|
||||||
userVmDetailsDao.saveDetails(detailList);
|
vmInstanceDetailsDao.saveDetails(detailList);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void saveCustomOfferingDetails(long vmId, ServiceOffering serviceOffering) {
|
private void saveCustomOfferingDetails(long vmId, ServiceOffering serviceOffering) {
|
||||||
Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vmId);
|
Map<String, String> details = vmInstanceDetailsDao.listDetailsKeyPairs(vmId);
|
||||||
details.put(UsageEventVO.DynamicParameters.cpuNumber.name(), serviceOffering.getCpu().toString());
|
details.put(UsageEventVO.DynamicParameters.cpuNumber.name(), serviceOffering.getCpu().toString());
|
||||||
details.put(UsageEventVO.DynamicParameters.cpuSpeed.name(), serviceOffering.getSpeed().toString());
|
details.put(UsageEventVO.DynamicParameters.cpuSpeed.name(), serviceOffering.getSpeed().toString());
|
||||||
details.put(UsageEventVO.DynamicParameters.memory.name(), serviceOffering.getRamSize().toString());
|
details.put(UsageEventVO.DynamicParameters.memory.name(), serviceOffering.getRamSize().toString());
|
||||||
List<UserVmDetailVO> detailList = new ArrayList<>();
|
List<VMInstanceDetailVO> detailList = new ArrayList<>();
|
||||||
for (Map.Entry<String, String> entry: details.entrySet()) {
|
for (Map.Entry<String, String> entry: details.entrySet()) {
|
||||||
UserVmDetailVO detailVO = new UserVmDetailVO(vmId, entry.getKey(), entry.getValue(), true);
|
VMInstanceDetailVO detailVO = new VMInstanceDetailVO(vmId, entry.getKey(), entry.getValue(), true);
|
||||||
detailList.add(detailVO);
|
detailList.add(detailVO);
|
||||||
}
|
}
|
||||||
userVmDetailsDao.saveDetails(detailList);
|
vmInstanceDetailsDao.saveDetails(detailList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -6182,7 +6182,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
|
|||||||
@Override
|
@Override
|
||||||
public Map<Long, Boolean> getDiskOfferingSuitabilityForVm(long vmId, List<Long> diskOfferingIds) {
|
public Map<Long, Boolean> getDiskOfferingSuitabilityForVm(long vmId, List<Long> diskOfferingIds) {
|
||||||
VMInstanceVO vm = _vmDao.findById(vmId);
|
VMInstanceVO vm = _vmDao.findById(vmId);
|
||||||
if (userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_VM) != null) {
|
if (vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_VM) != null) {
|
||||||
return new HashMap<>();
|
return new HashMap<>();
|
||||||
}
|
}
|
||||||
VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm);
|
VirtualMachineProfile profile = new VirtualMachineProfileImpl(vm);
|
||||||
|
|||||||
@ -61,7 +61,7 @@ import com.cloud.vm.NicProfile;
|
|||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VirtualMachineManager;
|
import com.cloud.vm.VirtualMachineManager;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
import static org.apache.cloudstack.api.ApiConstants.MAX_IOPS;
|
import static org.apache.cloudstack.api.ApiConstants.MAX_IOPS;
|
||||||
@ -86,7 +86,7 @@ public class CloudOrchestrator implements OrchestrationService {
|
|||||||
protected UserVmDao _userVmDao = null;
|
protected UserVmDao _userVmDao = null;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmDetailsDao _userVmDetailsDao = null;
|
protected VMInstanceDetailsDao _vmInstanceDetailsDao = null;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
protected ServiceOfferingDao _serviceOfferingDao;
|
protected ServiceOfferingDao _serviceOfferingDao;
|
||||||
@ -199,7 +199,7 @@ public class CloudOrchestrator implements OrchestrationService {
|
|||||||
rootDiskOfferingInfo.setSize(rootDiskSize);
|
rootDiskOfferingInfo.setSize(rootDiskSize);
|
||||||
|
|
||||||
if (rootDiskOffering.isCustomizedIops() != null && rootDiskOffering.isCustomizedIops()) {
|
if (rootDiskOffering.isCustomizedIops() != null && rootDiskOffering.isCustomizedIops()) {
|
||||||
Map<String, String> userVmDetails = _userVmDetailsDao.listDetailsKeyPairs(vm.getId());
|
Map<String, String> userVmDetails = _vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
|
||||||
|
|
||||||
if (userVmDetails != null) {
|
if (userVmDetails != null) {
|
||||||
String minIops = userVmDetails.get(MIN_IOPS);
|
String minIops = userVmDetails.get(MIN_IOPS);
|
||||||
@ -231,7 +231,7 @@ public class CloudOrchestrator implements OrchestrationService {
|
|||||||
dataDiskOfferingInfo.setSize(size);
|
dataDiskOfferingInfo.setSize(size);
|
||||||
|
|
||||||
if (diskOffering.isCustomizedIops() != null && diskOffering.isCustomizedIops()) {
|
if (diskOffering.isCustomizedIops() != null && diskOffering.isCustomizedIops()) {
|
||||||
Map<String, String> userVmDetails = _userVmDetailsDao.listDetailsKeyPairs(vm.getId());
|
Map<String, String> userVmDetails = _vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
|
||||||
|
|
||||||
if (userVmDetails != null) {
|
if (userVmDetails != null) {
|
||||||
String minIops = userVmDetails.get("minIopsDo");
|
String minIops = userVmDetails.get("minIopsDo");
|
||||||
@ -307,7 +307,7 @@ public class CloudOrchestrator implements OrchestrationService {
|
|||||||
rootDiskOfferingInfo.setSize(size);
|
rootDiskOfferingInfo.setSize(size);
|
||||||
|
|
||||||
if (diskOffering.isCustomizedIops() != null && diskOffering.isCustomizedIops()) {
|
if (diskOffering.isCustomizedIops() != null && diskOffering.isCustomizedIops()) {
|
||||||
Map<String, String> userVmDetails = _userVmDetailsDao.listDetailsKeyPairs(vm.getId());
|
Map<String, String> userVmDetails = _vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
|
||||||
|
|
||||||
if (userVmDetails != null) {
|
if (userVmDetails != null) {
|
||||||
String minIops = userVmDetails.get("minIopsDo");
|
String minIops = userVmDetails.get("minIopsDo");
|
||||||
|
|||||||
@ -168,7 +168,7 @@ import com.cloud.utils.fsm.StateMachine2;
|
|||||||
import com.cloud.vm.DiskProfile;
|
import com.cloud.vm.DiskProfile;
|
||||||
import com.cloud.vm.SecondaryStorageVmVO;
|
import com.cloud.vm.SecondaryStorageVmVO;
|
||||||
import com.cloud.vm.UserVmCloneSettingVO;
|
import com.cloud.vm.UserVmCloneSettingVO;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
@ -183,7 +183,7 @@ import com.cloud.vm.VmWorkTakeVolumeSnapshot;
|
|||||||
import com.cloud.vm.dao.SecondaryStorageVmDao;
|
import com.cloud.vm.dao.SecondaryStorageVmDao;
|
||||||
import com.cloud.vm.dao.UserVmCloneSettingDao;
|
import com.cloud.vm.dao.UserVmCloneSettingDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
|
||||||
public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrationService, Configurable {
|
public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrationService, Configurable {
|
||||||
|
|
||||||
@ -255,7 +255,7 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
|
|||||||
@Inject
|
@Inject
|
||||||
TemplateService templateService;
|
TemplateService templateService;
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao userVmDetailsDao;
|
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private SecondaryStorageVmDao secondaryStorageVmDao;
|
private SecondaryStorageVmDao secondaryStorageVmDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -1057,7 +1057,7 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
|
|||||||
logger.info("Could not find a running SSVM in datacenter [{}] for deploying VM as is. Not deploying VM [{}] as is.",
|
logger.info("Could not find a running SSVM in datacenter [{}] for deploying VM as is. Not deploying VM [{}] as is.",
|
||||||
vm.getDataCenterId(), vm);
|
vm.getDataCenterId(), vm);
|
||||||
} else {
|
} else {
|
||||||
UserVmDetailVO configurationDetail = userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_AS_IS_CONFIGURATION);
|
VMInstanceDetailVO configurationDetail = vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.DEPLOY_AS_IS_CONFIGURATION);
|
||||||
if (configurationDetail != null) {
|
if (configurationDetail != null) {
|
||||||
configurationId = configurationDetail.getValue();
|
configurationId = configurationDetail.getValue();
|
||||||
}
|
}
|
||||||
@ -1126,13 +1126,13 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
|
|||||||
String diskControllerSubType = disksAsIs.get(0).getDiskControllerSubType();
|
String diskControllerSubType = disksAsIs.get(0).getDiskControllerSubType();
|
||||||
if (StringUtils.isNotBlank(diskControllerSubType)) {
|
if (StringUtils.isNotBlank(diskControllerSubType)) {
|
||||||
long vmId = vm.getId();
|
long vmId = vm.getId();
|
||||||
UserVmDetailVO detail = userVmDetailsDao.findDetail(vmId, VmDetailConstants.ROOT_DISK_CONTROLLER);
|
VMInstanceDetailVO detail = vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.ROOT_DISK_CONTROLLER);
|
||||||
if (detail != null) {
|
if (detail != null) {
|
||||||
detail.setValue(diskControllerSubType);
|
detail.setValue(diskControllerSubType);
|
||||||
userVmDetailsDao.update(detail.getId(), detail);
|
vmInstanceDetailsDao.update(detail.getId(), detail);
|
||||||
} else {
|
} else {
|
||||||
detail = new UserVmDetailVO(vmId, VmDetailConstants.ROOT_DISK_CONTROLLER, diskControllerSubType, false);
|
detail = new VMInstanceDetailVO(vmId, VmDetailConstants.ROOT_DISK_CONTROLLER, diskControllerSubType, false);
|
||||||
userVmDetailsDao.persist(detail);
|
vmInstanceDetailsDao.persist(detail);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1621,7 +1621,7 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
|
|||||||
|
|
||||||
private void setIoDriverPolicy(Map<String, String> details, StoragePoolVO storagePool, VolumeVO volume) {
|
private void setIoDriverPolicy(Map<String, String> details, StoragePoolVO storagePool, VolumeVO volume) {
|
||||||
if (volume.getInstanceId() != null) {
|
if (volume.getInstanceId() != null) {
|
||||||
UserVmDetailVO ioDriverPolicy = userVmDetailsDao.findDetail(volume.getInstanceId(),
|
VMInstanceDetailVO ioDriverPolicy = vmInstanceDetailsDao.findDetail(volume.getInstanceId(),
|
||||||
VmDetailConstants.IO_POLICY);
|
VmDetailConstants.IO_POLICY);
|
||||||
if (ioDriverPolicy != null) {
|
if (ioDriverPolicy != null) {
|
||||||
if (IoDriverPolicy.STORAGE_SPECIFIC.toString().equals(ioDriverPolicy.getValue())) {
|
if (IoDriverPolicy.STORAGE_SPECIFIC.toString().equals(ioDriverPolicy.getValue())) {
|
||||||
|
|||||||
@ -131,7 +131,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
|||||||
import com.cloud.utils.fsm.StateMachine2;
|
import com.cloud.utils.fsm.StateMachine2;
|
||||||
import com.cloud.vm.VirtualMachine.State;
|
import com.cloud.vm.VirtualMachine.State;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
@RunWith(MockitoJUnitRunner.class)
|
@RunWith(MockitoJUnitRunner.class)
|
||||||
@ -224,7 +224,7 @@ public class VirtualMachineManagerImplTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private ClusterDetailsDao _clusterDetailsDao;
|
private ClusterDetailsDao _clusterDetailsDao;
|
||||||
@Mock
|
@Mock
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Mock
|
@Mock
|
||||||
private ItWorkDao _workDao;
|
private ItWorkDao _workDao;
|
||||||
@Mock
|
@Mock
|
||||||
@ -1098,7 +1098,7 @@ public class VirtualMachineManagerImplTest {
|
|||||||
when(cluster.getId()).thenReturn(1L);
|
when(cluster.getId()).thenReturn(1L);
|
||||||
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.CPU_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_cpu);
|
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.CPU_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_cpu);
|
||||||
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_ram);
|
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_ram);
|
||||||
when(userVmDetailsDao.findDetail(anyLong(), Mockito.anyString())).thenReturn(null);
|
when(vmInstanceDetailsDao.findDetail(anyLong(), Mockito.anyString())).thenReturn(null);
|
||||||
when(cluster_detail_cpu.getValue()).thenReturn("1.0");
|
when(cluster_detail_cpu.getValue()).thenReturn("1.0");
|
||||||
when(cluster_detail_ram.getValue()).thenReturn("1.0");
|
when(cluster_detail_ram.getValue()).thenReturn("1.0");
|
||||||
doReturn(false).when(virtualMachineManagerImpl).areAllVolumesAllocated(Mockito.anyLong());
|
doReturn(false).when(virtualMachineManagerImpl).areAllVolumesAllocated(Mockito.anyLong());
|
||||||
@ -1194,7 +1194,7 @@ public class VirtualMachineManagerImplTest {
|
|||||||
when(cluster.getId()).thenReturn(1L);
|
when(cluster.getId()).thenReturn(1L);
|
||||||
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.CPU_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_cpu);
|
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.CPU_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_cpu);
|
||||||
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_ram);
|
when(_clusterDetailsDao.findDetail(1L, VmDetailConstants.MEMORY_OVER_COMMIT_RATIO)).thenReturn(cluster_detail_ram);
|
||||||
when(userVmDetailsDao.findDetail(anyLong(), Mockito.anyString())).thenReturn(null);
|
when(vmInstanceDetailsDao.findDetail(anyLong(), Mockito.anyString())).thenReturn(null);
|
||||||
when(cluster_detail_cpu.getValue()).thenReturn("1.0");
|
when(cluster_detail_cpu.getValue()).thenReturn("1.0");
|
||||||
when(cluster_detail_ram.getValue()).thenReturn("1.0");
|
when(cluster_detail_ram.getValue()).thenReturn("1.0");
|
||||||
doReturn(true).when(virtualMachineManagerImpl).areAllVolumesAllocated(Mockito.anyLong());
|
doReturn(true).when(virtualMachineManagerImpl).areAllVolumesAllocated(Mockito.anyLong());
|
||||||
|
|||||||
@ -39,7 +39,7 @@ import com.cloud.utils.db.SearchBuilder;
|
|||||||
import com.cloud.utils.db.SearchCriteria;
|
import com.cloud.utils.db.SearchCriteria;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@DB()
|
@DB()
|
||||||
@ -48,7 +48,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
|
|||||||
@Inject
|
@Inject
|
||||||
protected ServiceOfferingDetailsDao detailsDao;
|
protected ServiceOfferingDetailsDao detailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmDetailsDao userVmDetailsDao;
|
protected VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private DiskOfferingDao diskOfferingDao;
|
private DiskOfferingDao diskOfferingDao;
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
|
|||||||
if (vmId == null) {
|
if (vmId == null) {
|
||||||
throw new CloudRuntimeException("missing argument vmId");
|
throw new CloudRuntimeException("missing argument vmId");
|
||||||
}
|
}
|
||||||
Map<String, String> dynamicOffering = userVmDetailsDao.listDetailsKeyPairs(vmId);
|
Map<String, String> dynamicOffering = vmInstanceDetailsDao.listDetailsKeyPairs(vmId);
|
||||||
return getComputeOffering(offering, dynamicOffering);
|
return getComputeOffering(offering, dynamicOffering);
|
||||||
}
|
}
|
||||||
return offering;
|
return offering;
|
||||||
@ -190,7 +190,7 @@ public class ServiceOfferingDaoImpl extends GenericDaoBase<ServiceOfferingVO, Lo
|
|||||||
if (vmId == null) {
|
if (vmId == null) {
|
||||||
throw new CloudRuntimeException("missing argument vmId");
|
throw new CloudRuntimeException("missing argument vmId");
|
||||||
}
|
}
|
||||||
Map<String, String> dynamicOffering = userVmDetailsDao.listDetailsKeyPairs(vmId);
|
Map<String, String> dynamicOffering = vmInstanceDetailsDao.listDetailsKeyPairs(vmId);
|
||||||
return getComputeOffering(offering, dynamicOffering);
|
return getComputeOffering(offering, dynamicOffering);
|
||||||
}
|
}
|
||||||
return offering;
|
return offering;
|
||||||
|
|||||||
@ -26,8 +26,8 @@ import javax.persistence.Table;
|
|||||||
import org.apache.cloudstack.api.ResourceDetail;
|
import org.apache.cloudstack.api.ResourceDetail;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "user_vm_details")
|
@Table(name = "vm_instance_details")
|
||||||
public class UserVmDetailVO implements ResourceDetail {
|
public class VMInstanceDetailVO implements ResourceDetail {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
@Column(name = "id")
|
@Column(name = "id")
|
||||||
@ -45,10 +45,10 @@ public class UserVmDetailVO implements ResourceDetail {
|
|||||||
@Column(name = "display")
|
@Column(name = "display")
|
||||||
private boolean display = true;
|
private boolean display = true;
|
||||||
|
|
||||||
public UserVmDetailVO() {
|
public VMInstanceDetailVO() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserVmDetailVO(long vmId, String name, String value, boolean display) {
|
public VMInstanceDetailVO(long vmId, String name, String value, boolean display) {
|
||||||
this.resourceId = vmId;
|
this.resourceId = vmId;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
@ -57,7 +57,7 @@ import com.cloud.utils.db.SearchCriteria.Func;
|
|||||||
import com.cloud.utils.db.TransactionLegacy;
|
import com.cloud.utils.db.TransactionLegacy;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.NicVO;
|
import com.cloud.vm.NicVO;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachine.State;
|
import com.cloud.vm.VirtualMachine.State;
|
||||||
@ -130,7 +130,7 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
|
|||||||
private static final int VM_DETAILS_BATCH_SIZE = 100;
|
private static final int VM_DETAILS_BATCH_SIZE = 100;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmDetailsDao _detailsDao;
|
protected VMInstanceDetailsDao _detailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected NicDao _nicDao;
|
protected NicDao _nicDao;
|
||||||
|
|
||||||
@ -445,10 +445,10 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
|
|||||||
|
|
||||||
final Map<String, Boolean> visibilityMap = _detailsDao.listDetailsVisibility(vm.getId());
|
final Map<String, Boolean> visibilityMap = _detailsDao.listDetailsVisibility(vm.getId());
|
||||||
|
|
||||||
List<UserVmDetailVO> details = new ArrayList<UserVmDetailVO>();
|
List<VMInstanceDetailVO> details = new ArrayList<VMInstanceDetailVO>();
|
||||||
for (Map.Entry<String, String> entry : detailsStr.entrySet()) {
|
for (Map.Entry<String, String> entry : detailsStr.entrySet()) {
|
||||||
boolean display = !hiddenDetails.contains(entry.getKey()) && visibilityMap.getOrDefault(entry.getKey(), true);
|
boolean display = !hiddenDetails.contains(entry.getKey()) && visibilityMap.getOrDefault(entry.getKey(), true);
|
||||||
details.add(new UserVmDetailVO(vm.getId(), entry.getKey(), entry.getValue(), display));
|
details.add(new VMInstanceDetailVO(vm.getId(), entry.getKey(), entry.getValue(), display));
|
||||||
}
|
}
|
||||||
|
|
||||||
_detailsDao.saveDetails(details);
|
_detailsDao.saveDetails(details);
|
||||||
|
|||||||
@ -19,7 +19,7 @@ package com.cloud.vm.dao;
|
|||||||
import org.apache.cloudstack.resourcedetail.ResourceDetailsDao;
|
import org.apache.cloudstack.resourcedetail.ResourceDetailsDao;
|
||||||
|
|
||||||
import com.cloud.utils.db.GenericDao;
|
import com.cloud.utils.db.GenericDao;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
|
|
||||||
public interface UserVmDetailsDao extends GenericDao<UserVmDetailVO, Long>, ResourceDetailsDao<UserVmDetailVO> {
|
public interface VMInstanceDetailsDao extends GenericDao<VMInstanceDetailVO, Long>, ResourceDetailsDao<VMInstanceDetailVO> {
|
||||||
}
|
}
|
||||||
@ -21,14 +21,14 @@ import org.springframework.stereotype.Component;
|
|||||||
|
|
||||||
import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase;
|
import org.apache.cloudstack.resourcedetail.ResourceDetailsDaoBase;
|
||||||
|
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class UserVmDetailsDaoImpl extends ResourceDetailsDaoBase<UserVmDetailVO> implements UserVmDetailsDao {
|
public class VMInstanceDetailsDaoImpl extends ResourceDetailsDaoBase<VMInstanceDetailVO> implements VMInstanceDetailsDao {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addDetail(long resourceId, String key, String value, boolean display) {
|
public void addDetail(long resourceId, String key, String value, boolean display) {
|
||||||
super.addDetail(new UserVmDetailVO(resourceId, key, value, display));
|
super.addDetail(new VMInstanceDetailVO(resourceId, key, value, display));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -63,7 +63,7 @@
|
|||||||
<bean id="storagePoolHostDaoImpl" class="com.cloud.storage.dao.StoragePoolHostDaoImpl" />
|
<bean id="storagePoolHostDaoImpl" class="com.cloud.storage.dao.StoragePoolHostDaoImpl" />
|
||||||
<bean id="storagePoolTagsDaoImpl" class="com.cloud.storage.dao.StoragePoolTagsDaoImpl" />
|
<bean id="storagePoolTagsDaoImpl" class="com.cloud.storage.dao.StoragePoolTagsDaoImpl" />
|
||||||
<bean id="storagePoolAndAccessGroupMapDaoImpl" class="com.cloud.storage.dao.StoragePoolAndAccessGroupMapDaoImpl" />
|
<bean id="storagePoolAndAccessGroupMapDaoImpl" class="com.cloud.storage.dao.StoragePoolAndAccessGroupMapDaoImpl" />
|
||||||
<bean id="userVmDetailsDaoImpl" class="com.cloud.vm.dao.UserVmDetailsDaoImpl" />
|
<bean id="vmInstanceDetailsDaoImpl" class="com.cloud.vm.dao.VMInstanceDetailsDaoImpl" />
|
||||||
<bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" />
|
<bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" />
|
||||||
<bean id="vMInstanceDaoImpl" class="com.cloud.vm.dao.VMInstanceDaoImpl" />
|
<bean id="vMInstanceDaoImpl" class="com.cloud.vm.dao.VMInstanceDaoImpl" />
|
||||||
<bean id="vMSnapshotDaoImpl" class="com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl" />
|
<bean id="vMSnapshotDaoImpl" class="com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl" />
|
||||||
|
|||||||
@ -234,5 +234,10 @@ CREATE TABLE IF NOT EXISTS `cloud`.`gui_themes_details` (
|
|||||||
CONSTRAINT `fk_gui_themes_details__gui_theme_id` FOREIGN KEY (`gui_theme_id`) REFERENCES `gui_themes`(`id`)
|
CONSTRAINT `fk_gui_themes_details__gui_theme_id` FOREIGN KEY (`gui_theme_id`) REFERENCES `gui_themes`(`id`)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
-- Rename user_vm_details to vm_instance_details
|
||||||
|
ALTER TABLE `cloud`.`user_vm_details` RENAME TO `cloud`.`vm_instance_details`;
|
||||||
|
ALTER TABLE `cloud`.`vm_instance_details` DROP FOREIGN KEY `fk_user_vm_details__vm_id`;
|
||||||
|
ALTER TABLE `cloud`.`vm_instance_details` ADD CONSTRAINT `fk_vm_instance_details__vm_id` FOREIGN KEY (vm_id) REFERENCES vm_instance(id) ON DELETE CASCADE;
|
||||||
|
|
||||||
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.backup_schedule', 'uuid', 'VARCHAR(40) NOT NULL');
|
CALL `cloud`.`IDEMPOTENT_ADD_COLUMN`('cloud.backup_schedule', 'uuid', 'VARCHAR(40) NOT NULL');
|
||||||
UPDATE `cloud`.`backup_schedule` SET uuid = UUID();
|
UPDATE `cloud`.`backup_schedule` SET uuid = UUID();
|
||||||
|
|||||||
@ -203,7 +203,7 @@ FROM
|
|||||||
LEFT JOIN `vpc` ON (((`networks`.`vpc_id` = `vpc`.`id`)
|
LEFT JOIN `vpc` ON (((`networks`.`vpc_id` = `vpc`.`id`)
|
||||||
AND ISNULL(`vpc`.`removed`))))
|
AND ISNULL(`vpc`.`removed`))))
|
||||||
LEFT JOIN `user_ip_address` FORCE INDEX(`fk_user_ip_address__vm_id`) ON ((`user_ip_address`.`vm_id` = `vm_instance`.`id`)))
|
LEFT JOIN `user_ip_address` FORCE INDEX(`fk_user_ip_address__vm_id`) ON ((`user_ip_address`.`vm_id` = `vm_instance`.`id`)))
|
||||||
LEFT JOIN `user_vm_details` `ssh_details` ON (((`ssh_details`.`vm_id` = `vm_instance`.`id`)
|
LEFT JOIN `vm_instance_details` `ssh_details` ON (((`ssh_details`.`vm_id` = `vm_instance`.`id`)
|
||||||
AND (`ssh_details`.`name` = 'SSH.KeyPairNames'))))
|
AND (`ssh_details`.`name` = 'SSH.KeyPairNames'))))
|
||||||
LEFT JOIN `resource_tags` ON (((`resource_tags`.`resource_id` = `vm_instance`.`id`)
|
LEFT JOIN `resource_tags` ON (((`resource_tags`.`resource_id` = `vm_instance`.`id`)
|
||||||
AND (`resource_tags`.`resource_type` = 'UserVm'))))
|
AND (`resource_tags`.`resource_type` = 'UserVm'))))
|
||||||
@ -214,15 +214,15 @@ FROM
|
|||||||
LEFT JOIN `affinity_group` ON ((`affinity_group_vm_map`.`affinity_group_id` = `affinity_group`.`id`)))
|
LEFT JOIN `affinity_group` ON ((`affinity_group_vm_map`.`affinity_group_id` = `affinity_group`.`id`)))
|
||||||
LEFT JOIN `autoscale_vmgroup_vm_map` ON ((`autoscale_vmgroup_vm_map`.`instance_id` = `vm_instance`.`id`)))
|
LEFT JOIN `autoscale_vmgroup_vm_map` ON ((`autoscale_vmgroup_vm_map`.`instance_id` = `vm_instance`.`id`)))
|
||||||
LEFT JOIN `autoscale_vmgroups` ON ((`autoscale_vmgroup_vm_map`.`vmgroup_id` = `autoscale_vmgroups`.`id`)))
|
LEFT JOIN `autoscale_vmgroups` ON ((`autoscale_vmgroup_vm_map`.`vmgroup_id` = `autoscale_vmgroups`.`id`)))
|
||||||
LEFT JOIN `user_vm_details` `custom_cpu` ON (((`custom_cpu`.`vm_id` = `vm_instance`.`id`)
|
LEFT JOIN `vm_instance_details` `custom_cpu` ON (((`custom_cpu`.`vm_id` = `vm_instance`.`id`)
|
||||||
AND (`custom_cpu`.`name` = 'CpuNumber'))))
|
AND (`custom_cpu`.`name` = 'CpuNumber'))))
|
||||||
LEFT JOIN `user_vm_details` `custom_speed` ON (((`custom_speed`.`vm_id` = `vm_instance`.`id`)
|
LEFT JOIN `vm_instance_details` `custom_speed` ON (((`custom_speed`.`vm_id` = `vm_instance`.`id`)
|
||||||
AND (`custom_speed`.`name` = 'CpuSpeed'))))
|
AND (`custom_speed`.`name` = 'CpuSpeed'))))
|
||||||
LEFT JOIN `user_vm_details` `custom_ram_size` ON (((`custom_ram_size`.`vm_id` = `vm_instance`.`id`)
|
LEFT JOIN `vm_instance_details` `custom_ram_size` ON (((`custom_ram_size`.`vm_id` = `vm_instance`.`id`)
|
||||||
AND (`custom_ram_size`.`name` = 'memory')))
|
AND (`custom_ram_size`.`name` = 'memory')))
|
||||||
LEFT JOIN `user_vm_details` `lease_expiry_date` ON ((`lease_expiry_date`.`vm_id` = `vm_instance`.`id`)
|
LEFT JOIN `vm_instance_details` `lease_expiry_date` ON ((`lease_expiry_date`.`vm_id` = `vm_instance`.`id`)
|
||||||
AND (`lease_expiry_date`.`name` = 'leaseexpirydate'))
|
AND (`lease_expiry_date`.`name` = 'leaseexpirydate'))
|
||||||
LEFT JOIN `user_vm_details` `lease_action_execution` ON ((`lease_action_execution`.`vm_id` = `vm_instance`.`id`)
|
LEFT JOIN `vm_instance_details` `lease_action_execution` ON ((`lease_action_execution`.`vm_id` = `vm_instance`.`id`)
|
||||||
AND (`lease_action_execution`.`name` = 'leaseactionexecution'))
|
AND (`lease_action_execution`.`name` = 'leaseactionexecution'))
|
||||||
LEFT JOIN `user_vm_details` `lease_expiry_action` ON (((`lease_expiry_action`.`vm_id` = `vm_instance`.`id`)
|
LEFT JOIN `vm_instance_details` `lease_expiry_action` ON (((`lease_expiry_action`.`vm_id` = `vm_instance`.`id`)
|
||||||
AND (`lease_expiry_action`.`name` = 'leaseexpiryaction'))));
|
AND (`lease_expiry_action`.`name` = 'leaseexpiryaction'))));
|
||||||
|
|||||||
@ -91,7 +91,7 @@ import com.cloud.vm.dao.DomainRouterDao;
|
|||||||
import com.cloud.vm.dao.NicDaoImpl;
|
import com.cloud.vm.dao.NicDaoImpl;
|
||||||
import com.cloud.vm.dao.SecondaryStorageVmDaoImpl;
|
import com.cloud.vm.dao.SecondaryStorageVmDaoImpl;
|
||||||
import com.cloud.vm.dao.UserVmDaoImpl;
|
import com.cloud.vm.dao.UserVmDaoImpl;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDaoImpl;
|
import com.cloud.vm.dao.VMInstanceDetailsDaoImpl;
|
||||||
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
|
||||||
|
|
||||||
@ -101,7 +101,7 @@ import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
|
|||||||
ConfigurationGroupDaoImpl.class, ConfigurationSubGroupDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, VMTemplateZoneDaoImpl.class,
|
ConfigurationGroupDaoImpl.class, ConfigurationSubGroupDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, VMTemplateZoneDaoImpl.class,
|
||||||
VMTemplateDetailsDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, DataCenterIpAddressDaoImpl.class,
|
VMTemplateDetailsDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, DataCenterIpAddressDaoImpl.class,
|
||||||
DataCenterLinkLocalIpAddressDaoImpl.class, DataCenterVnetDaoImpl.class, PodVlanDaoImpl.class, DataCenterDetailsDaoImpl.class, DiskOfferingDaoImpl.class,
|
DataCenterLinkLocalIpAddressDaoImpl.class, DataCenterVnetDaoImpl.class, PodVlanDaoImpl.class, DataCenterDetailsDaoImpl.class, DiskOfferingDaoImpl.class,
|
||||||
StoragePoolHostDaoImpl.class, UserVmDaoImpl.class, UserVmDetailsDaoImpl.class, ServiceOfferingDaoImpl.class, CapacityDaoImpl.class, SnapshotDaoImpl.class,
|
StoragePoolHostDaoImpl.class, UserVmDaoImpl.class, VMInstanceDetailsDaoImpl.class, ServiceOfferingDaoImpl.class, CapacityDaoImpl.class, SnapshotDaoImpl.class,
|
||||||
VMSnapshotDaoImpl.class, OCFS2ManagerImpl.class, ClusterDetailsDaoImpl.class, SecondaryStorageVmDaoImpl.class, ConsoleProxyDaoImpl.class,
|
VMSnapshotDaoImpl.class, OCFS2ManagerImpl.class, ClusterDetailsDaoImpl.class, SecondaryStorageVmDaoImpl.class, ConsoleProxyDaoImpl.class,
|
||||||
StoragePoolWorkDaoImpl.class, StorageCacheManagerImpl.class, UserDaoImpl.class, DataCenterDaoImpl.class, StoragePoolDetailsDaoImpl.class, DomainDaoImpl.class,
|
StoragePoolWorkDaoImpl.class, StorageCacheManagerImpl.class, UserDaoImpl.class, DataCenterDaoImpl.class, StoragePoolDetailsDaoImpl.class, DomainDaoImpl.class,
|
||||||
DownloadMonitorImpl.class, AccountDaoImpl.class, ActionEventUtils.class, EventDaoImpl.class},
|
DownloadMonitorImpl.class, AccountDaoImpl.class, ActionEventUtils.class, EventDaoImpl.class},
|
||||||
|
|||||||
@ -92,10 +92,10 @@ import com.cloud.user.AccountVO;
|
|||||||
import com.cloud.user.dao.AccountDao;
|
import com.cloud.user.dao.AccountDao;
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.constants.VmDetails;
|
import com.cloud.vm.constants.VmDetails;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||||
@ -174,7 +174,7 @@ public class PresetVariableHelper {
|
|||||||
VMSnapshotDao vmSnapshotDao;
|
VMSnapshotDao vmSnapshotDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao userVmDetailsDao;
|
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
BackupOfferingDao backupOfferingDao;
|
BackupOfferingDao backupOfferingDao;
|
||||||
@ -465,7 +465,7 @@ public class PresetVariableHelper {
|
|||||||
computingResources.setCpuSpeed(serviceOfferingVo.getSpeed());
|
computingResources.setCpuSpeed(serviceOfferingVo.getSpeed());
|
||||||
|
|
||||||
if (serviceOfferingVo.isDynamic()) {
|
if (serviceOfferingVo.isDynamic()) {
|
||||||
List<UserVmDetailVO> details = userVmDetailsDao.listDetails(vmVo.getId());
|
List<VMInstanceDetailVO> details = vmInstanceDetailsDao.listDetails(vmVo.getId());
|
||||||
|
|
||||||
computingResources.setMemory(getDetailByName(details, VmDetails.MEMORY.getName(), computingResources.getMemory()));
|
computingResources.setMemory(getDetailByName(details, VmDetails.MEMORY.getName(), computingResources.getMemory()));
|
||||||
computingResources.setCpuNumber(getDetailByName(details, VmDetails.CPU_NUMBER.getName(), computingResources.getCpuNumber()));
|
computingResources.setCpuNumber(getDetailByName(details, VmDetails.CPU_NUMBER.getName(), computingResources.getCpuNumber()));
|
||||||
@ -485,14 +485,14 @@ public class PresetVariableHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Integer getDetailByName(List<UserVmDetailVO> details, String name, Integer defaultValue) {
|
protected Integer getDetailByName(List<VMInstanceDetailVO> details, String name, Integer defaultValue) {
|
||||||
List<UserVmDetailVO> detailFiltered = details.stream().filter(det -> name.equals(det.getName())).collect(Collectors.toList());
|
List<VMInstanceDetailVO> detailFiltered = details.stream().filter(det -> name.equals(det.getName())).collect(Collectors.toList());
|
||||||
|
|
||||||
if (CollectionUtils.isEmpty(detailFiltered)) {
|
if (CollectionUtils.isEmpty(detailFiltered)) {
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
UserVmDetailVO detail = detailFiltered.get(0);
|
VMInstanceDetailVO detail = detailFiltered.get(0);
|
||||||
|
|
||||||
if (detail.getValue() != null) {
|
if (detail.getValue() != null) {
|
||||||
return Integer.valueOf(detail.getValue());
|
return Integer.valueOf(detail.getValue());
|
||||||
|
|||||||
@ -20,8 +20,8 @@ import java.util.Map;
|
|||||||
|
|
||||||
import com.cloud.utils.db.GenericDao;
|
import com.cloud.utils.db.GenericDao;
|
||||||
|
|
||||||
import org.apache.cloudstack.quota.vo.UserVmDetailVO;
|
import org.apache.cloudstack.quota.vo.VMInstanceDetailVO;
|
||||||
|
|
||||||
public interface UserVmDetailsDao extends GenericDao<UserVmDetailVO, Long> {
|
public interface VMInstanceDetailsDao extends GenericDao<VMInstanceDetailVO, Long> {
|
||||||
Map<String, String> listDetailsKeyPairs(long resourceId);
|
Map<String, String> listDetailsKeyPairs(long resourceId);
|
||||||
}
|
}
|
||||||
@ -20,7 +20,7 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apache.cloudstack.quota.vo.UserVmDetailVO;
|
import org.apache.cloudstack.quota.vo.VMInstanceDetailVO;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.cloud.utils.db.GenericDaoBase;
|
import com.cloud.utils.db.GenericDaoBase;
|
||||||
@ -28,10 +28,10 @@ import com.cloud.utils.db.SearchBuilder;
|
|||||||
import com.cloud.utils.db.SearchCriteria;
|
import com.cloud.utils.db.SearchCriteria;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class UserVmDetailsDaoImpl extends GenericDaoBase<UserVmDetailVO, Long> implements UserVmDetailsDao {
|
public class VMInstanceDetailsDaoImpl extends GenericDaoBase<VMInstanceDetailVO, Long> implements VMInstanceDetailsDao {
|
||||||
private SearchBuilder<UserVmDetailVO> AllFieldsSearch;
|
private SearchBuilder<VMInstanceDetailVO> AllFieldsSearch;
|
||||||
|
|
||||||
public UserVmDetailsDaoImpl() {
|
public VMInstanceDetailsDaoImpl() {
|
||||||
AllFieldsSearch = createSearchBuilder();
|
AllFieldsSearch = createSearchBuilder();
|
||||||
AllFieldsSearch.and("resourceId", AllFieldsSearch.entity().getResourceId(), SearchCriteria.Op.EQ);
|
AllFieldsSearch.and("resourceId", AllFieldsSearch.entity().getResourceId(), SearchCriteria.Op.EQ);
|
||||||
AllFieldsSearch.and("name", AllFieldsSearch.entity().getName(), SearchCriteria.Op.EQ);
|
AllFieldsSearch.and("name", AllFieldsSearch.entity().getName(), SearchCriteria.Op.EQ);
|
||||||
@ -43,11 +43,11 @@ public class UserVmDetailsDaoImpl extends GenericDaoBase<UserVmDetailVO, Long> i
|
|||||||
@Override
|
@Override
|
||||||
public Map<String, String> listDetailsKeyPairs(long resourceId) {
|
public Map<String, String> listDetailsKeyPairs(long resourceId) {
|
||||||
Map<String, String> details = new HashMap<String, String>();
|
Map<String, String> details = new HashMap<String, String>();
|
||||||
SearchCriteria<UserVmDetailVO> sc = AllFieldsSearch.create();
|
SearchCriteria<VMInstanceDetailVO> sc = AllFieldsSearch.create();
|
||||||
sc.setParameters("resourceId", resourceId);
|
sc.setParameters("resourceId", resourceId);
|
||||||
|
|
||||||
List<UserVmDetailVO> results = search(sc, null);
|
List<VMInstanceDetailVO> results = search(sc, null);
|
||||||
for (UserVmDetailVO result : results) {
|
for (VMInstanceDetailVO result : results) {
|
||||||
details.put(result.getName(), result.getValue());
|
details.put(result.getName(), result.getValue());
|
||||||
}
|
}
|
||||||
return details;
|
return details;
|
||||||
@ -26,8 +26,8 @@ import javax.persistence.Table;
|
|||||||
import org.apache.cloudstack.api.ResourceDetail;
|
import org.apache.cloudstack.api.ResourceDetail;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "user_vm_details")
|
@Table(name = "vm_instance_details")
|
||||||
public class UserVmDetailVO implements ResourceDetail {
|
public class VMInstanceDetailVO implements ResourceDetail {
|
||||||
@Id
|
@Id
|
||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
@Column(name = "id")
|
@Column(name = "id")
|
||||||
@ -45,10 +45,10 @@ public class UserVmDetailVO implements ResourceDetail {
|
|||||||
@Column(name = "display")
|
@Column(name = "display")
|
||||||
private boolean display = true;
|
private boolean display = true;
|
||||||
|
|
||||||
public UserVmDetailVO() {
|
public VMInstanceDetailVO() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserVmDetailVO(long vmId, String name, String value, boolean display) {
|
public VMInstanceDetailVO(long vmId, String name, String value, boolean display) {
|
||||||
this.resourceId = vmId;
|
this.resourceId = vmId;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.value = value;
|
this.value = value;
|
||||||
@ -25,7 +25,7 @@
|
|||||||
<bean id="QuotaEmailTemplatesDao"
|
<bean id="QuotaEmailTemplatesDao"
|
||||||
class="org.apache.cloudstack.quota.dao.QuotaEmailTemplatesDaoImpl" />
|
class="org.apache.cloudstack.quota.dao.QuotaEmailTemplatesDaoImpl" />
|
||||||
<bean id="QuotaUsageDao" class="org.apache.cloudstack.quota.dao.QuotaUsageDaoImpl" />
|
<bean id="QuotaUsageDao" class="org.apache.cloudstack.quota.dao.QuotaUsageDaoImpl" />
|
||||||
<bean id="UserVmDetailsDao" class="org.apache.cloudstack.quota.dao.UserVmDetailsDaoImpl" />
|
<bean id="UserVmDetailsDao" class="org.apache.cloudstack.quota.dao.VMInstanceDetailsDaoImpl" />
|
||||||
|
|
||||||
<bean id="QuotaManager" class="org.apache.cloudstack.quota.QuotaManagerImpl" />
|
<bean id="QuotaManager" class="org.apache.cloudstack.quota.QuotaManagerImpl" />
|
||||||
<bean id="QuotaAlertManager" class="org.apache.cloudstack.quota.QuotaAlertManagerImpl" />
|
<bean id="QuotaAlertManager" class="org.apache.cloudstack.quota.QuotaAlertManagerImpl" />
|
||||||
|
|||||||
@ -93,9 +93,9 @@ import com.cloud.user.AccountVO;
|
|||||||
import com.cloud.user.dao.AccountDao;
|
import com.cloud.user.dao.AccountDao;
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.vm.snapshot.VMSnapshot;
|
import com.cloud.vm.snapshot.VMSnapshot;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||||
@ -171,7 +171,7 @@ public class PresetVariableHelperTest {
|
|||||||
VolumeDao volumeDaoMock;
|
VolumeDao volumeDaoMock;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailsDao userVmDetailsDaoMock;
|
VMInstanceDetailsDao vmInstanceDetailsDaoMock;
|
||||||
|
|
||||||
@InjectMocks
|
@InjectMocks
|
||||||
PresetVariableHelper presetVariableHelperSpy = Mockito.spy(PresetVariableHelper.class);
|
PresetVariableHelper presetVariableHelperSpy = Mockito.spy(PresetVariableHelper.class);
|
||||||
@ -296,11 +296,11 @@ public class PresetVariableHelperTest {
|
|||||||
return quotaTypesMap.entrySet();
|
return quotaTypesMap.entrySet();
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<UserVmDetailVO> getVmDetailsForTests() {
|
private List<VMInstanceDetailVO> getVmDetailsForTests() {
|
||||||
List<UserVmDetailVO> details = new LinkedList<>();
|
List<VMInstanceDetailVO> details = new LinkedList<>();
|
||||||
details.add(new UserVmDetailVO(1l, "test_with_value", "277", false));
|
details.add(new VMInstanceDetailVO(1l, "test_with_value", "277", false));
|
||||||
details.add(new UserVmDetailVO(1l, "test_with_invalid_value", "invalid", false));
|
details.add(new VMInstanceDetailVO(1l, "test_with_invalid_value", "invalid", false));
|
||||||
details.add(new UserVmDetailVO(1l, "test_with_null", null, false));
|
details.add(new VMInstanceDetailVO(1l, "test_with_null", null, false));
|
||||||
return details;
|
return details;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1245,7 +1245,7 @@ public class PresetVariableHelperTest {
|
|||||||
ComputingResources result = presetVariableHelperSpy.getPresetVariableValueComputingResource(vmInstanceVoMock, serviceOfferingVoMock);
|
ComputingResources result = presetVariableHelperSpy.getPresetVariableValueComputingResource(vmInstanceVoMock, serviceOfferingVoMock);
|
||||||
|
|
||||||
Assert.assertEquals(expected.toString(), result.toString());
|
Assert.assertEquals(expected.toString(), result.toString());
|
||||||
Mockito.verify(userVmDetailsDaoMock, Mockito.never()).listDetails(Mockito.anyLong());
|
Mockito.verify(vmInstanceDetailsDaoMock, Mockito.never()).listDetails(Mockito.anyLong());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -1263,7 +1263,7 @@ public class PresetVariableHelperTest {
|
|||||||
ComputingResources result = presetVariableHelperSpy.getPresetVariableValueComputingResource(vmInstanceVoMock, serviceOfferingVoMock);
|
ComputingResources result = presetVariableHelperSpy.getPresetVariableValueComputingResource(vmInstanceVoMock, serviceOfferingVoMock);
|
||||||
|
|
||||||
Assert.assertEquals(expected.toString(), result.toString());
|
Assert.assertEquals(expected.toString(), result.toString());
|
||||||
Mockito.verify(userVmDetailsDaoMock).listDetails(Mockito.anyLong());
|
Mockito.verify(vmInstanceDetailsDaoMock).listDetails(Mockito.anyLong());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
@ -95,7 +95,7 @@ import com.cloud.vm.UserVmVO;
|
|||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
@RunWith(SpringJUnit4ClassRunner.class)
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
@ -123,7 +123,7 @@ public class ImplicitPlannerTest {
|
|||||||
@Inject
|
@Inject
|
||||||
UserVmDao vmDao;
|
UserVmDao vmDao;
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao vmDetailsDao;
|
VMInstanceDetailsDao vmDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
VMInstanceDao vmInstanceDao;
|
VMInstanceDao vmInstanceDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -489,8 +489,8 @@ public class ImplicitPlannerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public UserVmDetailsDao userVmDetailsDao() {
|
public VMInstanceDetailsDao vmInstanceDetailsDao() {
|
||||||
return Mockito.mock(UserVmDetailsDao.class);
|
return Mockito.mock(VMInstanceDetailsDao.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|||||||
@ -17,9 +17,9 @@
|
|||||||
package com.cloud.kubernetes.cluster;
|
package com.cloud.kubernetes.cluster;
|
||||||
|
|
||||||
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.CONTROL;
|
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.CONTROL;
|
||||||
|
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.DEFAULT;
|
||||||
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.ETCD;
|
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.ETCD;
|
||||||
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.WORKER;
|
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.WORKER;
|
||||||
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.DEFAULT;
|
|
||||||
import static com.cloud.utils.NumbersUtil.toHumanReadableSize;
|
import static com.cloud.utils.NumbersUtil.toHumanReadableSize;
|
||||||
import static com.cloud.vm.UserVmManager.AllowUserExpungeRecoverVm;
|
import static com.cloud.vm.UserVmManager.AllowUserExpungeRecoverVm;
|
||||||
|
|
||||||
@ -47,28 +47,6 @@ import java.util.stream.Collectors;
|
|||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.naming.ConfigurationException;
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
import com.cloud.bgp.BGPService;
|
|
||||||
import com.cloud.dc.DedicatedResourceVO;
|
|
||||||
import com.cloud.dc.dao.DedicatedResourceDao;
|
|
||||||
import com.cloud.exception.ManagementServerException;
|
|
||||||
import com.cloud.exception.ResourceUnavailableException;
|
|
||||||
import com.cloud.host.Host;
|
|
||||||
import com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType;
|
|
||||||
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterRemoveWorker;
|
|
||||||
import com.cloud.network.dao.NsxProviderDao;
|
|
||||||
import com.cloud.network.element.NsxProviderVO;
|
|
||||||
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterAddWorker;
|
|
||||||
import com.cloud.network.rules.PortForwardingRuleVO;
|
|
||||||
import com.cloud.network.rules.dao.PortForwardingRulesDao;
|
|
||||||
import com.cloud.template.TemplateApiService;
|
|
||||||
import com.cloud.user.UserDataVO;
|
|
||||||
import com.cloud.user.dao.AccountDao;
|
|
||||||
import com.cloud.user.dao.UserDataDao;
|
|
||||||
import com.cloud.uservm.UserVm;
|
|
||||||
import com.cloud.vm.NicVO;
|
|
||||||
import com.cloud.vm.UserVmService;
|
|
||||||
import com.cloud.vm.dao.NicDao;
|
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
|
||||||
import org.apache.cloudstack.acl.ControlledEntity;
|
import org.apache.cloudstack.acl.ControlledEntity;
|
||||||
import org.apache.cloudstack.acl.Role;
|
import org.apache.cloudstack.acl.Role;
|
||||||
import org.apache.cloudstack.acl.RolePermissionEntity;
|
import org.apache.cloudstack.acl.RolePermissionEntity;
|
||||||
@ -87,7 +65,6 @@ import org.apache.cloudstack.api.ApiErrorCode;
|
|||||||
import org.apache.cloudstack.api.BaseCmd;
|
import org.apache.cloudstack.api.BaseCmd;
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
import org.apache.cloudstack.api.ServerApiException;
|
import org.apache.cloudstack.api.ServerApiException;
|
||||||
import org.apache.cloudstack.api.command.user.kubernetes.cluster.AddNodesToKubernetesClusterCmd;
|
|
||||||
import org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd;
|
import org.apache.cloudstack.api.command.user.address.AssociateIPAddrCmd;
|
||||||
import org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd;
|
import org.apache.cloudstack.api.command.user.address.DisassociateIPAddrCmd;
|
||||||
import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd;
|
import org.apache.cloudstack.api.command.user.address.ListPublicIpAddressesCmd;
|
||||||
@ -96,6 +73,7 @@ import org.apache.cloudstack.api.command.user.firewall.DeleteFirewallRuleCmd;
|
|||||||
import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
|
import org.apache.cloudstack.api.command.user.firewall.ListFirewallRulesCmd;
|
||||||
import org.apache.cloudstack.api.command.user.firewall.UpdateFirewallRuleCmd;
|
import org.apache.cloudstack.api.command.user.firewall.UpdateFirewallRuleCmd;
|
||||||
import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
|
import org.apache.cloudstack.api.command.user.job.QueryAsyncJobResultCmd;
|
||||||
|
import org.apache.cloudstack.api.command.user.kubernetes.cluster.AddNodesToKubernetesClusterCmd;
|
||||||
import org.apache.cloudstack.api.command.user.kubernetes.cluster.AddVirtualMachinesToKubernetesClusterCmd;
|
import org.apache.cloudstack.api.command.user.kubernetes.cluster.AddVirtualMachinesToKubernetesClusterCmd;
|
||||||
import org.apache.cloudstack.api.command.user.kubernetes.cluster.CreateKubernetesClusterCmd;
|
import org.apache.cloudstack.api.command.user.kubernetes.cluster.CreateKubernetesClusterCmd;
|
||||||
import org.apache.cloudstack.api.command.user.kubernetes.cluster.DeleteKubernetesClusterCmd;
|
import org.apache.cloudstack.api.command.user.kubernetes.cluster.DeleteKubernetesClusterCmd;
|
||||||
@ -130,13 +108,14 @@ import org.apache.cloudstack.context.CallContext;
|
|||||||
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
||||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||||
import org.apache.cloudstack.managed.context.ManagedContextRunnable;
|
import org.apache.cloudstack.managed.context.ManagedContextRunnable;
|
||||||
import org.apache.commons.beanutils.BeanUtils;
|
|
||||||
import org.apache.cloudstack.network.RoutedIpv4Manager;
|
import org.apache.cloudstack.network.RoutedIpv4Manager;
|
||||||
|
import org.apache.commons.beanutils.BeanUtils;
|
||||||
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.codec.binary.Base64;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.logging.log4j.Level;
|
||||||
|
|
||||||
import com.cloud.api.ApiDBUtils;
|
import com.cloud.api.ApiDBUtils;
|
||||||
import com.cloud.api.query.dao.NetworkOfferingJoinDao;
|
import com.cloud.api.query.dao.NetworkOfferingJoinDao;
|
||||||
@ -144,14 +123,17 @@ import com.cloud.api.query.dao.TemplateJoinDao;
|
|||||||
import com.cloud.api.query.dao.UserVmJoinDao;
|
import com.cloud.api.query.dao.UserVmJoinDao;
|
||||||
import com.cloud.api.query.vo.NetworkOfferingJoinVO;
|
import com.cloud.api.query.vo.NetworkOfferingJoinVO;
|
||||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||||
|
import com.cloud.bgp.BGPService;
|
||||||
import com.cloud.capacity.CapacityManager;
|
import com.cloud.capacity.CapacityManager;
|
||||||
import com.cloud.dc.ClusterDetailsDao;
|
import com.cloud.dc.ClusterDetailsDao;
|
||||||
import com.cloud.dc.ClusterDetailsVO;
|
import com.cloud.dc.ClusterDetailsVO;
|
||||||
import com.cloud.dc.ClusterVO;
|
import com.cloud.dc.ClusterVO;
|
||||||
import com.cloud.dc.DataCenter;
|
import com.cloud.dc.DataCenter;
|
||||||
import com.cloud.dc.DataCenterVO;
|
import com.cloud.dc.DataCenterVO;
|
||||||
|
import com.cloud.dc.DedicatedResourceVO;
|
||||||
import com.cloud.dc.dao.ClusterDao;
|
import com.cloud.dc.dao.ClusterDao;
|
||||||
import com.cloud.dc.dao.DataCenterDao;
|
import com.cloud.dc.dao.DataCenterDao;
|
||||||
|
import com.cloud.dc.dao.DedicatedResourceDao;
|
||||||
import com.cloud.deploy.DeployDestination;
|
import com.cloud.deploy.DeployDestination;
|
||||||
import com.cloud.domain.Domain;
|
import com.cloud.domain.Domain;
|
||||||
import com.cloud.event.ActionEvent;
|
import com.cloud.event.ActionEvent;
|
||||||
@ -159,13 +141,19 @@ import com.cloud.exception.ConcurrentOperationException;
|
|||||||
import com.cloud.exception.InsufficientCapacityException;
|
import com.cloud.exception.InsufficientCapacityException;
|
||||||
import com.cloud.exception.InsufficientServerCapacityException;
|
import com.cloud.exception.InsufficientServerCapacityException;
|
||||||
import com.cloud.exception.InvalidParameterValueException;
|
import com.cloud.exception.InvalidParameterValueException;
|
||||||
|
import com.cloud.exception.ManagementServerException;
|
||||||
import com.cloud.exception.PermissionDeniedException;
|
import com.cloud.exception.PermissionDeniedException;
|
||||||
import com.cloud.exception.ResourceAllocationException;
|
import com.cloud.exception.ResourceAllocationException;
|
||||||
|
import com.cloud.exception.ResourceUnavailableException;
|
||||||
|
import com.cloud.host.Host;
|
||||||
import com.cloud.host.HostVO;
|
import com.cloud.host.HostVO;
|
||||||
import com.cloud.host.dao.HostDao;
|
import com.cloud.host.dao.HostDao;
|
||||||
import com.cloud.hypervisor.Hypervisor;
|
import com.cloud.hypervisor.Hypervisor;
|
||||||
|
import com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType;
|
||||||
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterActionWorker;
|
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterActionWorker;
|
||||||
|
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterAddWorker;
|
||||||
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterDestroyWorker;
|
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterDestroyWorker;
|
||||||
|
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterRemoveWorker;
|
||||||
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterScaleWorker;
|
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterScaleWorker;
|
||||||
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterStartWorker;
|
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterStartWorker;
|
||||||
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterStopWorker;
|
import com.cloud.kubernetes.cluster.actionworkers.KubernetesClusterStopWorker;
|
||||||
@ -189,10 +177,14 @@ import com.cloud.network.dao.IPAddressDao;
|
|||||||
import com.cloud.network.dao.IPAddressVO;
|
import com.cloud.network.dao.IPAddressVO;
|
||||||
import com.cloud.network.dao.NetworkDao;
|
import com.cloud.network.dao.NetworkDao;
|
||||||
import com.cloud.network.dao.NetworkVO;
|
import com.cloud.network.dao.NetworkVO;
|
||||||
|
import com.cloud.network.dao.NsxProviderDao;
|
||||||
import com.cloud.network.dao.PhysicalNetworkDao;
|
import com.cloud.network.dao.PhysicalNetworkDao;
|
||||||
|
import com.cloud.network.element.NsxProviderVO;
|
||||||
import com.cloud.network.router.NetworkHelper;
|
import com.cloud.network.router.NetworkHelper;
|
||||||
import com.cloud.network.rules.FirewallRule;
|
import com.cloud.network.rules.FirewallRule;
|
||||||
import com.cloud.network.rules.FirewallRuleVO;
|
import com.cloud.network.rules.FirewallRuleVO;
|
||||||
|
import com.cloud.network.rules.PortForwardingRuleVO;
|
||||||
|
import com.cloud.network.rules.dao.PortForwardingRulesDao;
|
||||||
import com.cloud.network.security.SecurityGroup;
|
import com.cloud.network.security.SecurityGroup;
|
||||||
import com.cloud.network.security.SecurityGroupManager;
|
import com.cloud.network.security.SecurityGroupManager;
|
||||||
import com.cloud.network.security.SecurityGroupService;
|
import com.cloud.network.security.SecurityGroupService;
|
||||||
@ -214,6 +206,7 @@ import com.cloud.service.ServiceOfferingVO;
|
|||||||
import com.cloud.service.dao.ServiceOfferingDao;
|
import com.cloud.service.dao.ServiceOfferingDao;
|
||||||
import com.cloud.storage.VMTemplateVO;
|
import com.cloud.storage.VMTemplateVO;
|
||||||
import com.cloud.storage.dao.VMTemplateDao;
|
import com.cloud.storage.dao.VMTemplateDao;
|
||||||
|
import com.cloud.template.TemplateApiService;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
import com.cloud.user.AccountManager;
|
import com.cloud.user.AccountManager;
|
||||||
import com.cloud.user.AccountService;
|
import com.cloud.user.AccountService;
|
||||||
@ -221,9 +214,13 @@ import com.cloud.user.AccountVO;
|
|||||||
import com.cloud.user.SSHKeyPairVO;
|
import com.cloud.user.SSHKeyPairVO;
|
||||||
import com.cloud.user.User;
|
import com.cloud.user.User;
|
||||||
import com.cloud.user.UserAccount;
|
import com.cloud.user.UserAccount;
|
||||||
|
import com.cloud.user.UserDataVO;
|
||||||
import com.cloud.user.UserVO;
|
import com.cloud.user.UserVO;
|
||||||
|
import com.cloud.user.dao.AccountDao;
|
||||||
import com.cloud.user.dao.SSHKeyPairDao;
|
import com.cloud.user.dao.SSHKeyPairDao;
|
||||||
import com.cloud.user.dao.UserDao;
|
import com.cloud.user.dao.UserDao;
|
||||||
|
import com.cloud.user.dao.UserDataDao;
|
||||||
|
import com.cloud.uservm.UserVm;
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.Ternary;
|
import com.cloud.utils.Ternary;
|
||||||
import com.cloud.utils.UuidUtils;
|
import com.cloud.utils.UuidUtils;
|
||||||
@ -242,10 +239,12 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
|||||||
import com.cloud.utils.fsm.NoTransitionException;
|
import com.cloud.utils.fsm.NoTransitionException;
|
||||||
import com.cloud.utils.fsm.StateMachine2;
|
import com.cloud.utils.fsm.StateMachine2;
|
||||||
import com.cloud.utils.net.NetUtils;
|
import com.cloud.utils.net.NetUtils;
|
||||||
|
import com.cloud.vm.NicVO;
|
||||||
|
import com.cloud.vm.UserVmService;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import org.apache.logging.log4j.Level;
|
|
||||||
|
|
||||||
public class KubernetesClusterManagerImpl extends ManagerBase implements KubernetesClusterService {
|
public class KubernetesClusterManagerImpl extends ManagerBase implements KubernetesClusterService {
|
||||||
|
|
||||||
@ -328,8 +327,6 @@ public class KubernetesClusterManagerImpl extends ManagerBase implements Kuberne
|
|||||||
@Inject
|
@Inject
|
||||||
protected UserDao userDao;
|
protected UserDao userDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmDetailsDao userVmDetailsDao;
|
|
||||||
@Inject
|
|
||||||
protected VMInstanceDao vmInstanceDao;
|
protected VMInstanceDao vmInstanceDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmJoinDao userVmJoinDao;
|
protected UserVmJoinDao userVmJoinDao;
|
||||||
|
|||||||
@ -122,12 +122,12 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
|||||||
import com.cloud.utils.fsm.NoTransitionException;
|
import com.cloud.utils.fsm.NoTransitionException;
|
||||||
import com.cloud.utils.fsm.StateMachine2;
|
import com.cloud.utils.fsm.StateMachine2;
|
||||||
import com.cloud.utils.ssh.SshHelper;
|
import com.cloud.utils.ssh.SshHelper;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmService;
|
import com.cloud.vm.UserVmService;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VmDetailConstants;
|
import com.cloud.vm.VmDetailConstants;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
|
||||||
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.CONTROL;
|
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.CONTROL;
|
||||||
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.ETCD;
|
import static com.cloud.kubernetes.cluster.KubernetesServiceHelper.KubernetesClusterNodeType.ETCD;
|
||||||
@ -185,7 +185,7 @@ public class KubernetesClusterActionWorker {
|
|||||||
@Inject
|
@Inject
|
||||||
protected UserVmDao userVmDao;
|
protected UserVmDao userVmDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmDetailsDao userVmDetailsDao;
|
protected VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmService userVmService;
|
protected UserVmService userVmService;
|
||||||
@Inject
|
@Inject
|
||||||
@ -281,7 +281,7 @@ public class KubernetesClusterActionWorker {
|
|||||||
if (userVM == null) {
|
if (userVM == null) {
|
||||||
throw new CloudRuntimeException("Failed to find login user, Unable to log in to node to fetch details");
|
throw new CloudRuntimeException("Failed to find login user, Unable to log in to node to fetch details");
|
||||||
}
|
}
|
||||||
UserVmDetailVO vmDetail = userVmDetailsDao.findDetail(vmId, VmDetailConstants.CKS_CONTROL_NODE_LOGIN_USER);
|
VMInstanceDetailVO vmDetail = vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.CKS_CONTROL_NODE_LOGIN_USER);
|
||||||
if (vmDetail != null && !org.apache.commons.lang3.StringUtils.isEmpty(vmDetail.getValue())) {
|
if (vmDetail != null && !org.apache.commons.lang3.StringUtils.isEmpty(vmDetail.getValue())) {
|
||||||
return vmDetail.getValue();
|
return vmDetail.getValue();
|
||||||
} else {
|
} else {
|
||||||
@ -654,7 +654,7 @@ public class KubernetesClusterActionWorker {
|
|||||||
for (Long vmId : clusterVMs) {
|
for (Long vmId : clusterVMs) {
|
||||||
UserVm controlNode = userVmDao.findById(vmId);
|
UserVm controlNode = userVmDao.findById(vmId);
|
||||||
if (controlNode != null) {
|
if (controlNode != null) {
|
||||||
userVmDetailsDao.addDetail(vmId, VmDetailConstants.CKS_CONTROL_NODE_LOGIN_USER, CLUSTER_NODE_VM_USER, true);
|
vmInstanceDetailsDao.addDetail(vmId, VmDetailConstants.CKS_CONTROL_NODE_LOGIN_USER, CLUSTER_NODE_VM_USER, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -296,7 +296,7 @@ import com.cloud.vm.dao.NicSecondaryIpDaoImpl;
|
|||||||
import com.cloud.vm.dao.SecondaryStorageVmDaoImpl;
|
import com.cloud.vm.dao.SecondaryStorageVmDaoImpl;
|
||||||
import com.cloud.vm.dao.UserVmCloneSettingDaoImpl;
|
import com.cloud.vm.dao.UserVmCloneSettingDaoImpl;
|
||||||
import com.cloud.vm.dao.UserVmDaoImpl;
|
import com.cloud.vm.dao.UserVmDaoImpl;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDaoImpl;
|
import com.cloud.vm.dao.VMInstanceDetailsDaoImpl;
|
||||||
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotManager;
|
import com.cloud.vm.snapshot.VMSnapshotManager;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
|
||||||
@ -331,7 +331,7 @@ import com.cloud.vm.snapshot.dao.VMSnapshotDaoImpl;
|
|||||||
SnapshotDaoImpl.class, SnapshotPolicyDaoImpl.class, StaticRouteDaoImpl.class, StatsCollector.class, StoragePoolDetailsDaoImpl.class, StoragePoolHostDaoImpl.class,
|
SnapshotDaoImpl.class, SnapshotPolicyDaoImpl.class, StaticRouteDaoImpl.class, StatsCollector.class, StoragePoolDetailsDaoImpl.class, StoragePoolHostDaoImpl.class,
|
||||||
StoragePoolJoinDaoImpl.class, SyncQueueItemDaoImpl.class, TemplateDataStoreDaoImpl.class, TemplateJoinDaoImpl.class, UploadDaoImpl.class, UsageEventDaoImpl.class,
|
StoragePoolJoinDaoImpl.class, SyncQueueItemDaoImpl.class, TemplateDataStoreDaoImpl.class, TemplateJoinDaoImpl.class, UploadDaoImpl.class, UsageEventDaoImpl.class,
|
||||||
UserAccountJoinDaoImpl.class, UserDaoImpl.class, UserIpv6AddressDaoImpl.class, UserStatisticsDaoImpl.class, UserStatsLogDaoImpl.class,
|
UserAccountJoinDaoImpl.class, UserDaoImpl.class, UserIpv6AddressDaoImpl.class, UserStatisticsDaoImpl.class, UserStatsLogDaoImpl.class,
|
||||||
UserVmCloneSettingDaoImpl.class, UserVmDaoImpl.class, UserVmDetailsDaoImpl.class, UserVmJoinDaoImpl.class, UserVmManagerImpl.class, VMInstanceDaoImpl.class, VMSnapshotDaoImpl.class,
|
UserVmCloneSettingDaoImpl.class, UserVmDaoImpl.class, VMInstanceDetailsDaoImpl.class, UserVmJoinDaoImpl.class, UserVmManagerImpl.class, VMInstanceDaoImpl.class, VMSnapshotDaoImpl.class,
|
||||||
VMTemplateDaoImpl.class, VMTemplateDetailsDaoImpl.class, VMTemplateZoneDaoImpl.class, VirtualMachineManagerImpl.class, VirtualRouterProviderDaoImpl.class,
|
VMTemplateDaoImpl.class, VMTemplateDetailsDaoImpl.class, VMTemplateZoneDaoImpl.class, VirtualMachineManagerImpl.class, VirtualRouterProviderDaoImpl.class,
|
||||||
VlanDaoImpl.class, VmDiskStatisticsDaoImpl.class, VmRulesetLogDaoImpl.class, VolumeDaoImpl.class, VolumeJoinDaoImpl.class, VpcDaoImpl.class,
|
VlanDaoImpl.class, VmDiskStatisticsDaoImpl.class, VmRulesetLogDaoImpl.class, VolumeDaoImpl.class, VolumeJoinDaoImpl.class, VpcDaoImpl.class,
|
||||||
VpcGatewayDaoImpl.class, VpcManagerImpl.class, VpcOfferingDaoImpl.class, VpcOfferingServiceMapDaoImpl.class, VpcServiceMapDaoImpl.class,
|
VpcGatewayDaoImpl.class, VpcManagerImpl.class, VpcOfferingDaoImpl.class, VpcOfferingServiceMapDaoImpl.class, VpcServiceMapDaoImpl.class,
|
||||||
|
|||||||
@ -61,10 +61,10 @@ import com.cloud.storage.dao.GuestOSDao;
|
|||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.component.AdapterBase;
|
import com.cloud.utils.component.AdapterBase;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
@ -103,7 +103,7 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
|
|||||||
@Inject
|
@Inject
|
||||||
CapacityDao _capacityDao;
|
CapacityDao _capacityDao;
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao _userVmDetailsDao;
|
VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||||
|
|
||||||
boolean _checkHvm = true;
|
boolean _checkHvm = true;
|
||||||
static DecimalFormat decimalFormat = new DecimalFormat("#.##");
|
static DecimalFormat decimalFormat = new DecimalFormat("#.##");
|
||||||
@ -124,9 +124,9 @@ public class FirstFitAllocator extends AdapterBase implements HostAllocator {
|
|||||||
Account account = vmProfile.getOwner();
|
Account account = vmProfile.getOwner();
|
||||||
|
|
||||||
boolean isVMDeployedWithUefi = false;
|
boolean isVMDeployedWithUefi = false;
|
||||||
UserVmDetailVO userVmDetailVO = _userVmDetailsDao.findDetail(vmProfile.getId(), "UEFI");
|
VMInstanceDetailVO vmInstanceDetailVO = _vmInstanceDetailsDao.findDetail(vmProfile.getId(), "UEFI");
|
||||||
if(userVmDetailVO != null){
|
if(vmInstanceDetailVO != null){
|
||||||
if ("secure".equalsIgnoreCase(userVmDetailVO.getValue()) || "legacy".equalsIgnoreCase(userVmDetailVO.getValue())) {
|
if ("secure".equalsIgnoreCase(vmInstanceDetailVO.getValue()) || "legacy".equalsIgnoreCase(vmInstanceDetailVO.getValue())) {
|
||||||
isVMDeployedWithUefi = true;
|
isVMDeployedWithUefi = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -343,7 +343,7 @@ import com.cloud.vm.InstanceGroup;
|
|||||||
import com.cloud.vm.InstanceGroupVO;
|
import com.cloud.vm.InstanceGroupVO;
|
||||||
import com.cloud.vm.NicProfile;
|
import com.cloud.vm.NicProfile;
|
||||||
import com.cloud.vm.NicVO;
|
import com.cloud.vm.NicVO;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmManager;
|
import com.cloud.vm.UserVmManager;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
@ -357,7 +357,7 @@ import com.cloud.vm.dao.NicDao;
|
|||||||
import com.cloud.vm.dao.NicSecondaryIpDao;
|
import com.cloud.vm.dao.NicSecondaryIpDao;
|
||||||
import com.cloud.vm.dao.NicSecondaryIpVO;
|
import com.cloud.vm.dao.NicSecondaryIpVO;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.vm.snapshot.VMSnapshot;
|
import com.cloud.vm.snapshot.VMSnapshot;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||||
@ -434,7 +434,7 @@ public class ApiDBUtils {
|
|||||||
static HighAvailabilityManager s_haMgr;
|
static HighAvailabilityManager s_haMgr;
|
||||||
static VpcManager s_vpcMgr;
|
static VpcManager s_vpcMgr;
|
||||||
static TaggedResourceService s_taggedResourceService;
|
static TaggedResourceService s_taggedResourceService;
|
||||||
static UserVmDetailsDao s_userVmDetailsDao;
|
static VMInstanceDetailsDao s_vmInstanceDetailsDao;
|
||||||
static SSHKeyPairDao s_sshKeyPairDao;
|
static SSHKeyPairDao s_sshKeyPairDao;
|
||||||
|
|
||||||
static ConditionDao s_asConditionDao;
|
static ConditionDao s_asConditionDao;
|
||||||
@ -639,7 +639,7 @@ public class ApiDBUtils {
|
|||||||
@Inject
|
@Inject
|
||||||
private TaggedResourceService taggedResourceService;
|
private TaggedResourceService taggedResourceService;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private SSHKeyPairDao sshKeyPairDao;
|
private SSHKeyPairDao sshKeyPairDao;
|
||||||
|
|
||||||
@ -839,7 +839,7 @@ public class ApiDBUtils {
|
|||||||
s_vpcMgr = vpcMgr;
|
s_vpcMgr = vpcMgr;
|
||||||
s_taggedResourceService = taggedResourceService;
|
s_taggedResourceService = taggedResourceService;
|
||||||
s_sshKeyPairDao = sshKeyPairDao;
|
s_sshKeyPairDao = sshKeyPairDao;
|
||||||
s_userVmDetailsDao = userVmDetailsDao;
|
s_vmInstanceDetailsDao = vmInstanceDetailsDao;
|
||||||
s_asConditionDao = asConditionDao;
|
s_asConditionDao = asConditionDao;
|
||||||
s_asPolicyDao = asPolicyDao;
|
s_asPolicyDao = asPolicyDao;
|
||||||
s_asPolicyConditionMapDao = asPolicyConditionMapDao;
|
s_asPolicyConditionMapDao = asPolicyConditionMapDao;
|
||||||
@ -1621,8 +1621,8 @@ public class ApiDBUtils {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static UserVmDetailVO findPublicKeyByVmId(long vmId) {
|
public static VMInstanceDetailVO findPublicKeyByVmId(long vmId) {
|
||||||
return s_userVmDetailsDao.findDetail(vmId, VmDetailConstants.SSH_PUBLIC_KEY);
|
return s_vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.SSH_PUBLIC_KEY);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void getAutoScaleVmGroupPolicies(long vmGroupId, List<AutoScalePolicy> scaleUpPolicies, List<AutoScalePolicy> scaleDownPolicies) {
|
public static void getAutoScaleVmGroupPolicies(long vmGroupId, List<AutoScalePolicy> scaleUpPolicies, List<AutoScalePolicy> scaleDownPolicies) {
|
||||||
|
|||||||
@ -36,12 +36,6 @@ import java.util.stream.Stream;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import com.cloud.dc.Pod;
|
|
||||||
import com.cloud.dc.dao.DataCenterDao;
|
|
||||||
import com.cloud.dc.dao.HostPodDao;
|
|
||||||
import com.cloud.org.Cluster;
|
|
||||||
import com.cloud.server.ManagementService;
|
|
||||||
import com.cloud.storage.dao.StoragePoolAndAccessGroupMapDao;
|
|
||||||
import org.apache.cloudstack.acl.ControlledEntity;
|
import org.apache.cloudstack.acl.ControlledEntity;
|
||||||
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
||||||
import org.apache.cloudstack.acl.SecurityChecker;
|
import org.apache.cloudstack.acl.SecurityChecker;
|
||||||
@ -237,8 +231,11 @@ import com.cloud.cpu.CPU;
|
|||||||
import com.cloud.dc.ClusterVO;
|
import com.cloud.dc.ClusterVO;
|
||||||
import com.cloud.dc.DataCenter;
|
import com.cloud.dc.DataCenter;
|
||||||
import com.cloud.dc.DedicatedResourceVO;
|
import com.cloud.dc.DedicatedResourceVO;
|
||||||
|
import com.cloud.dc.Pod;
|
||||||
import com.cloud.dc.dao.ClusterDao;
|
import com.cloud.dc.dao.ClusterDao;
|
||||||
|
import com.cloud.dc.dao.DataCenterDao;
|
||||||
import com.cloud.dc.dao.DedicatedResourceDao;
|
import com.cloud.dc.dao.DedicatedResourceDao;
|
||||||
|
import com.cloud.dc.dao.HostPodDao;
|
||||||
import com.cloud.domain.Domain;
|
import com.cloud.domain.Domain;
|
||||||
import com.cloud.domain.DomainVO;
|
import com.cloud.domain.DomainVO;
|
||||||
import com.cloud.domain.dao.DomainDao;
|
import com.cloud.domain.dao.DomainDao;
|
||||||
@ -276,6 +273,7 @@ import com.cloud.network.security.dao.SecurityGroupVMMapDao;
|
|||||||
import com.cloud.network.vo.PublicIpQuarantineVO;
|
import com.cloud.network.vo.PublicIpQuarantineVO;
|
||||||
import com.cloud.offering.DiskOffering;
|
import com.cloud.offering.DiskOffering;
|
||||||
import com.cloud.offering.ServiceOffering;
|
import com.cloud.offering.ServiceOffering;
|
||||||
|
import com.cloud.org.Cluster;
|
||||||
import com.cloud.org.Grouping;
|
import com.cloud.org.Grouping;
|
||||||
import com.cloud.projects.Project;
|
import com.cloud.projects.Project;
|
||||||
import com.cloud.projects.Project.ListProjectResourcesCriteria;
|
import com.cloud.projects.Project.ListProjectResourcesCriteria;
|
||||||
@ -287,6 +285,7 @@ import com.cloud.projects.dao.ProjectDao;
|
|||||||
import com.cloud.projects.dao.ProjectInvitationDao;
|
import com.cloud.projects.dao.ProjectInvitationDao;
|
||||||
import com.cloud.resource.ResourceManager;
|
import com.cloud.resource.ResourceManager;
|
||||||
import com.cloud.resource.icon.dao.ResourceIconDao;
|
import com.cloud.resource.icon.dao.ResourceIconDao;
|
||||||
|
import com.cloud.server.ManagementService;
|
||||||
import com.cloud.server.ResourceManagerUtil;
|
import com.cloud.server.ResourceManagerUtil;
|
||||||
import com.cloud.server.ResourceMetaDataService;
|
import com.cloud.server.ResourceMetaDataService;
|
||||||
import com.cloud.server.ResourceTag;
|
import com.cloud.server.ResourceTag;
|
||||||
@ -317,6 +316,7 @@ import com.cloud.storage.VolumeVO;
|
|||||||
import com.cloud.storage.dao.BucketDao;
|
import com.cloud.storage.dao.BucketDao;
|
||||||
import com.cloud.storage.dao.DiskOfferingDao;
|
import com.cloud.storage.dao.DiskOfferingDao;
|
||||||
import com.cloud.storage.dao.GuestOSDao;
|
import com.cloud.storage.dao.GuestOSDao;
|
||||||
|
import com.cloud.storage.dao.StoragePoolAndAccessGroupMapDao;
|
||||||
import com.cloud.storage.dao.StoragePoolHostDao;
|
import com.cloud.storage.dao.StoragePoolHostDao;
|
||||||
import com.cloud.storage.dao.StoragePoolTagsDao;
|
import com.cloud.storage.dao.StoragePoolTagsDao;
|
||||||
import com.cloud.storage.dao.VMTemplateDao;
|
import com.cloud.storage.dao.VMTemplateDao;
|
||||||
@ -351,8 +351,8 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
|||||||
import com.cloud.vm.DomainRouterVO;
|
import com.cloud.vm.DomainRouterVO;
|
||||||
import com.cloud.vm.InstanceGroupVMMapVO;
|
import com.cloud.vm.InstanceGroupVMMapVO;
|
||||||
import com.cloud.vm.NicVO;
|
import com.cloud.vm.NicVO;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineManager;
|
import com.cloud.vm.VirtualMachineManager;
|
||||||
@ -361,8 +361,8 @@ import com.cloud.vm.dao.DomainRouterDao;
|
|||||||
import com.cloud.vm.dao.InstanceGroupVMMapDao;
|
import com.cloud.vm.dao.InstanceGroupVMMapDao;
|
||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements QueryService, Configurable {
|
public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements QueryService, Configurable {
|
||||||
@ -591,7 +591,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
|||||||
AffinityGroupVMMapDao affinityGroupVMMapDao;
|
AffinityGroupVMMapDao affinityGroupVMMapDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao userVmDetailsDao;
|
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
SSHKeyPairDao sshKeyPairDao;
|
SSHKeyPairDao sshKeyPairDao;
|
||||||
@ -1519,7 +1519,7 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (cmd.getOnlyLeasedInstances()) {
|
if (cmd.getOnlyLeasedInstances()) {
|
||||||
SearchBuilder<UserVmDetailVO> leasedInstancesSearch = userVmDetailsDao.createSearchBuilder();
|
SearchBuilder<VMInstanceDetailVO> leasedInstancesSearch = vmInstanceDetailsDao.createSearchBuilder();
|
||||||
leasedInstancesSearch.and(leasedInstancesSearch.entity().getName(), SearchCriteria.Op.EQ).values(VmDetailConstants.INSTANCE_LEASE_EXECUTION);
|
leasedInstancesSearch.and(leasedInstancesSearch.entity().getName(), SearchCriteria.Op.EQ).values(VmDetailConstants.INSTANCE_LEASE_EXECUTION);
|
||||||
leasedInstancesSearch.and(leasedInstancesSearch.entity().getValue(), SearchCriteria.Op.EQ).values(VMLeaseManager.LeaseActionExecution.PENDING.name());
|
leasedInstancesSearch.and(leasedInstancesSearch.entity().getValue(), SearchCriteria.Op.EQ).values(VMLeaseManager.LeaseActionExecution.PENDING.name());
|
||||||
userVmSearchBuilder.join("userVmToLeased", leasedInstancesSearch, leasedInstancesSearch.entity().getResourceId(),
|
userVmSearchBuilder.join("userVmToLeased", leasedInstancesSearch, leasedInstancesSearch.entity().getResourceId(),
|
||||||
@ -1527,8 +1527,8 @@ public class QueryManagerImpl extends MutualExclusiveIdsManagerBase implements Q
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (keyPairName != null) {
|
if (keyPairName != null) {
|
||||||
SearchBuilder<UserVmDetailVO> vmDetailSearchKeys = userVmDetailsDao.createSearchBuilder();
|
SearchBuilder<VMInstanceDetailVO> vmDetailSearchKeys = vmInstanceDetailsDao.createSearchBuilder();
|
||||||
SearchBuilder<UserVmDetailVO> vmDetailSearchVmIds = userVmDetailsDao.createSearchBuilder();
|
SearchBuilder<VMInstanceDetailVO> vmDetailSearchVmIds = vmInstanceDetailsDao.createSearchBuilder();
|
||||||
vmDetailSearchKeys.and(vmDetailSearchKeys.entity().getName(), Op.EQ).values(SSH_PUBLIC_KEY);
|
vmDetailSearchKeys.and(vmDetailSearchKeys.entity().getName(), Op.EQ).values(SSH_PUBLIC_KEY);
|
||||||
|
|
||||||
SearchBuilder<SSHKeyPairVO> sshKeyPairSearch = sshKeyPairDao.createSearchBuilder();
|
SearchBuilder<SSHKeyPairVO> sshKeyPairSearch = sshKeyPairDao.createSearchBuilder();
|
||||||
|
|||||||
@ -16,6 +16,44 @@
|
|||||||
// under the License.
|
// under the License.
|
||||||
package com.cloud.api.query.dao;
|
package com.cloud.api.query.dao;
|
||||||
|
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZoneId;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Hashtable;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import org.apache.cloudstack.affinity.AffinityGroupResponse;
|
||||||
|
import org.apache.cloudstack.annotation.AnnotationService;
|
||||||
|
import org.apache.cloudstack.annotation.dao.AnnotationDao;
|
||||||
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
|
import org.apache.cloudstack.api.ApiConstants.VMDetails;
|
||||||
|
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
||||||
|
import org.apache.cloudstack.api.response.NicExtraDhcpOptionResponse;
|
||||||
|
import org.apache.cloudstack.api.response.NicResponse;
|
||||||
|
import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
|
||||||
|
import org.apache.cloudstack.api.response.SecurityGroupResponse;
|
||||||
|
import org.apache.cloudstack.api.response.UserVmResponse;
|
||||||
|
import org.apache.cloudstack.api.response.VnfNicResponse;
|
||||||
|
import org.apache.cloudstack.context.CallContext;
|
||||||
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
|
import org.apache.cloudstack.query.QueryService;
|
||||||
|
import org.apache.cloudstack.vm.lease.VMLeaseManager;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import com.cloud.api.ApiDBUtils;
|
import com.cloud.api.ApiDBUtils;
|
||||||
import com.cloud.api.ApiResponseHelper;
|
import com.cloud.api.ApiResponseHelper;
|
||||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||||
@ -44,50 +82,14 @@ import com.cloud.utils.db.SearchBuilder;
|
|||||||
import com.cloud.utils.db.SearchCriteria;
|
import com.cloud.utils.db.SearchCriteria;
|
||||||
import com.cloud.utils.db.SearchCriteria.Op;
|
import com.cloud.utils.db.SearchCriteria.Op;
|
||||||
import com.cloud.utils.net.Dhcp;
|
import com.cloud.utils.net.Dhcp;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
|
||||||
import com.cloud.vm.UserVmManager;
|
import com.cloud.vm.UserVmManager;
|
||||||
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachine.State;
|
import com.cloud.vm.VirtualMachine.State;
|
||||||
import com.cloud.vm.VmStats;
|
import com.cloud.vm.VmStats;
|
||||||
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
||||||
import com.cloud.vm.dao.NicSecondaryIpVO;
|
import com.cloud.vm.dao.NicSecondaryIpVO;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import org.apache.cloudstack.affinity.AffinityGroupResponse;
|
|
||||||
import org.apache.cloudstack.annotation.AnnotationService;
|
|
||||||
import org.apache.cloudstack.annotation.dao.AnnotationDao;
|
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
|
||||||
import org.apache.cloudstack.api.ApiConstants.VMDetails;
|
|
||||||
import org.apache.cloudstack.api.ResponseObject.ResponseView;
|
|
||||||
import org.apache.cloudstack.api.response.NicExtraDhcpOptionResponse;
|
|
||||||
import org.apache.cloudstack.api.response.NicResponse;
|
|
||||||
import org.apache.cloudstack.api.response.NicSecondaryIpResponse;
|
|
||||||
import org.apache.cloudstack.api.response.SecurityGroupResponse;
|
|
||||||
import org.apache.cloudstack.api.response.UserVmResponse;
|
|
||||||
import org.apache.cloudstack.api.response.VnfNicResponse;
|
|
||||||
import org.apache.cloudstack.context.CallContext;
|
|
||||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
|
||||||
import org.apache.cloudstack.query.QueryService;
|
|
||||||
import org.apache.cloudstack.vm.lease.VMLeaseManager;
|
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
|
||||||
import org.apache.commons.lang3.BooleanUtils;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import java.text.DecimalFormat;
|
|
||||||
import java.time.LocalDate;
|
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.time.temporal.ChronoUnit;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Hashtable;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJoinVO, UserVmResponse> implements UserVmJoinDao {
|
public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJoinVO, UserVmResponse> implements UserVmJoinDao {
|
||||||
@ -97,7 +99,7 @@ public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJo
|
|||||||
@Inject
|
@Inject
|
||||||
public AccountManager _accountMgr;
|
public AccountManager _accountMgr;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao _userVmDetailsDao;
|
private VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private UserDao _userDao;
|
private UserDao _userDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -415,17 +417,17 @@ public class UserVmJoinDaoImpl extends GenericDaoBaseWithTagInformation<UserVmJo
|
|||||||
// set resource details map
|
// set resource details map
|
||||||
// Allow passing details to end user
|
// Allow passing details to end user
|
||||||
// Honour the display field and only return if display is set to true
|
// Honour the display field and only return if display is set to true
|
||||||
List<UserVmDetailVO> vmDetails = _userVmDetailsDao.listDetails(userVm.getId(), true);
|
List<VMInstanceDetailVO> vmDetails = _vmInstanceDetailsDao.listDetails(userVm.getId(), true);
|
||||||
if (vmDetails != null) {
|
if (vmDetails != null) {
|
||||||
Map<String, String> resourceDetails = new HashMap<String, String>();
|
Map<String, String> resourceDetails = new HashMap<String, String>();
|
||||||
for (UserVmDetailVO userVmDetailVO : vmDetails) {
|
for (VMInstanceDetailVO vmInstanceDetailVO : vmDetails) {
|
||||||
if (!userVmDetailVO.getName().startsWith(ApiConstants.PROPERTIES) ||
|
if (!vmInstanceDetailVO.getName().startsWith(ApiConstants.PROPERTIES) ||
|
||||||
(UserVmManager.DisplayVMOVFProperties.value() && userVmDetailVO.getName().startsWith(ApiConstants.PROPERTIES))) {
|
(UserVmManager.DisplayVMOVFProperties.value() && vmInstanceDetailVO.getName().startsWith(ApiConstants.PROPERTIES))) {
|
||||||
resourceDetails.put(userVmDetailVO.getName(), userVmDetailVO.getValue());
|
resourceDetails.put(vmInstanceDetailVO.getName(), vmInstanceDetailVO.getValue());
|
||||||
}
|
}
|
||||||
if ((ApiConstants.BootType.UEFI.toString()).equalsIgnoreCase(userVmDetailVO.getName())) {
|
if ((ApiConstants.BootType.UEFI.toString()).equalsIgnoreCase(vmInstanceDetailVO.getName())) {
|
||||||
userVmResponse.setBootType("Uefi");
|
userVmResponse.setBootType("Uefi");
|
||||||
userVmResponse.setBootMode(userVmDetailVO.getValue().toLowerCase());
|
userVmResponse.setBootMode(vmInstanceDetailVO.getValue().toLowerCase());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -89,7 +89,7 @@ import com.cloud.utils.db.TransactionStatus;
|
|||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.utils.fsm.StateListener;
|
import com.cloud.utils.fsm.StateListener;
|
||||||
import com.cloud.utils.fsm.StateMachine2;
|
import com.cloud.utils.fsm.StateMachine2;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
@ -97,7 +97,7 @@ import com.cloud.vm.VirtualMachine.Event;
|
|||||||
import com.cloud.vm.VirtualMachine.State;
|
import com.cloud.vm.VirtualMachine.State;
|
||||||
import com.cloud.vm.VmDetailConstants;
|
import com.cloud.vm.VmDetailConstants;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||||||
@Inject
|
@Inject
|
||||||
protected UserVmDao _userVMDao;
|
protected UserVmDao _userVMDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmDetailsDao _userVmDetailsDao;
|
protected VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
ClusterDao _clusterDao;
|
ClusterDao _clusterDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -660,7 +660,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected Map<String, String> getVmDetailsForCapacityCalculation(long vmId) {
|
protected Map<String, String> getVmDetailsForCapacityCalculation(long vmId) {
|
||||||
return _userVmDetailsDao.listDetailsKeyPairs(vmId,
|
return _vmInstanceDetailsDao.listDetailsKeyPairs(vmId,
|
||||||
List.of(VmDetailConstants.CPU_OVER_COMMIT_RATIO,
|
List.of(VmDetailConstants.CPU_OVER_COMMIT_RATIO,
|
||||||
VmDetailConstants.MEMORY_OVER_COMMIT_RATIO,
|
VmDetailConstants.MEMORY_OVER_COMMIT_RATIO,
|
||||||
UsageEventVO.DynamicParameters.memory.name(),
|
UsageEventVO.DynamicParameters.memory.name(),
|
||||||
@ -769,7 +769,7 @@ public class CapacityManagerImpl extends ManagerBase implements CapacityManager,
|
|||||||
} else {
|
} else {
|
||||||
// signal if not done already, that the VM has been stopped for skip.counting.hours,
|
// signal if not done already, that the VM has been stopped for skip.counting.hours,
|
||||||
// hence capacity will not be reserved anymore.
|
// hence capacity will not be reserved anymore.
|
||||||
UserVmDetailVO messageSentFlag = _userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.MESSAGE_RESERVED_CAPACITY_FREED_FLAG);
|
VMInstanceDetailVO messageSentFlag = _vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.MESSAGE_RESERVED_CAPACITY_FREED_FLAG);
|
||||||
if (messageSentFlag == null || !Boolean.valueOf(messageSentFlag.getValue())) {
|
if (messageSentFlag == null || !Boolean.valueOf(messageSentFlag.getValue())) {
|
||||||
_messageBus.publish(_name, "VM_ReservedCapacity_Free", PublishScope.LOCAL, vm);
|
_messageBus.publish(_name, "VM_ReservedCapacity_Free", PublishScope.LOCAL, vm);
|
||||||
|
|
||||||
|
|||||||
@ -146,7 +146,7 @@ import com.cloud.vm.VirtualMachineManager;
|
|||||||
import com.cloud.vm.VirtualMachineName;
|
import com.cloud.vm.VirtualMachineName;
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.dao.ConsoleProxyDao;
|
import com.cloud.vm.dao.ConsoleProxyDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
@ -208,7 +208,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
|
|||||||
@Inject
|
@Inject
|
||||||
private PrimaryDataStoreDao primaryDataStoreDao;
|
private PrimaryDataStoreDao primaryDataStoreDao;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private ResourceManager resourceManager;
|
private ResourceManager resourceManager;
|
||||||
@Inject
|
@Inject
|
||||||
@ -1244,7 +1244,7 @@ public class ConsoleProxyManagerImpl extends ManagerBase implements ConsoleProxy
|
|||||||
final Certificate certificate = caManager.issueCertificate(null, Arrays.asList(profile.getHostName(), profile.getInstanceName()),
|
final Certificate certificate = caManager.issueCertificate(null, Arrays.asList(profile.getHostName(), profile.getInstanceName()),
|
||||||
new ArrayList<>(ipAddressDetails.values()), CAManager.CertValidityPeriod.value(), null);
|
new ArrayList<>(ipAddressDetails.values()), CAManager.CertValidityPeriod.value(), null);
|
||||||
ConsoleProxyVO vm = consoleProxyDao.findById(profile.getId());
|
ConsoleProxyVO vm = consoleProxyDao.findById(profile.getId());
|
||||||
Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vm.getId());
|
Map<String, String> details = vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
|
||||||
vm.setDetails(details);
|
vm.setDetails(details);
|
||||||
|
|
||||||
StringBuilder buf = profile.getBootArgsBuilder();
|
StringBuilder buf = profile.getBootArgsBuilder();
|
||||||
|
|||||||
@ -72,7 +72,7 @@ import com.cloud.utils.component.AdapterBase;
|
|||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.host.dao.HostDetailsDao;
|
import com.cloud.host.dao.HostDetailsDao;
|
||||||
|
|
||||||
@ -98,7 +98,7 @@ public class FirstFitPlanner extends AdapterBase implements DeploymentClusterPla
|
|||||||
@Inject
|
@Inject
|
||||||
protected UserVmDao vmDao;
|
protected UserVmDao vmDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmDetailsDao vmDetailsDao;
|
protected VMInstanceDetailsDao vmDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected VMInstanceDao vmInstanceDao;
|
protected VMInstanceDao vmInstanceDao;
|
||||||
@Inject
|
@Inject
|
||||||
|
|||||||
@ -77,7 +77,7 @@ import com.cloud.vm.VirtualMachine;
|
|||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.NicSecondaryIpDao;
|
import com.cloud.vm.dao.NicSecondaryIpDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
public abstract class HypervisorGuruBase extends AdapterBase implements HypervisorGuru, Configurable {
|
public abstract class HypervisorGuruBase extends AdapterBase implements HypervisorGuru, Configurable {
|
||||||
@ -102,7 +102,7 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis
|
|||||||
protected
|
protected
|
||||||
VMInstanceDao virtualMachineDao;
|
VMInstanceDao virtualMachineDao;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao _userVmDetailsDao;
|
private VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private NicSecondaryIpDao _nicSecIpDao;
|
private NicSecondaryIpDao _nicSecIpDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -315,7 +315,7 @@ public abstract class HypervisorGuruBase extends AdapterBase implements Hypervis
|
|||||||
to.setArch("x86_64");
|
to.setArch("x86_64");
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, String> detailsInVm = _userVmDetailsDao.listDetailsKeyPairs(vm.getId());
|
Map<String, String> detailsInVm = _vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
|
||||||
if (detailsInVm != null) {
|
if (detailsInVm != null) {
|
||||||
to.setDetails(detailsInVm);
|
to.setDetails(detailsInVm);
|
||||||
addExtraConfig(detailsInVm, to, vm.getAccountId(), vm.getHypervisorType());
|
addExtraConfig(detailsInVm, to, vm.getAccountId(), vm.getHypervisorType());
|
||||||
|
|||||||
@ -23,12 +23,13 @@ import com.cloud.offering.ServiceOffering;
|
|||||||
import com.cloud.service.ServiceOfferingDetailsVO;
|
import com.cloud.service.ServiceOfferingDetailsVO;
|
||||||
import com.cloud.service.dao.ServiceOfferingDetailsDao;
|
import com.cloud.service.dao.ServiceOfferingDetailsDao;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
@ -46,7 +47,7 @@ public class DpdkHelperImpl implements DpdkHelper {
|
|||||||
@Inject
|
@Inject
|
||||||
private VMInstanceDao vmInstanceDao;
|
private VMInstanceDao vmInstanceDao;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
|
|
||||||
protected Logger logger = LogManager.getLogger(getClass());
|
protected Logger logger = LogManager.getLogger(getClass());
|
||||||
|
|
||||||
@ -93,7 +94,7 @@ public class DpdkHelperImpl implements DpdkHelper {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<UserVmDetailVO> details = userVmDetailsDao.listDetails(vm.getId());
|
List<VMInstanceDetailVO> details = vmInstanceDetailsDao.listDetails(vm.getId());
|
||||||
List<ServiceOfferingDetailsVO> offeringDetails = serviceOfferingDetailsDao.listDetails(vm.getServiceOfferingId());
|
List<ServiceOfferingDetailsVO> offeringDetails = serviceOfferingDetailsDao.listDetails(vm.getServiceOfferingId());
|
||||||
|
|
||||||
if (!hasRequiredDPDKConfigurations(details, offeringDetails)) {
|
if (!hasRequiredDPDKConfigurations(details, offeringDetails)) {
|
||||||
@ -106,13 +107,13 @@ public class DpdkHelperImpl implements DpdkHelper {
|
|||||||
/**
|
/**
|
||||||
* True if VM is DPDK enabled. NUMA and HUGEPAGES configurations must be present on VM or service offering details
|
* True if VM is DPDK enabled. NUMA and HUGEPAGES configurations must be present on VM or service offering details
|
||||||
*/
|
*/
|
||||||
private boolean hasRequiredDPDKConfigurations(List<UserVmDetailVO> details, List<ServiceOfferingDetailsVO> offeringDetails) {
|
private boolean hasRequiredDPDKConfigurations(List<VMInstanceDetailVO> details, List<ServiceOfferingDetailsVO> offeringDetails) {
|
||||||
if (CollectionUtils.isEmpty(details)) {
|
if (CollectionUtils.isEmpty(details)) {
|
||||||
return hasValidDPDKConfigurationsOnServiceOffering(false, false, offeringDetails);
|
return hasValidDPDKConfigurationsOnServiceOffering(false, false, offeringDetails);
|
||||||
} else {
|
} else {
|
||||||
boolean isNumaSet = false;
|
boolean isNumaSet = false;
|
||||||
boolean isHugePagesSet = false;
|
boolean isHugePagesSet = false;
|
||||||
for (UserVmDetailVO detail : details) {
|
for (VMInstanceDetailVO detail : details) {
|
||||||
if (detail.getName().equals(DPDK_NUMA)) {
|
if (detail.getName().equals(DPDK_NUMA)) {
|
||||||
isNumaSet = true;
|
isNumaSet = true;
|
||||||
} else if (detail.getName().equals(DPDK_HUGE_PAGES)) {
|
} else if (detail.getName().equals(DPDK_HUGE_PAGES)) {
|
||||||
|
|||||||
@ -66,7 +66,7 @@ import com.cloud.utils.db.Transaction;
|
|||||||
import com.cloud.utils.db.TransactionCallback;
|
import com.cloud.utils.db.TransactionCallback;
|
||||||
import com.cloud.utils.db.TransactionStatus;
|
import com.cloud.utils.db.TransactionStatus;
|
||||||
import com.cloud.vm.dao.NicDetailsDao;
|
import com.cloud.vm.dao.NicDetailsDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class ResourceMetaDataManagerImpl extends ManagerBase implements ResourceMetaDataService, ResourceMetaDataManager {
|
public class ResourceMetaDataManagerImpl extends ManagerBase implements ResourceMetaDataService, ResourceMetaDataManager {
|
||||||
@ -75,7 +75,7 @@ public class ResourceMetaDataManagerImpl extends ManagerBase implements Resource
|
|||||||
@Inject
|
@Inject
|
||||||
NicDetailsDao _nicDetailDao;
|
NicDetailsDao _nicDetailDao;
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao _userVmDetailDao;
|
VMInstanceDetailsDao _userVmDetailDao;
|
||||||
@Inject
|
@Inject
|
||||||
DataCenterDetailsDao _dcDetailsDao;
|
DataCenterDetailsDao _dcDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
|
|||||||
@ -84,14 +84,14 @@ import com.cloud.utils.fsm.StateMachine2;
|
|||||||
import com.cloud.vm.Nic;
|
import com.cloud.vm.Nic;
|
||||||
import com.cloud.vm.NicProfile;
|
import com.cloud.vm.NicProfile;
|
||||||
import com.cloud.vm.ReservationContext;
|
import com.cloud.vm.ReservationContext;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineManager;
|
import com.cloud.vm.VirtualMachineManager;
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.VmDetailConstants;
|
import com.cloud.vm.VmDetailConstants;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
|
||||||
public class ConfigDriveNetworkElement extends AdapterBase implements NetworkElement,
|
public class ConfigDriveNetworkElement extends AdapterBase implements NetworkElement,
|
||||||
UserDataServiceProvider, DhcpServiceProvider, DnsServiceProvider,
|
UserDataServiceProvider, DhcpServiceProvider, DnsServiceProvider,
|
||||||
@ -104,7 +104,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
|||||||
@Inject
|
@Inject
|
||||||
UserVmDao _userVmDao;
|
UserVmDao _userVmDao;
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao _userVmDetailsDao;
|
VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
ConfigurationManager _configMgr;
|
ConfigurationManager _configMgr;
|
||||||
@Inject
|
@Inject
|
||||||
@ -224,7 +224,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getSshKey(VirtualMachineProfile profile) {
|
private String getSshKey(VirtualMachineProfile profile) {
|
||||||
final UserVmDetailVO vmDetailSshKey = _userVmDetailsDao.findDetail(profile.getId(), VmDetailConstants.SSH_PUBLIC_KEY);
|
final VMInstanceDetailVO vmDetailSshKey = _vmInstanceDetailsDao.findDetail(profile.getId(), VmDetailConstants.SSH_PUBLIC_KEY);
|
||||||
return (vmDetailSshKey!=null ? vmDetailSshKey.getValue() : null);
|
return (vmDetailSshKey!=null ? vmDetailSshKey.getValue() : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -299,7 +299,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
|||||||
final String password_encrypted = DBEncryptionUtil.encrypt(password);
|
final String password_encrypted = DBEncryptionUtil.encrypt(password);
|
||||||
final UserVmVO userVmVO = _userVmDao.findById(vm.getId());
|
final UserVmVO userVmVO = _userVmDao.findById(vm.getId());
|
||||||
|
|
||||||
_userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.PASSWORD, password_encrypted, false);
|
_vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.PASSWORD, password_encrypted, false);
|
||||||
|
|
||||||
userVmVO.setUpdateParameters(true);
|
userVmVO.setUpdateParameters(true);
|
||||||
_userVmDao.update(userVmVO.getId(), userVmVO);
|
_userVmDao.update(userVmVO.getId(), userVmVO);
|
||||||
@ -530,7 +530,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Location getConfigDriveLocation(long vmId) {
|
private Location getConfigDriveLocation(long vmId) {
|
||||||
final UserVmDetailVO vmDetailConfigDriveLocation = _userVmDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION);
|
final VMInstanceDetailVO vmDetailConfigDriveLocation = _vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION);
|
||||||
if (vmDetailConfigDriveLocation != null) {
|
if (vmDetailConfigDriveLocation != null) {
|
||||||
if (Location.HOST.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) {
|
if (Location.HOST.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) {
|
||||||
return Location.HOST;
|
return Location.HOST;
|
||||||
@ -544,7 +544,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isConfigDriveIsoOnHostCache(long vmId) {
|
private boolean isConfigDriveIsoOnHostCache(long vmId) {
|
||||||
final UserVmDetailVO vmDetailConfigDriveLocation = _userVmDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION);
|
final VMInstanceDetailVO vmDetailConfigDriveLocation = _vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION);
|
||||||
if (vmDetailConfigDriveLocation != null && Location.HOST.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) {
|
if (vmDetailConfigDriveLocation != null && Location.HOST.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -552,7 +552,7 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isLastConfigDriveIsoOnHostCache(long vmId) {
|
private boolean isLastConfigDriveIsoOnHostCache(long vmId) {
|
||||||
final UserVmDetailVO vmDetailLastConfigDriveLocation = _userVmDetailsDao.findDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION);
|
final VMInstanceDetailVO vmDetailLastConfigDriveLocation = _vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION);
|
||||||
if (vmDetailLastConfigDriveLocation == null) {
|
if (vmDetailLastConfigDriveLocation == null) {
|
||||||
return isConfigDriveIsoOnHostCache(vmId);
|
return isConfigDriveIsoOnHostCache(vmId);
|
||||||
}
|
}
|
||||||
@ -681,15 +681,15 @@ public class ConfigDriveNetworkElement extends AdapterBase implements NetworkEle
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateConfigDriveLocationInVMDetails(long vmId, NetworkElement.Location configDriveLocation) {
|
private void updateConfigDriveLocationInVMDetails(long vmId, NetworkElement.Location configDriveLocation) {
|
||||||
final UserVmDetailVO vmDetailConfigDriveLocation = _userVmDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION);
|
final VMInstanceDetailVO vmDetailConfigDriveLocation = _vmInstanceDetailsDao.findDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION);
|
||||||
if (vmDetailConfigDriveLocation != null) {
|
if (vmDetailConfigDriveLocation != null) {
|
||||||
if (!configDriveLocation.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) {
|
if (!configDriveLocation.toString().equalsIgnoreCase(vmDetailConfigDriveLocation.getValue())) {
|
||||||
_userVmDetailsDao.addDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION, vmDetailConfigDriveLocation.getValue(), false);
|
_vmInstanceDetailsDao.addDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION, vmDetailConfigDriveLocation.getValue(), false);
|
||||||
} else {
|
} else {
|
||||||
_userVmDetailsDao.removeDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION);
|
_vmInstanceDetailsDao.removeDetail(vmId, VmDetailConstants.LAST_CONFIG_DRIVE_LOCATION);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_userVmDetailsDao.addDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION, configDriveLocation.toString(), false);
|
_vmInstanceDetailsDao.addDetail(vmId, VmDetailConstants.CONFIG_DRIVE_LOCATION, configDriveLocation.toString(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, String> getVMCustomUserdataParamMap(long vmId) {
|
private Map<String, String> getVMCustomUserdataParamMap(long vmId) {
|
||||||
|
|||||||
@ -262,7 +262,7 @@ import com.cloud.vm.dao.DomainRouterDao;
|
|||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.NicIpAliasDao;
|
import com.cloud.vm.dao.NicIpAliasDao;
|
||||||
import com.cloud.vm.dao.NicIpAliasVO;
|
import com.cloud.vm.dao.NicIpAliasVO;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.google.gson.JsonSyntaxException;
|
import com.google.gson.JsonSyntaxException;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
@ -310,7 +310,7 @@ Configurable, StateListener<VirtualMachine.State, VirtualMachine.Event, VirtualM
|
|||||||
@Inject protected RemoteAccessVpnDao _vpnDao;
|
@Inject protected RemoteAccessVpnDao _vpnDao;
|
||||||
@Inject protected NicDao _nicDao;
|
@Inject protected NicDao _nicDao;
|
||||||
@Inject private NicIpAliasDao _nicIpAliasDao;
|
@Inject private NicIpAliasDao _nicIpAliasDao;
|
||||||
@Inject private UserVmDetailsDao _vmDetailsDao;
|
@Inject private VMInstanceDetailsDao _vmDetailsDao;
|
||||||
@Inject protected VirtualRouterProviderDao _vrProviderDao;
|
@Inject protected VirtualRouterProviderDao _vrProviderDao;
|
||||||
@Inject private ManagementServerHostDao _msHostDao;
|
@Inject private ManagementServerHostDao _msHostDao;
|
||||||
@Inject private Site2SiteCustomerGatewayDao _s2sCustomerGatewayDao;
|
@Inject private Site2SiteCustomerGatewayDao _s2sCustomerGatewayDao;
|
||||||
|
|||||||
@ -215,7 +215,7 @@ import com.cloud.vm.VirtualMachineManager;
|
|||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||||
import com.cloud.vm.VmDetailConstants;
|
import com.cloud.vm.VmDetailConstants;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
@ -305,7 +305,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||||||
@Inject
|
@Inject
|
||||||
private ClusterVSMMapDao _clusterVSMMapDao;
|
private ClusterVSMMapDao _clusterVSMMapDao;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private AnnotationDao annotationDao;
|
private AnnotationDao annotationDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -1692,8 +1692,8 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||||||
for (VMInstanceVO vm : vms) {
|
for (VMInstanceVO vm : vms) {
|
||||||
GetVncPortAnswer vmVncPortAnswer = (GetVncPortAnswer) _agentMgr.easySend(hostId, new GetVncPortCommand(vm.getId(), vm.getInstanceName()));
|
GetVncPortAnswer vmVncPortAnswer = (GetVncPortAnswer) _agentMgr.easySend(hostId, new GetVncPortCommand(vm.getId(), vm.getInstanceName()));
|
||||||
if (vmVncPortAnswer != null) {
|
if (vmVncPortAnswer != null) {
|
||||||
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.KVM_VNC_ADDRESS, vmVncPortAnswer.getAddress(), true);
|
vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.KVM_VNC_ADDRESS, vmVncPortAnswer.getAddress(), true);
|
||||||
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT, String.valueOf(vmVncPortAnswer.getPort()), true);
|
vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT, String.valueOf(vmVncPortAnswer.getPort()), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -69,12 +69,12 @@ import com.cloud.utils.StringUtils;
|
|||||||
import com.cloud.utils.Ternary;
|
import com.cloud.utils.Ternary;
|
||||||
import com.cloud.utils.component.ManagerBase;
|
import com.cloud.utils.component.ManagerBase;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VirtualMachine.State;
|
import com.cloud.vm.VirtualMachine.State;
|
||||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||||
import com.cloud.vm.VmDetailConstants;
|
import com.cloud.vm.VmDetailConstants;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
public class RollingMaintenanceManagerImpl extends ManagerBase implements RollingMaintenanceManager {
|
public class RollingMaintenanceManagerImpl extends ManagerBase implements RollingMaintenanceManager {
|
||||||
@ -90,7 +90,7 @@ public class RollingMaintenanceManagerImpl extends ManagerBase implements Rollin
|
|||||||
@Inject
|
@Inject
|
||||||
private VMInstanceDao vmInstanceDao;
|
private VMInstanceDao vmInstanceDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmDetailsDao userVmDetailsDao;
|
protected VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private ServiceOfferingDao serviceOfferingDao;
|
private ServiceOfferingDao serviceOfferingDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -689,12 +689,12 @@ public class RollingMaintenanceManagerImpl extends ManagerBase implements Rollin
|
|||||||
return new Ternary<>(cpu, speed, ramSize);
|
return new Ternary<>(cpu, speed, ramSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<UserVmDetailVO> vmDetails = userVmDetailsDao.listDetails(runningVM.getId());
|
List<VMInstanceDetailVO> vmDetails = vmInstanceDetailsDao.listDetails(runningVM.getId());
|
||||||
if (CollectionUtils.isEmpty(vmDetails)) {
|
if (CollectionUtils.isEmpty(vmDetails)) {
|
||||||
return new Ternary<>(cpu, speed, ramSize);
|
return new Ternary<>(cpu, speed, ramSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (UserVmDetailVO vmDetail : vmDetails) {
|
for (VMInstanceDetailVO vmDetail : vmDetails) {
|
||||||
if (StringUtils.isBlank(vmDetail.getName()) || StringUtils.isBlank(vmDetail.getValue())) {
|
if (StringUtils.isBlank(vmDetail.getName()) || StringUtils.isBlank(vmDetail.getValue())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -848,7 +848,7 @@ import com.cloud.vm.DomainRouterVO;
|
|||||||
import com.cloud.vm.InstanceGroupVO;
|
import com.cloud.vm.InstanceGroupVO;
|
||||||
import com.cloud.vm.NicVO;
|
import com.cloud.vm.NicVO;
|
||||||
import com.cloud.vm.SecondaryStorageVmVO;
|
import com.cloud.vm.SecondaryStorageVmVO;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmManager;
|
import com.cloud.vm.UserVmManager;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
@ -863,7 +863,7 @@ import com.cloud.vm.dao.InstanceGroupDao;
|
|||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.SecondaryStorageVmDao;
|
import com.cloud.vm.dao.SecondaryStorageVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
public class ManagementServerImpl extends ManagerBase implements ManagementServer, Configurable {
|
public class ManagementServerImpl extends ManagerBase implements ManagementServer, Configurable {
|
||||||
@ -894,7 +894,7 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
|
|||||||
@Inject
|
@Inject
|
||||||
private ClusterDao _clusterDao;
|
private ClusterDao _clusterDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmDetailsDao _UserVmDetailsDao;
|
protected VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private SecondaryStorageVmDao _secStorageVmDao;
|
private SecondaryStorageVmDao _secStorageVmDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -1416,10 +1416,10 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected Pair<Boolean, List<HostVO>> filterUefiHostsForMigration(List<HostVO> allHosts, List<HostVO> filteredHosts, VirtualMachine vm) {
|
protected Pair<Boolean, List<HostVO>> filterUefiHostsForMigration(List<HostVO> allHosts, List<HostVO> filteredHosts, VirtualMachine vm) {
|
||||||
UserVmDetailVO userVmDetailVO = _UserVmDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString());
|
VMInstanceDetailVO vmInstanceDetailVO = _vmInstanceDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString());
|
||||||
if (userVmDetailVO != null &&
|
if (vmInstanceDetailVO != null &&
|
||||||
(ApiConstants.BootMode.LEGACY.toString().equalsIgnoreCase(userVmDetailVO.getValue()) ||
|
(ApiConstants.BootMode.LEGACY.toString().equalsIgnoreCase(vmInstanceDetailVO.getValue()) ||
|
||||||
ApiConstants.BootMode.SECURE.toString().equalsIgnoreCase(userVmDetailVO.getValue()))) {
|
ApiConstants.BootMode.SECURE.toString().equalsIgnoreCase(vmInstanceDetailVO.getValue()))) {
|
||||||
logger.info(" Live Migration of UEFI enabled VM : " + vm.getInstanceName() + " is not supported");
|
logger.info(" Live Migration of UEFI enabled VM : " + vm.getInstanceName() + " is not supported");
|
||||||
if (CollectionUtils.isEmpty(filteredHosts)) {
|
if (CollectionUtils.isEmpty(filteredHosts)) {
|
||||||
filteredHosts = new ArrayList<>(allHosts);
|
filteredHosts = new ArrayList<>(allHosts);
|
||||||
|
|||||||
@ -215,7 +215,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
|||||||
import com.cloud.utils.fsm.NoTransitionException;
|
import com.cloud.utils.fsm.NoTransitionException;
|
||||||
import com.cloud.utils.fsm.StateMachine2;
|
import com.cloud.utils.fsm.StateMachine2;
|
||||||
import com.cloud.vm.DiskProfile;
|
import com.cloud.vm.DiskProfile;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmManager;
|
import com.cloud.vm.UserVmManager;
|
||||||
import com.cloud.vm.UserVmService;
|
import com.cloud.vm.UserVmService;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
@ -237,7 +237,7 @@ import com.cloud.vm.VmWorkResizeVolume;
|
|||||||
import com.cloud.vm.VmWorkSerializer;
|
import com.cloud.vm.VmWorkSerializer;
|
||||||
import com.cloud.vm.VmWorkTakeVolumeSnapshot;
|
import com.cloud.vm.VmWorkTakeVolumeSnapshot;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||||
@ -283,7 +283,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
|||||||
@Inject
|
@Inject
|
||||||
private UserVmDao _userVmDao;
|
private UserVmDao _userVmDao;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmService _userVmService;
|
private UserVmService _userVmService;
|
||||||
@Inject
|
@Inject
|
||||||
@ -1597,13 +1597,13 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
|
|||||||
|
|
||||||
_volsDao.update(volume.getId(), volume);
|
_volsDao.update(volume.getId(), volume);
|
||||||
if (Volume.Type.ROOT.equals(volume.getVolumeType()) && userVm != null) {
|
if (Volume.Type.ROOT.equals(volume.getVolumeType()) && userVm != null) {
|
||||||
UserVmDetailVO userVmDetailVO = userVmDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
|
VMInstanceDetailVO vmInstanceDetailVO = vmInstanceDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
|
||||||
if (userVmDetailVO != null) {
|
if (vmInstanceDetailVO != null) {
|
||||||
userVmDetailVO.setValue(String.valueOf(newSize/ GiB_TO_BYTES));
|
vmInstanceDetailVO.setValue(String.valueOf(newSize/ GiB_TO_BYTES));
|
||||||
userVmDetailsDao.update(userVmDetailVO.getId(), userVmDetailVO);
|
vmInstanceDetailsDao.update(vmInstanceDetailVO.getId(), vmInstanceDetailVO);
|
||||||
} else {
|
} else {
|
||||||
UserVmDetailVO detailVO = new UserVmDetailVO(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE, String.valueOf(newSize/ GiB_TO_BYTES), true);
|
VMInstanceDetailVO detailVO = new VMInstanceDetailVO(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE, String.valueOf(newSize/ GiB_TO_BYTES), true);
|
||||||
userVmDetailsDao.persist(detailVO);
|
vmInstanceDetailsDao.persist(detailVO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -59,8 +59,6 @@ import javax.naming.ConfigurationException;
|
|||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.ParserConfigurationException;
|
import javax.xml.parsers.ParserConfigurationException;
|
||||||
|
|
||||||
import com.cloud.deploy.DeploymentPlan;
|
|
||||||
import com.cloud.network.NetworkService;
|
|
||||||
import org.apache.cloudstack.acl.ControlledEntity;
|
import org.apache.cloudstack.acl.ControlledEntity;
|
||||||
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
|
||||||
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
|
||||||
@ -116,6 +114,8 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
|
|||||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManager;
|
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManager;
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore;
|
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore;
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver;
|
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver;
|
||||||
|
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
|
||||||
|
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
|
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
|
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
|
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
|
||||||
@ -140,9 +140,9 @@ import org.apache.cloudstack.storage.template.VnfTemplateManager;
|
|||||||
import org.apache.cloudstack.userdata.UserDataManager;
|
import org.apache.cloudstack.userdata.UserDataManager;
|
||||||
import org.apache.cloudstack.utils.bytescale.ByteScaleUtils;
|
import org.apache.cloudstack.utils.bytescale.ByteScaleUtils;
|
||||||
import org.apache.cloudstack.utils.security.ParserUtils;
|
import org.apache.cloudstack.utils.security.ParserUtils;
|
||||||
|
import org.apache.cloudstack.vm.UnmanagedVMsManager;
|
||||||
import org.apache.cloudstack.vm.lease.VMLeaseManager;
|
import org.apache.cloudstack.vm.lease.VMLeaseManager;
|
||||||
import org.apache.cloudstack.vm.schedule.VMScheduleManager;
|
import org.apache.cloudstack.vm.schedule.VMScheduleManager;
|
||||||
import org.apache.cloudstack.vm.UnmanagedVMsManager;
|
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.apache.commons.collections.MapUtils;
|
import org.apache.commons.collections.MapUtils;
|
||||||
import org.apache.commons.lang.math.NumberUtils;
|
import org.apache.commons.lang.math.NumberUtils;
|
||||||
@ -211,6 +211,7 @@ import com.cloud.dc.dao.HostPodDao;
|
|||||||
import com.cloud.dc.dao.VlanDao;
|
import com.cloud.dc.dao.VlanDao;
|
||||||
import com.cloud.deploy.DataCenterDeployment;
|
import com.cloud.deploy.DataCenterDeployment;
|
||||||
import com.cloud.deploy.DeployDestination;
|
import com.cloud.deploy.DeployDestination;
|
||||||
|
import com.cloud.deploy.DeploymentPlan;
|
||||||
import com.cloud.deploy.DeploymentPlanner;
|
import com.cloud.deploy.DeploymentPlanner;
|
||||||
import com.cloud.deploy.DeploymentPlanner.ExcludeList;
|
import com.cloud.deploy.DeploymentPlanner.ExcludeList;
|
||||||
import com.cloud.deploy.DeploymentPlanningManager;
|
import com.cloud.deploy.DeploymentPlanningManager;
|
||||||
@ -261,6 +262,7 @@ import com.cloud.network.Network.IpAddresses;
|
|||||||
import com.cloud.network.Network.Provider;
|
import com.cloud.network.Network.Provider;
|
||||||
import com.cloud.network.Network.Service;
|
import com.cloud.network.Network.Service;
|
||||||
import com.cloud.network.NetworkModel;
|
import com.cloud.network.NetworkModel;
|
||||||
|
import com.cloud.network.NetworkService;
|
||||||
import com.cloud.network.Networks.TrafficType;
|
import com.cloud.network.Networks.TrafficType;
|
||||||
import com.cloud.network.PhysicalNetwork;
|
import com.cloud.network.PhysicalNetwork;
|
||||||
import com.cloud.network.as.AutoScaleManager;
|
import com.cloud.network.as.AutoScaleManager;
|
||||||
@ -390,16 +392,13 @@ import com.cloud.vm.dao.InstanceGroupVMMapDao;
|
|||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VmStatsDao;
|
import com.cloud.vm.dao.VmStatsDao;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotManager;
|
import com.cloud.vm.snapshot.VMSnapshotManager;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||||
|
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotDataFactory;
|
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
|
|
||||||
|
|
||||||
|
|
||||||
public class UserVmManagerImpl extends ManagerBase implements UserVmManager, VirtualMachineGuru, Configurable {
|
public class UserVmManagerImpl extends ManagerBase implements UserVmManager, VirtualMachineGuru, Configurable {
|
||||||
|
|
||||||
@ -491,7 +490,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
@Inject
|
@Inject
|
||||||
private SSHKeyPairDao _sshKeyPairDao;
|
private SSHKeyPairDao _sshKeyPairDao;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private HypervisorCapabilitiesDao _hypervisorCapabilitiesDao;
|
private HypervisorCapabilitiesDao _hypervisorCapabilitiesDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -1060,7 +1059,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void removeEncryptedPasswordFromUserVmVoDetails(long vmId) {
|
protected void removeEncryptedPasswordFromUserVmVoDetails(long vmId) {
|
||||||
userVmDetailsDao.removeDetail(vmId, VmDetailConstants.ENCRYPTED_PASSWORD);
|
vmInstanceDetailsDao.removeDetail(vmId, VmDetailConstants.ENCRYPTED_PASSWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean resetVMSSHKeyInternal(Long vmId, String sshPublicKeys, String keypairnames) throws ResourceUnavailableException, InsufficientCapacityException {
|
private boolean resetVMSSHKeyInternal(Long vmId, String sshPublicKeys, String keypairnames) throws ResourceUnavailableException, InsufficientCapacityException {
|
||||||
@ -2863,20 +2862,20 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
final List<String> userReadOnlySettings = Stream.of(QueryService.UserVMReadOnlyDetails.value().split(","))
|
final List<String> userReadOnlySettings = Stream.of(QueryService.UserVMReadOnlyDetails.value().split(","))
|
||||||
.map(item -> (item).trim())
|
.map(item -> (item).trim())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
List<UserVmDetailVO> existingDetails = userVmDetailsDao.listDetails(id);
|
List<VMInstanceDetailVO> existingDetails = vmInstanceDetailsDao.listDetails(id);
|
||||||
if (cleanupDetails){
|
if (cleanupDetails){
|
||||||
if (caller != null && caller.getType() == Account.Type.ADMIN) {
|
if (caller != null && caller.getType() == Account.Type.ADMIN) {
|
||||||
for (final UserVmDetailVO detail : existingDetails) {
|
for (final VMInstanceDetailVO detail : existingDetails) {
|
||||||
if (detail != null && detail.isDisplay() && !isExtraConfig(detail.getName())) {
|
if (detail != null && detail.isDisplay() && !isExtraConfig(detail.getName())) {
|
||||||
userVmDetailsDao.removeDetail(id, detail.getName());
|
vmInstanceDetailsDao.removeDetail(id, detail.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (final UserVmDetailVO detail : existingDetails) {
|
for (final VMInstanceDetailVO detail : existingDetails) {
|
||||||
if (detail != null && !userDenyListedSettings.contains(detail.getName())
|
if (detail != null && !userDenyListedSettings.contains(detail.getName())
|
||||||
&& !userReadOnlySettings.contains(detail.getName()) && detail.isDisplay()
|
&& !userReadOnlySettings.contains(detail.getName()) && detail.isDisplay()
|
||||||
&& !isExtraConfig(detail.getName())) {
|
&& !isExtraConfig(detail.getName())) {
|
||||||
userVmDetailsDao.removeDetail(id, detail.getName());
|
vmInstanceDetailsDao.removeDetail(id, detail.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2909,7 +2908,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Add any existing user denied or read-only details. We do it here because admins would already provide these (or can delete them).
|
// Add any existing user denied or read-only details. We do it here because admins would already provide these (or can delete them).
|
||||||
for (final UserVmDetailVO detail : existingDetails) {
|
for (final VMInstanceDetailVO detail : existingDetails) {
|
||||||
if (userDenyListedSettings.contains(detail.getName()) || userReadOnlySettings.contains(detail.getName())) {
|
if (userDenyListedSettings.contains(detail.getName()) || userReadOnlySettings.contains(detail.getName())) {
|
||||||
details.put(detail.getName(), detail.getValue());
|
details.put(detail.getName(), detail.getValue());
|
||||||
}
|
}
|
||||||
@ -2917,7 +2916,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ensure details marked as non-displayable are maintained, regardless of admin or not
|
// ensure details marked as non-displayable are maintained, regardless of admin or not
|
||||||
for (final UserVmDetailVO existingDetail : existingDetails) {
|
for (final VMInstanceDetailVO existingDetail : existingDetails) {
|
||||||
if (!existingDetail.isDisplay() || isExtraConfig(existingDetail.getName())) {
|
if (!existingDetail.isDisplay() || isExtraConfig(existingDetail.getName())) {
|
||||||
details.put(existingDetail.getName(), existingDetail.getValue());
|
details.put(existingDetail.getName(), existingDetail.getValue());
|
||||||
}
|
}
|
||||||
@ -3316,7 +3315,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
}
|
}
|
||||||
additonalParams.put(VirtualMachineProfile.Param.BootIntoSetup, cmd.getBootIntoSetup());
|
additonalParams.put(VirtualMachineProfile.Param.BootIntoSetup, cmd.getBootIntoSetup());
|
||||||
}
|
}
|
||||||
UserVmDetailVO uefiDetail = userVmDetailsDao.findDetail(cmd.getId(), ApiConstants.BootType.UEFI.toString());
|
VMInstanceDetailVO uefiDetail = vmInstanceDetailsDao.findDetail(cmd.getId(), ApiConstants.BootType.UEFI.toString());
|
||||||
if (uefiDetail != null) {
|
if (uefiDetail != null) {
|
||||||
addVmUefiBootOptionsToParams(additonalParams, uefiDetail.getName(), uefiDetail.getValue());
|
addVmUefiBootOptionsToParams(additonalParams, uefiDetail.getName(), uefiDetail.getValue());
|
||||||
}
|
}
|
||||||
@ -5111,7 +5110,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
podId = adminCmd.getPodId();
|
podId = adminCmd.getPodId();
|
||||||
clusterId = adminCmd.getClusterId();
|
clusterId = adminCmd.getClusterId();
|
||||||
}
|
}
|
||||||
UserVmDetailVO uefiDetail = userVmDetailsDao.findDetail(cmd.getEntityId(), ApiConstants.BootType.UEFI.toString());
|
VMInstanceDetailVO uefiDetail = vmInstanceDetailsDao.findDetail(cmd.getEntityId(), ApiConstants.BootType.UEFI.toString());
|
||||||
if (uefiDetail != null) {
|
if (uefiDetail != null) {
|
||||||
addVmUefiBootOptionsToParams(additionalParams, uefiDetail.getName(), uefiDetail.getValue());
|
addVmUefiBootOptionsToParams(additionalParams, uefiDetail.getName(), uefiDetail.getValue());
|
||||||
}
|
}
|
||||||
@ -5217,7 +5216,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
@Override
|
@Override
|
||||||
public boolean finalizeVirtualMachineProfile(VirtualMachineProfile profile, DeployDestination dest, ReservationContext context) {
|
public boolean finalizeVirtualMachineProfile(VirtualMachineProfile profile, DeployDestination dest, ReservationContext context) {
|
||||||
UserVmVO vm = _vmDao.findById(profile.getId());
|
UserVmVO vm = _vmDao.findById(profile.getId());
|
||||||
Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vm.getId());
|
Map<String, String> details = vmInstanceDetailsDao.listDetailsKeyPairs(vm.getId());
|
||||||
vm.setDetails(details);
|
vm.setDetails(details);
|
||||||
StringBuilder buf = profile.getBootArgsBuilder();
|
StringBuilder buf = profile.getBootArgsBuilder();
|
||||||
if (CKS_NODE.equals(vm.getUserVmType()) || SHAREDFSVM.equals(vm.getUserVmType())) {
|
if (CKS_NODE.equals(vm.getUserVmType()) || SHAREDFSVM.equals(vm.getUserVmType())) {
|
||||||
@ -5689,7 +5688,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
// display purposes
|
// display purposes
|
||||||
if (template.isEnablePassword()) {
|
if (template.isEnablePassword()) {
|
||||||
if (vm.getDetail(VmDetailConstants.PASSWORD) != null) {
|
if (vm.getDetail(VmDetailConstants.PASSWORD) != null) {
|
||||||
userVmDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
|
vmInstanceDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
|
||||||
}
|
}
|
||||||
vm.setUpdateParameters(false);
|
vm.setUpdateParameters(false);
|
||||||
_vmDao.update(vm.getId(), vm);
|
_vmDao.update(vm.getId(), vm);
|
||||||
@ -6399,7 +6398,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
String instanceUuid = instance.getUuid();
|
String instanceUuid = instance.getUuid();
|
||||||
|
|
||||||
// vm must have active lease associated during deployment
|
// vm must have active lease associated during deployment
|
||||||
Map<String, String> vmDetails = userVmDetailsDao.listDetailsKeyPairs(instance.getId(),
|
Map<String, String> vmDetails = vmInstanceDetailsDao.listDetailsKeyPairs(instance.getId(),
|
||||||
List.of(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE, VmDetailConstants.INSTANCE_LEASE_EXECUTION));
|
List.of(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE, VmDetailConstants.INSTANCE_LEASE_EXECUTION));
|
||||||
String leaseExecution = vmDetails.get(VmDetailConstants.INSTANCE_LEASE_EXECUTION);
|
String leaseExecution = vmDetails.get(VmDetailConstants.INSTANCE_LEASE_EXECUTION);
|
||||||
String leaseExpiryDate = vmDetails.get(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
|
String leaseExpiryDate = vmDetails.get(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
|
||||||
@ -6432,7 +6431,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (leaseDuration < 1) {
|
if (leaseDuration < 1) {
|
||||||
userVmDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION,
|
vmInstanceDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION,
|
||||||
VMLeaseManager.LeaseActionExecution.DISABLED.name(), false);
|
VMLeaseManager.LeaseActionExecution.DISABLED.name(), false);
|
||||||
ActionEventUtils.onActionEvent(CallContext.current().getCallingUserId(), instance.getAccountId(), instance.getDomainId(),
|
ActionEventUtils.onActionEvent(CallContext.current().getCallingUserId(), instance.getAccountId(), instance.getDomainId(),
|
||||||
EventTypes.VM_LEASE_DISABLED, "Disabling lease on the instance", instance.getId(), ApiCommandResourceType.VirtualMachine.toString());
|
EventTypes.VM_LEASE_DISABLED, "Disabling lease on the instance", instance.getId(), ApiCommandResourceType.VirtualMachine.toString());
|
||||||
@ -6452,9 +6451,9 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
|
sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
|
||||||
String formattedLeaseExpiryDate = sdf.format(leaseExpiryDate);
|
String formattedLeaseExpiryDate = sdf.format(leaseExpiryDate);
|
||||||
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE, formattedLeaseExpiryDate, false);
|
vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE, formattedLeaseExpiryDate, false);
|
||||||
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION, leaseExpiryAction.name(), false);
|
vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION, leaseExpiryAction.name(), false);
|
||||||
userVmDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION, "PENDING", false);
|
vmInstanceDetailsDao.addDetail(vm.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION, "PENDING", false);
|
||||||
logger.debug("Instance lease for instanceId: {} is configured to expire on: {} with action: {}", vm.getUuid(), formattedLeaseExpiryDate, leaseExpiryAction);
|
logger.debug("Instance lease for instanceId: {} is configured to expire on: {} with action: {}", vm.getUuid(), formattedLeaseExpiryDate, leaseExpiryAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6496,7 +6495,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
boolean validXenOrVmwareConfiguration = isValidXenOrVmwareConfiguration(cfg, allowedKeyList);
|
boolean validXenOrVmwareConfiguration = isValidXenOrVmwareConfiguration(cfg, allowedKeyList);
|
||||||
String[] paramArray = cfg.split("=");
|
String[] paramArray = cfg.split("=");
|
||||||
if (validXenOrVmwareConfiguration && paramArray.length == 2) {
|
if (validXenOrVmwareConfiguration && paramArray.length == 2) {
|
||||||
userVmDetailsDao.addDetail(vm.getId(), paramArray[0].trim(), paramArray[1].trim(), true);
|
vmInstanceDetailsDao.addDetail(vm.getId(), paramArray[0].trim(), paramArray[1].trim(), true);
|
||||||
} else {
|
} else {
|
||||||
throw new CloudRuntimeException("Extra config " + cfg + " is not on the list of allowed keys for VMware hypervisor hosts.");
|
throw new CloudRuntimeException("Extra config " + cfg + " is not on the list of allowed keys for VMware hypervisor hosts.");
|
||||||
}
|
}
|
||||||
@ -6525,7 +6524,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
String[] allowedKeyList = XenServerAdditionalConfigAllowList.value().split(",");
|
String[] allowedKeyList = XenServerAdditionalConfigAllowList.value().split(",");
|
||||||
boolean validXenOrVmwareConfiguration = isValidXenOrVmwareConfiguration(cfg, allowedKeyList);
|
boolean validXenOrVmwareConfiguration = isValidXenOrVmwareConfiguration(cfg, allowedKeyList);
|
||||||
if (validXenOrVmwareConfiguration) {
|
if (validXenOrVmwareConfiguration) {
|
||||||
userVmDetailsDao.addDetail(vm.getId(), extraConfigKey + String.valueOf(i), cfg, true);
|
vmInstanceDetailsDao.addDetail(vm.getId(), extraConfigKey + String.valueOf(i), cfg, true);
|
||||||
i++;
|
i++;
|
||||||
} else {
|
} else {
|
||||||
throw new CloudRuntimeException("Extra config " + cfg + " is not on the list of allowed keys for XenServer hypervisor hosts.");
|
throw new CloudRuntimeException("Extra config " + cfg + " is not on the list of allowed keys for XenServer hypervisor hosts.");
|
||||||
@ -6609,7 +6608,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
extraConfigKey += "-" + String.valueOf(i);
|
extraConfigKey += "-" + String.valueOf(i);
|
||||||
extraConfigValue = cfg;
|
extraConfigValue = cfg;
|
||||||
}
|
}
|
||||||
userVmDetailsDao.addDetail(vm.getId(), extraConfigKey, extraConfigValue, true);
|
vmInstanceDetailsDao.addDetail(vm.getId(), extraConfigKey, extraConfigValue, true);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8794,7 +8793,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
vm.setUpdateParameters(false);
|
vm.setUpdateParameters(false);
|
||||||
_vmDao.loadDetails(vm);
|
_vmDao.loadDetails(vm);
|
||||||
if (vm.getDetail(VmDetailConstants.PASSWORD) != null) {
|
if (vm.getDetail(VmDetailConstants.PASSWORD) != null) {
|
||||||
userVmDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
|
vmInstanceDetailsDao.removeDetail(vm.getId(), VmDetailConstants.PASSWORD);
|
||||||
}
|
}
|
||||||
_vmDao.update(vm.getId(), vm);
|
_vmDao.update(vm.getId(), vm);
|
||||||
}
|
}
|
||||||
@ -8816,7 +8815,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
VolumeVO resizedVolume = (VolumeVO) vol;
|
VolumeVO resizedVolume = (VolumeVO) vol;
|
||||||
Long size = null;
|
Long size = null;
|
||||||
if (template != null && template.getSize() != null) {
|
if (template != null && template.getSize() != null) {
|
||||||
UserVmDetailVO vmRootDiskSizeDetail = userVmDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
|
VMInstanceDetailVO vmRootDiskSizeDetail = vmInstanceDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
|
||||||
if (vmRootDiskSizeDetail == null) {
|
if (vmRootDiskSizeDetail == null) {
|
||||||
size = template.getSize();
|
size = template.getSize();
|
||||||
} else {
|
} else {
|
||||||
@ -8824,7 +8823,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
if (template.getSize() >= rootDiskSize) {
|
if (template.getSize() >= rootDiskSize) {
|
||||||
size = template.getSize();
|
size = template.getSize();
|
||||||
if (update) {
|
if (update) {
|
||||||
userVmDetailsDao.remove(vmRootDiskSizeDetail.getId());
|
vmInstanceDetailsDao.remove(vmRootDiskSizeDetail.getId());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
size = rootDiskSize;
|
size = rootDiskSize;
|
||||||
@ -8865,13 +8864,13 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
if (update) {
|
if (update) {
|
||||||
resizedVolume.setSize(rootDiskSize);
|
resizedVolume.setSize(rootDiskSize);
|
||||||
}
|
}
|
||||||
UserVmDetailVO vmRootDiskSizeDetail = userVmDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
|
VMInstanceDetailVO vmRootDiskSizeDetail = vmInstanceDetailsDao.findDetail(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE);
|
||||||
if (update) {
|
if (update) {
|
||||||
if (vmRootDiskSizeDetail != null) {
|
if (vmRootDiskSizeDetail != null) {
|
||||||
vmRootDiskSizeDetail.setValue(details.get(VmDetailConstants.ROOT_DISK_SIZE));
|
vmRootDiskSizeDetail.setValue(details.get(VmDetailConstants.ROOT_DISK_SIZE));
|
||||||
userVmDetailsDao.update(vmRootDiskSizeDetail.getId(), vmRootDiskSizeDetail);
|
vmInstanceDetailsDao.update(vmRootDiskSizeDetail.getId(), vmRootDiskSizeDetail);
|
||||||
} else {
|
} else {
|
||||||
userVmDetailsDao.persist(new UserVmDetailVO(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE,
|
vmInstanceDetailsDao.persist(new VMInstanceDetailVO(userVm.getId(), VmDetailConstants.ROOT_DISK_SIZE,
|
||||||
details.get(VmDetailConstants.ROOT_DISK_SIZE), true));
|
details.get(VmDetailConstants.ROOT_DISK_SIZE), true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -9336,7 +9335,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
|
|||||||
|
|
||||||
private void unmanageVMFromDB(long vmId) {
|
private void unmanageVMFromDB(long vmId) {
|
||||||
VMInstanceVO vm = _vmInstanceDao.findById(vmId);
|
VMInstanceVO vm = _vmInstanceDao.findById(vmId);
|
||||||
userVmDetailsDao.removeDetails(vmId);
|
vmInstanceDetailsDao.removeDetails(vmId);
|
||||||
vm.setState(State.Expunging);
|
vm.setState(State.Expunging);
|
||||||
vm.setRemoved(new Date());
|
vm.setRemoved(new Date());
|
||||||
_vmInstanceDao.update(vm.getId(), vm);
|
_vmInstanceDao.update(vm.getId(), vm);
|
||||||
|
|||||||
@ -109,7 +109,7 @@ import com.cloud.utils.db.TransactionCallbackWithException;
|
|||||||
import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
|
import com.cloud.utils.db.TransactionCallbackWithExceptionNoReturn;
|
||||||
import com.cloud.utils.db.TransactionStatus;
|
import com.cloud.utils.db.TransactionStatus;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmManager;
|
import com.cloud.vm.UserVmManager;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
@ -123,7 +123,7 @@ import com.cloud.vm.VmWorkJobHandler;
|
|||||||
import com.cloud.vm.VmWorkJobHandlerProxy;
|
import com.cloud.vm.VmWorkJobHandlerProxy;
|
||||||
import com.cloud.vm.VmWorkSerializer;
|
import com.cloud.vm.VmWorkSerializer;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao;
|
||||||
@ -164,7 +164,7 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
|
|||||||
@Inject
|
@Inject
|
||||||
protected ServiceOfferingDao _serviceOfferingDao;
|
protected ServiceOfferingDao _serviceOfferingDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected UserVmDetailsDao _userVmDetailsDao;
|
protected VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected VMSnapshotDetailsDao _vmSnapshotDetailsDao;
|
protected VMSnapshotDetailsDao _vmSnapshotDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -473,9 +473,9 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
|
|||||||
protected void addSupportForCustomServiceOffering(long vmId, long serviceOfferingId, long vmSnapshotId) {
|
protected void addSupportForCustomServiceOffering(long vmId, long serviceOfferingId, long vmSnapshotId) {
|
||||||
ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(serviceOfferingId);
|
ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(serviceOfferingId);
|
||||||
if (serviceOfferingVO.isDynamic()) {
|
if (serviceOfferingVO.isDynamic()) {
|
||||||
List<UserVmDetailVO> vmDetails = _userVmDetailsDao.listDetails(vmId);
|
List<VMInstanceDetailVO> vmDetails = _vmInstanceDetailsDao.listDetails(vmId);
|
||||||
List<VMSnapshotDetailsVO> vmSnapshotDetails = new ArrayList<VMSnapshotDetailsVO>();
|
List<VMSnapshotDetailsVO> vmSnapshotDetails = new ArrayList<VMSnapshotDetailsVO>();
|
||||||
for (UserVmDetailVO detail : vmDetails) {
|
for (VMInstanceDetailVO detail : vmDetails) {
|
||||||
if(detail.getName().equalsIgnoreCase(VmDetailConstants.CPU_NUMBER) || detail.getName().equalsIgnoreCase(VmDetailConstants.CPU_SPEED) || detail.getName().equalsIgnoreCase(VmDetailConstants.MEMORY)) {
|
if(detail.getName().equalsIgnoreCase(VmDetailConstants.CPU_NUMBER) || detail.getName().equalsIgnoreCase(VmDetailConstants.CPU_SPEED) || detail.getName().equalsIgnoreCase(VmDetailConstants.MEMORY)) {
|
||||||
vmSnapshotDetails.add(new VMSnapshotDetailsVO(vmSnapshotId, detail.getName(), detail.getValue(), detail.isDisplay()));
|
vmSnapshotDetails.add(new VMSnapshotDetailsVO(vmSnapshotId, detail.getName(), detail.getValue(), detail.isDisplay()));
|
||||||
}
|
}
|
||||||
@ -812,9 +812,9 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
|
|||||||
* @return map
|
* @return map
|
||||||
*/
|
*/
|
||||||
protected Map<String, String> getVmMapDetails(UserVm userVm) {
|
protected Map<String, String> getVmMapDetails(UserVm userVm) {
|
||||||
List<UserVmDetailVO> userVmDetails = _userVmDetailsDao.listDetails(userVm.getId());
|
List<VMInstanceDetailVO> userVmDetails = _vmInstanceDetailsDao.listDetails(userVm.getId());
|
||||||
Map<String, String> details = new HashMap<String, String>();
|
Map<String, String> details = new HashMap<String, String>();
|
||||||
for (UserVmDetailVO detail : userVmDetails) {
|
for (VMInstanceDetailVO detail : userVmDetails) {
|
||||||
details.put(detail.getName(), detail.getValue());
|
details.put(detail.getName(), detail.getValue());
|
||||||
}
|
}
|
||||||
return details;
|
return details;
|
||||||
@ -943,11 +943,11 @@ public class VMSnapshotManagerImpl extends MutualExclusiveIdsManagerBase impleme
|
|||||||
ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(vmSnapshotVo.getServiceOfferingId());
|
ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(vmSnapshotVo.getServiceOfferingId());
|
||||||
if (serviceOfferingVO.isDynamic()) {
|
if (serviceOfferingVO.isDynamic()) {
|
||||||
List<VMSnapshotDetailsVO> vmSnapshotDetails = _vmSnapshotDetailsDao.listDetails(vmSnapshotVo.getId());
|
List<VMSnapshotDetailsVO> vmSnapshotDetails = _vmSnapshotDetailsDao.listDetails(vmSnapshotVo.getId());
|
||||||
List<UserVmDetailVO> userVmDetails = new ArrayList<UserVmDetailVO>();
|
List<VMInstanceDetailVO> userVmDetails = new ArrayList<VMInstanceDetailVO>();
|
||||||
for (VMSnapshotDetailsVO detail : vmSnapshotDetails) {
|
for (VMSnapshotDetailsVO detail : vmSnapshotDetails) {
|
||||||
userVmDetails.add(new UserVmDetailVO(userVm.getId(), detail.getName(), detail.getValue(), detail.isDisplay()));
|
userVmDetails.add(new VMInstanceDetailVO(userVm.getId(), detail.getName(), detail.getValue(), detail.isDisplay()));
|
||||||
}
|
}
|
||||||
_userVmDetailsDao.saveDetails(userVmDetails);
|
_vmInstanceDetailsDao.saveDetails(userVmDetails);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -63,12 +63,12 @@ import com.cloud.utils.db.EntityManager;
|
|||||||
import com.cloud.utils.db.GlobalLock;
|
import com.cloud.utils.db.GlobalLock;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.ConsoleSessionVO;
|
import com.cloud.vm.ConsoleSessionVO;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineManager;
|
import com.cloud.vm.VirtualMachineManager;
|
||||||
import com.cloud.vm.VmDetailConstants;
|
import com.cloud.vm.VmDetailConstants;
|
||||||
import com.cloud.vm.dao.ConsoleSessionDao;
|
import com.cloud.vm.dao.ConsoleSessionDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
@ -92,7 +92,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
|
|||||||
@Inject
|
@Inject
|
||||||
private EntityManager entityManager;
|
private EntityManager entityManager;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private KeysManager keysManager;
|
private KeysManager keysManager;
|
||||||
@Inject
|
@Inject
|
||||||
@ -344,8 +344,8 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
|
|||||||
if (hostVo.getHypervisorType() == Hypervisor.HypervisorType.KVM &&
|
if (hostVo.getHypervisorType() == Hypervisor.HypervisorType.KVM &&
|
||||||
(hostVo.getResourceState().equals(ResourceState.ErrorInMaintenance) ||
|
(hostVo.getResourceState().equals(ResourceState.ErrorInMaintenance) ||
|
||||||
hostVo.getResourceState().equals(ResourceState.ErrorInPrepareForMaintenance))) {
|
hostVo.getResourceState().equals(ResourceState.ErrorInPrepareForMaintenance))) {
|
||||||
UserVmDetailVO detailAddress = userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_ADDRESS);
|
VMInstanceDetailVO detailAddress = vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_ADDRESS);
|
||||||
UserVmDetailVO detailPort = userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT);
|
VMInstanceDetailVO detailPort = vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.KVM_VNC_PORT);
|
||||||
if (detailAddress != null && detailPort != null) {
|
if (detailAddress != null && detailPort != null) {
|
||||||
portInfo = new Pair<>(detailAddress.getValue(), Integer.valueOf(detailPort.getValue()));
|
portInfo = new Pair<>(detailAddress.getValue(), Integer.valueOf(detailPort.getValue()));
|
||||||
} else {
|
} else {
|
||||||
@ -372,7 +372,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
|
|||||||
}
|
}
|
||||||
|
|
||||||
String sid = vm.getVncPassword();
|
String sid = vm.getVncPassword();
|
||||||
UserVmDetailVO details = userVmDetailsDao.findDetail(vm.getId(), VmDetailConstants.KEYBOARD);
|
VMInstanceDetailVO details = vmInstanceDetailsDao.findDetail(vm.getId(), VmDetailConstants.KEYBOARD);
|
||||||
|
|
||||||
String tag = vm.getUuid();
|
String tag = vm.getUuid();
|
||||||
String displayName = vm.getHostName();
|
String displayName = vm.getHostName();
|
||||||
@ -416,7 +416,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String generateConsoleAccessUrl(String rootUrl, ConsoleProxyClientParam param, String token, int vncPort,
|
private String generateConsoleAccessUrl(String rootUrl, ConsoleProxyClientParam param, String token, int vncPort,
|
||||||
VirtualMachine vm, HostVO hostVo, UserVmDetailVO details) {
|
VirtualMachine vm, HostVO hostVo, VMInstanceDetailVO details) {
|
||||||
StringBuilder sb = new StringBuilder(rootUrl);
|
StringBuilder sb = new StringBuilder(rootUrl);
|
||||||
if (param.getHypervHost() != null || !ConsoleProxyManager.NoVncConsoleDefault.value()) {
|
if (param.getHypervHost() != null || !ConsoleProxyManager.NoVncConsoleDefault.value()) {
|
||||||
sb.append("/ajax?token=" + token);
|
sb.append("/ajax?token=" + token);
|
||||||
@ -450,7 +450,7 @@ public class ConsoleAccessManagerImpl extends ManagerBase implements ConsoleAcce
|
|||||||
int port, String sid, String tag, String ticket,
|
int port, String sid, String tag, String ticket,
|
||||||
String sessionUuid, String addr,
|
String sessionUuid, String addr,
|
||||||
String extraSecurityToken, VirtualMachine vm,
|
String extraSecurityToken, VirtualMachine vm,
|
||||||
HostVO hostVo, UserVmDetailVO details,
|
HostVO hostVo, VMInstanceDetailVO details,
|
||||||
Pair<String, Integer> portInfo, String host,
|
Pair<String, Integer> portInfo, String host,
|
||||||
String displayName) {
|
String displayName) {
|
||||||
ConsoleProxyClientParam param = new ConsoleProxyClientParam();
|
ConsoleProxyClientParam param = new ConsoleProxyClientParam();
|
||||||
|
|||||||
@ -93,7 +93,7 @@ import com.cloud.vm.dao.NicDao;
|
|||||||
import com.cloud.vm.dao.NicDetailsDao;
|
import com.cloud.vm.dao.NicDetailsDao;
|
||||||
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
||||||
import com.cloud.vm.dao.NicSecondaryIpDao;
|
import com.cloud.vm.dao.NicSecondaryIpDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||||
@ -125,7 +125,7 @@ public class ResourceCleanupServiceImpl extends ManagerBase implements ResourceC
|
|||||||
@Inject
|
@Inject
|
||||||
InlineLoadBalancerNicMapDao inlineLoadBalancerNicMapDao;
|
InlineLoadBalancerNicMapDao inlineLoadBalancerNicMapDao;
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao userVmDetailsDao;
|
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
VMSnapshotDao vmSnapshotDao;
|
VMSnapshotDao vmSnapshotDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -269,7 +269,7 @@ public class ResourceCleanupServiceImpl extends ManagerBase implements ResourceC
|
|||||||
}
|
}
|
||||||
purgeVMVolumes(vmIds, batchSize);
|
purgeVMVolumes(vmIds, batchSize);
|
||||||
purgeVMNics(vmIds, batchSize);
|
purgeVMNics(vmIds, batchSize);
|
||||||
userVmDetailsDao.batchExpungeForResources(vmIds, batchSize);
|
vmInstanceDetailsDao.batchExpungeForResources(vmIds, batchSize);
|
||||||
purgeVMSnapshots(vmIds, batchSize);
|
purgeVMSnapshots(vmIds, batchSize);
|
||||||
autoScaleVmGroupVmMapDao.expungeByVmList(vmIds, batchSize);
|
autoScaleVmGroupVmMapDao.expungeByVmList(vmIds, batchSize);
|
||||||
commandExecLogDao.expungeByVmList(vmIds, batchSize);
|
commandExecLogDao.expungeByVmList(vmIds, batchSize);
|
||||||
|
|||||||
@ -139,7 +139,7 @@ import com.cloud.vm.VirtualMachineProfileImpl;
|
|||||||
import com.cloud.vm.VmDetailConstants;
|
import com.cloud.vm.VmDetailConstants;
|
||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import org.apache.cloudstack.acl.ControlledEntity;
|
import org.apache.cloudstack.acl.ControlledEntity;
|
||||||
@ -223,7 +223,7 @@ public class UnmanagedVMsManagerImpl implements UnmanagedVMsManager {
|
|||||||
@Inject
|
@Inject
|
||||||
private ResourceLimitService resourceLimitService;
|
private ResourceLimitService resourceLimitService;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmManager userVmManager;
|
private UserVmManager userVmManager;
|
||||||
@Inject
|
@Inject
|
||||||
|
|||||||
@ -18,23 +18,21 @@
|
|||||||
|
|
||||||
package org.apache.cloudstack.vm.lease;
|
package org.apache.cloudstack.vm.lease;
|
||||||
|
|
||||||
import com.cloud.api.ApiGsonHelper;
|
import java.util.ArrayList;
|
||||||
import com.cloud.api.query.dao.UserVmJoinDao;
|
import java.util.Calendar;
|
||||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
import java.util.Date;
|
||||||
import com.cloud.event.ActionEventUtils;
|
import java.util.HashMap;
|
||||||
import com.cloud.event.EventTypes;
|
import java.util.HashSet;
|
||||||
import com.cloud.user.Account;
|
import java.util.List;
|
||||||
import com.cloud.user.User;
|
import java.util.Map;
|
||||||
import com.cloud.utils.DateUtil;
|
import java.util.Set;
|
||||||
import com.cloud.utils.Pair;
|
import java.util.concurrent.Executors;
|
||||||
import com.cloud.utils.component.ComponentContext;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import com.cloud.utils.component.ManagerBase;
|
import java.util.concurrent.TimeUnit;
|
||||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
|
||||||
import com.cloud.utils.db.GlobalLock;
|
import javax.inject.Inject;
|
||||||
import com.cloud.vm.VmDetailConstants;
|
import javax.naming.ConfigurationException;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
|
||||||
import com.google.gson.Gson;
|
|
||||||
import com.google.gson.reflect.TypeToken;
|
|
||||||
import org.apache.cloudstack.api.ApiCommandResourceType;
|
import org.apache.cloudstack.api.ApiCommandResourceType;
|
||||||
import org.apache.cloudstack.api.ApiConstants;
|
import org.apache.cloudstack.api.ApiConstants;
|
||||||
import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
|
||||||
@ -52,26 +50,29 @@ import org.apache.cloudstack.managed.context.ManagedContextRunnable;
|
|||||||
import org.apache.commons.lang3.EnumUtils;
|
import org.apache.commons.lang3.EnumUtils;
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
import org.apache.commons.lang3.time.DateUtils;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import com.cloud.api.ApiGsonHelper;
|
||||||
import javax.naming.ConfigurationException;
|
import com.cloud.api.query.dao.UserVmJoinDao;
|
||||||
|
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||||
import java.util.ArrayList;
|
import com.cloud.event.ActionEventUtils;
|
||||||
import java.util.Calendar;
|
import com.cloud.event.EventTypes;
|
||||||
import java.util.Date;
|
import com.cloud.user.Account;
|
||||||
import java.util.HashMap;
|
import com.cloud.user.User;
|
||||||
import java.util.HashSet;
|
import com.cloud.utils.DateUtil;
|
||||||
import java.util.List;
|
import com.cloud.utils.Pair;
|
||||||
import java.util.Map;
|
import com.cloud.utils.component.ComponentContext;
|
||||||
import java.util.Set;
|
import com.cloud.utils.component.ManagerBase;
|
||||||
import java.util.concurrent.Executors;
|
import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import com.cloud.utils.db.GlobalLock;
|
||||||
import java.util.concurrent.TimeUnit;
|
import com.cloud.vm.VmDetailConstants;
|
||||||
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
|
||||||
public class VMLeaseManagerImpl extends ManagerBase implements VMLeaseManager, Configurable {
|
public class VMLeaseManagerImpl extends ManagerBase implements VMLeaseManager, Configurable {
|
||||||
private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 5; // 5 seconds
|
private static final int ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_COOPERATION = 5; // 5 seconds
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private UserVmJoinDao userVmJoinDao;
|
private UserVmJoinDao userVmJoinDao;
|
||||||
@ -131,7 +132,7 @@ public class VMLeaseManagerImpl extends ManagerBase implements VMLeaseManager, C
|
|||||||
List<UserVmJoinVO> leaseExpiringForInstances = userVmJoinDao.listLeaseInstancesExpiringInDays(-1);
|
List<UserVmJoinVO> leaseExpiringForInstances = userVmJoinDao.listLeaseInstancesExpiringInDays(-1);
|
||||||
logger.debug("Total instances found for lease cancellation: {}", leaseExpiringForInstances.size());
|
logger.debug("Total instances found for lease cancellation: {}", leaseExpiringForInstances.size());
|
||||||
for (UserVmJoinVO instance : leaseExpiringForInstances) {
|
for (UserVmJoinVO instance : leaseExpiringForInstances) {
|
||||||
userVmDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION,
|
vmInstanceDetailsDao.addDetail(instance.getId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION,
|
||||||
LeaseActionExecution.CANCELLED.name(), false);
|
LeaseActionExecution.CANCELLED.name(), false);
|
||||||
String leaseCancellationMsg = String.format("Lease is cancelled for the instance: %s (id: %s) ", instance.getName(), instance.getUuid());
|
String leaseCancellationMsg = String.format("Lease is cancelled for the instance: %s (id: %s) ", instance.getName(), instance.getUuid());
|
||||||
ActionEventUtils.onActionEvent(instance.getUserId(), instance.getAccountId(), instance.getDomainId(),
|
ActionEventUtils.onActionEvent(instance.getUserId(), instance.getAccountId(), instance.getDomainId(),
|
||||||
@ -370,7 +371,7 @@ public class VMLeaseManagerImpl extends ManagerBase implements VMLeaseManager, C
|
|||||||
|
|
||||||
if (VMLeaseManager.class.getSimpleName().equals(params.get(JOB_INITIATOR))) {
|
if (VMLeaseManager.class.getSimpleName().equals(params.get(JOB_INITIATOR))) {
|
||||||
logger.debug("Lease expiry job: {} successfully executed for instanceId: {}", asyncExpiryJob.getId(), asyncExpiryJob.getInstanceId());
|
logger.debug("Lease expiry job: {} successfully executed for instanceId: {}", asyncExpiryJob.getId(), asyncExpiryJob.getInstanceId());
|
||||||
userVmDetailsDao.addDetail(asyncExpiryJob.getInstanceId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION, LeaseActionExecution.DONE.name(), false);
|
vmInstanceDetailsDao.addDetail(asyncExpiryJob.getInstanceId(), VmDetailConstants.INSTANCE_LEASE_EXECUTION, LeaseActionExecution.DONE.name(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (final Exception e) {
|
} catch (final Exception e) {
|
||||||
|
|||||||
@ -49,7 +49,7 @@ import com.cloud.user.dao.UserDao;
|
|||||||
import com.cloud.user.dao.UserStatisticsDao;
|
import com.cloud.user.dao.UserStatisticsDao;
|
||||||
import com.cloud.utils.db.SearchBuilder;
|
import com.cloud.utils.db.SearchBuilder;
|
||||||
import com.cloud.utils.db.SearchCriteria;
|
import com.cloud.utils.db.SearchCriteria;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
|
||||||
@RunWith(MockitoJUnitRunner.class)
|
@RunWith(MockitoJUnitRunner.class)
|
||||||
public class UserVmJoinDaoImplTest extends GenericDaoBaseWithTagInformationBaseTest<UserVmJoinVO, UserVmResponse> {
|
public class UserVmJoinDaoImplTest extends GenericDaoBaseWithTagInformationBaseTest<UserVmJoinVO, UserVmResponse> {
|
||||||
@ -67,7 +67,7 @@ public class UserVmJoinDaoImplTest extends GenericDaoBaseWithTagInformationBaseT
|
|||||||
private AccountManager accountMgr;
|
private AccountManager accountMgr;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private UserVmDetailsDao _userVmDetailsDao;
|
private VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private UserStatisticsDao userStatsDao;
|
private UserStatisticsDao userStatsDao;
|
||||||
|
|||||||
@ -79,7 +79,7 @@ import com.cloud.vm.VirtualMachine.Type;
|
|||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import org.apache.cloudstack.affinity.AffinityGroupProcessor;
|
import org.apache.cloudstack.affinity.AffinityGroupProcessor;
|
||||||
import org.apache.cloudstack.affinity.AffinityGroupService;
|
import org.apache.cloudstack.affinity.AffinityGroupService;
|
||||||
@ -182,7 +182,7 @@ public class DeploymentPlanningManagerImplTest {
|
|||||||
DedicatedResourceDao _dedicatedDao;
|
DedicatedResourceDao _dedicatedDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao vmDetailsDao;
|
VMInstanceDetailsDao vmDetailsDao;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
VMTemplateDao templateDao;
|
VMTemplateDao templateDao;
|
||||||
@ -1114,8 +1114,8 @@ public class DeploymentPlanningManagerImplTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public UserVmDetailsDao userVmDetailsDao() {
|
public VMInstanceDetailsDao vmInstanceDetailsDao() {
|
||||||
return Mockito.mock(UserVmDetailsDao.class);
|
return Mockito.mock(VMInstanceDetailsDao.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|||||||
@ -22,12 +22,13 @@ import com.cloud.host.dao.HostDao;
|
|||||||
import com.cloud.offering.ServiceOffering;
|
import com.cloud.offering.ServiceOffering;
|
||||||
import com.cloud.service.ServiceOfferingDetailsVO;
|
import com.cloud.service.ServiceOfferingDetailsVO;
|
||||||
import com.cloud.service.dao.ServiceOfferingDetailsDao;
|
import com.cloud.service.dao.ServiceOfferingDetailsDao;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@ -54,7 +55,7 @@ public class DpdkHelperImplTest {
|
|||||||
@Mock
|
@Mock
|
||||||
VMInstanceDao vmInstanceDao;
|
VMInstanceDao vmInstanceDao;
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailsDao userVmDetailsDao;
|
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
|
|
||||||
@Spy
|
@Spy
|
||||||
@InjectMocks
|
@InjectMocks
|
||||||
@ -73,9 +74,9 @@ public class DpdkHelperImplTest {
|
|||||||
@Mock
|
@Mock
|
||||||
ServiceOffering serviceOffering;
|
ServiceOffering serviceOffering;
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailVO dpdkNumaVmDetail;
|
VMInstanceDetailVO dpdkNumaVmDetail;
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailVO dpdkHugePagesVmDetail;
|
VMInstanceDetailVO dpdkHugePagesVmDetail;
|
||||||
@Mock
|
@Mock
|
||||||
HostVO hostVO;
|
HostVO hostVO;
|
||||||
@Mock
|
@Mock
|
||||||
@ -135,7 +136,7 @@ public class DpdkHelperImplTest {
|
|||||||
Mockito.lenient().when(dpdkNumaVmDetail.getValue()).thenReturn(dpdkNumaConf);
|
Mockito.lenient().when(dpdkNumaVmDetail.getValue()).thenReturn(dpdkNumaConf);
|
||||||
Mockito.when(dpdkHugePagesVmDetail.getName()).thenReturn(DpdkHelper.DPDK_HUGE_PAGES);
|
Mockito.when(dpdkHugePagesVmDetail.getName()).thenReturn(DpdkHelper.DPDK_HUGE_PAGES);
|
||||||
Mockito.lenient().when(dpdkHugePagesVmDetail.getValue()).thenReturn(dpdkHugePagesConf);
|
Mockito.lenient().when(dpdkHugePagesVmDetail.getValue()).thenReturn(dpdkHugePagesConf);
|
||||||
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(Arrays.asList(dpdkNumaVmDetail, dpdkHugePagesVmDetail));
|
Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(Arrays.asList(dpdkNumaVmDetail, dpdkHugePagesVmDetail));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -202,7 +203,7 @@ public class DpdkHelperImplTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsVMDpdkEnabledGuestTypeMissingConfigurationOnDetails() {
|
public void testIsVMDpdkEnabledGuestTypeMissingConfigurationOnDetails() {
|
||||||
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(Arrays.asList(dpdkNumaVmDetail));
|
Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(Arrays.asList(dpdkNumaVmDetail));
|
||||||
Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(new ArrayList<>());
|
Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(new ArrayList<>());
|
||||||
Assert.assertFalse(dpdkHelper.isVMDpdkEnabled(vmId));
|
Assert.assertFalse(dpdkHelper.isVMDpdkEnabled(vmId));
|
||||||
Mockito.verify(dpdkHelper, Mockito.never()).isHostDpdkEnabled(hostId);
|
Mockito.verify(dpdkHelper, Mockito.never()).isHostDpdkEnabled(hostId);
|
||||||
@ -210,7 +211,7 @@ public class DpdkHelperImplTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsVMDpdkEnabledGuestTypeEmptyDetails() {
|
public void testIsVMDpdkEnabledGuestTypeEmptyDetails() {
|
||||||
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(new ArrayList<>());
|
Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(new ArrayList<>());
|
||||||
Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(new ArrayList<>());
|
Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(new ArrayList<>());
|
||||||
Assert.assertFalse(dpdkHelper.isVMDpdkEnabled(vmId));
|
Assert.assertFalse(dpdkHelper.isVMDpdkEnabled(vmId));
|
||||||
Mockito.verify(dpdkHelper, Mockito.never()).isHostDpdkEnabled(hostId);
|
Mockito.verify(dpdkHelper, Mockito.never()).isHostDpdkEnabled(hostId);
|
||||||
@ -223,21 +224,21 @@ public class DpdkHelperImplTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsVMDpdkEnabledGuestTypeMissingConfigurationOnVmDetails() {
|
public void testIsVMDpdkEnabledGuestTypeMissingConfigurationOnVmDetails() {
|
||||||
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(Collections.singletonList(dpdkNumaVmDetail));
|
Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(Collections.singletonList(dpdkNumaVmDetail));
|
||||||
Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk");
|
Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk");
|
||||||
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
|
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsVMDpdkEnabledGuestTypeEmptyVmDetails() {
|
public void testIsVMDpdkEnabledGuestTypeEmptyVmDetails() {
|
||||||
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(new ArrayList<>());
|
Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(new ArrayList<>());
|
||||||
Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk");
|
Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk");
|
||||||
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
|
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsVMDpdkEnabledGuestTypeMixedConfigurationOnDetails() {
|
public void testIsVMDpdkEnabledGuestTypeMixedConfigurationOnDetails() {
|
||||||
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(Collections.singletonList(dpdkNumaVmDetail));
|
Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(Collections.singletonList(dpdkNumaVmDetail));
|
||||||
Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(Collections.singletonList(dpdkHugePagesDetailVO));
|
Mockito.when(serviceOfferingDetailsDao.listDetails(offeringId)).thenReturn(Collections.singletonList(dpdkHugePagesDetailVO));
|
||||||
Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk");
|
Mockito.when(hostVO.getCapabilities()).thenReturn(hostCapabilities + ",dpdk");
|
||||||
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
|
Assert.assertTrue(dpdkHelper.isVMDpdkEnabled(vmId));
|
||||||
|
|||||||
@ -51,13 +51,13 @@ import com.cloud.utils.fsm.StateMachine2;
|
|||||||
import com.cloud.utils.net.Ip;
|
import com.cloud.utils.net.Ip;
|
||||||
import com.cloud.vm.Nic;
|
import com.cloud.vm.Nic;
|
||||||
import com.cloud.vm.NicProfile;
|
import com.cloud.vm.NicProfile;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.VirtualMachineProfileImpl;
|
import com.cloud.vm.VirtualMachineProfileImpl;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import org.apache.cloudstack.context.CallContext;
|
import org.apache.cloudstack.context.CallContext;
|
||||||
@ -127,7 +127,7 @@ public class ConfigDriveNetworkElementTest {
|
|||||||
@Mock private ServiceOfferingDao _serviceOfferingDao;
|
@Mock private ServiceOfferingDao _serviceOfferingDao;
|
||||||
@Mock private UserVmDao _vmDao;
|
@Mock private UserVmDao _vmDao;
|
||||||
@Mock private VMInstanceDao _vmInstanceDao;
|
@Mock private VMInstanceDao _vmInstanceDao;
|
||||||
@Mock private UserVmDetailsDao _userVmDetailsDao;
|
@Mock private VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||||
@Mock private NetworkDao _networkDao;
|
@Mock private NetworkDao _networkDao;
|
||||||
@Mock private NetworkServiceMapDao _ntwkSrvcDao;
|
@Mock private NetworkServiceMapDao _ntwkSrvcDao;
|
||||||
@Mock private IPAddressDao _ipAddressDao;
|
@Mock private IPAddressDao _ipAddressDao;
|
||||||
@ -269,12 +269,12 @@ public class ConfigDriveNetworkElementTest {
|
|||||||
Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount();
|
Mockito.doReturn(Mockito.mock(Account.class)).when(callContextMock).getCallingAccount();
|
||||||
|
|
||||||
final HandleConfigDriveIsoAnswer answer = mock(HandleConfigDriveIsoAnswer.class);
|
final HandleConfigDriveIsoAnswer answer = mock(HandleConfigDriveIsoAnswer.class);
|
||||||
final UserVmDetailVO userVmDetailVO = mock(UserVmDetailVO.class);
|
final VMInstanceDetailVO vmInstanceDetailVO = mock(VMInstanceDetailVO.class);
|
||||||
when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest);
|
when(network.getTrafficType()).thenReturn(Networks.TrafficType.Guest);
|
||||||
when(virtualMachine.getUuid()).thenReturn("vm-uuid");
|
when(virtualMachine.getUuid()).thenReturn("vm-uuid");
|
||||||
when(userVmDetailVO.getValue()).thenReturn(PUBLIC_KEY);
|
when(vmInstanceDetailVO.getValue()).thenReturn(PUBLIC_KEY);
|
||||||
when(nicp.getIPv4Address()).thenReturn("192.168.111.111");
|
when(nicp.getIPv4Address()).thenReturn("192.168.111.111");
|
||||||
when(_userVmDetailsDao.findDetail(Mockito.anyLong(), Mockito.anyString())).thenReturn(userVmDetailVO);
|
when(_vmInstanceDetailsDao.findDetail(Mockito.anyLong(), Mockito.anyString())).thenReturn(vmInstanceDetailVO);
|
||||||
when(_ipAddressDao.findByAssociatedVmId(VMID)).thenReturn(publicIp);
|
when(_ipAddressDao.findByAssociatedVmId(VMID)).thenReturn(publicIp);
|
||||||
when(publicIp.getAddress()).thenReturn(new Ip("7.7.7.7"));
|
when(publicIp.getAddress()).thenReturn(new Ip("7.7.7.7"));
|
||||||
when(_hostDao.findById(virtualMachine.getHostId())).thenReturn(hostVO);
|
when(_hostDao.findById(virtualMachine.getHostId())).thenReturn(hostVO);
|
||||||
|
|||||||
@ -95,8 +95,9 @@ import com.cloud.vm.dao.DomainRouterDao;
|
|||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.NicIpAliasDao;
|
import com.cloud.vm.dao.NicIpAliasDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
||||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.network.BgpPeerVO;
|
import org.apache.cloudstack.network.BgpPeerVO;
|
||||||
@ -166,7 +167,7 @@ public class VirtualRouterElementTest {
|
|||||||
@Mock private UserVmDao _userVmDao;
|
@Mock private UserVmDao _userVmDao;
|
||||||
@Mock private VlanDao _vlanDao;
|
@Mock private VlanDao _vlanDao;
|
||||||
@Mock private VMInstanceDao _vmDao;
|
@Mock private VMInstanceDao _vmDao;
|
||||||
@Mock private UserVmDetailsDao _vmDetailsDao;
|
@Mock private VMInstanceDetailsDao _vmDetailsDao;
|
||||||
@Mock private VolumeDao _volumeDao;
|
@Mock private VolumeDao _volumeDao;
|
||||||
@Mock private RemoteAccessVpnDao _vpnDao;
|
@Mock private RemoteAccessVpnDao _vpnDao;
|
||||||
@Mock private VpnUserDao _vpnUsersDao;
|
@Mock private VpnUserDao _vpnUsersDao;
|
||||||
|
|||||||
@ -74,7 +74,7 @@ import com.cloud.vm.dao.DomainRouterDao;
|
|||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.NicIpAliasDao;
|
import com.cloud.vm.dao.NicIpAliasDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
|
||||||
import org.apache.cloudstack.network.BgpPeer;
|
import org.apache.cloudstack.network.BgpPeer;
|
||||||
@ -202,7 +202,7 @@ public class VirtualNetworkApplianceManagerImplTest {
|
|||||||
private VMInstanceDao _vmDao;
|
private VMInstanceDao _vmDao;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private UserVmDetailsDao _vmDetailsDao;
|
private VMInstanceDetailsDao _vmDetailsDao;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private VolumeDao _volumeDao;
|
private VolumeDao _volumeDao;
|
||||||
|
|||||||
@ -50,7 +50,7 @@ import com.cloud.vm.UserVmManager;
|
|||||||
import com.cloud.vm.VirtualMachineManager;
|
import com.cloud.vm.VirtualMachineManager;
|
||||||
import com.cloud.vm.dao.NicDaoImpl;
|
import com.cloud.vm.dao.NicDaoImpl;
|
||||||
import com.cloud.vm.dao.UserVmDaoImpl;
|
import com.cloud.vm.dao.UserVmDaoImpl;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDaoImpl;
|
import com.cloud.vm.dao.VMInstanceDetailsDaoImpl;
|
||||||
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
||||||
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
||||||
import org.apache.cloudstack.framework.config.dao.ConfigurationDaoImpl;
|
import org.apache.cloudstack.framework.config.dao.ConfigurationDaoImpl;
|
||||||
@ -74,7 +74,7 @@ import java.io.IOException;
|
|||||||
ConfigurationSubGroupDaoImpl.class, SecurityGroupWorkDaoImpl.class, VmRulesetLogDaoImpl.class, VMInstanceDaoImpl.class, DomainDaoImpl.class, UsageEventDaoImpl.class,
|
ConfigurationSubGroupDaoImpl.class, SecurityGroupWorkDaoImpl.class, VmRulesetLogDaoImpl.class, VMInstanceDaoImpl.class, DomainDaoImpl.class, UsageEventDaoImpl.class,
|
||||||
ResourceTagsDaoImpl.class, HostDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class,
|
ResourceTagsDaoImpl.class, HostDaoImpl.class, HostDetailsDaoImpl.class, HostTagsDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class,
|
||||||
DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class, HostTransferMapDaoImpl.class, SecurityGroupManagerImpl2.class, SecurityGroupDaoImpl.class,
|
DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class, HostTransferMapDaoImpl.class, SecurityGroupManagerImpl2.class, SecurityGroupDaoImpl.class,
|
||||||
SecurityGroupVMMapDaoImpl.class, UserVmDetailsDaoImpl.class, DataCenterIpAddressDaoImpl.class, DataCenterLinkLocalIpAddressDaoImpl.class,
|
SecurityGroupVMMapDaoImpl.class, VMInstanceDetailsDaoImpl.class, DataCenterIpAddressDaoImpl.class, DataCenterLinkLocalIpAddressDaoImpl.class,
|
||||||
DataCenterVnetDaoImpl.class, PodVlanDaoImpl.class, DataCenterDetailsDaoImpl.class, SecurityGroupRuleDaoImpl.class, NicDaoImpl.class,
|
DataCenterVnetDaoImpl.class, PodVlanDaoImpl.class, DataCenterDetailsDaoImpl.class, SecurityGroupRuleDaoImpl.class, NicDaoImpl.class,
|
||||||
SecurityGroupJoinDaoImpl.class},
|
SecurityGroupJoinDaoImpl.class},
|
||||||
includeFilters = {@Filter(value = Library.class, type = FilterType.CUSTOM)},
|
includeFilters = {@Filter(value = Library.class, type = FilterType.CUSTOM)},
|
||||||
|
|||||||
@ -50,7 +50,7 @@ import com.cloud.utils.ssh.SSHCmdHelper;
|
|||||||
import com.cloud.utils.ssh.SshException;
|
import com.cloud.utils.ssh.SshException;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.trilead.ssh2.Connection;
|
import com.trilead.ssh2.Connection;
|
||||||
import org.apache.cloudstack.api.command.admin.host.CancelHostAsDegradedCmd;
|
import org.apache.cloudstack.api.command.admin.host.CancelHostAsDegradedCmd;
|
||||||
@ -105,7 +105,7 @@ public class ResourceManagerImplTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private HighAvailabilityManager haManager;
|
private HighAvailabilityManager haManager;
|
||||||
@Mock
|
@Mock
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Mock
|
@Mock
|
||||||
private AgentManager agentManager;
|
private AgentManager agentManager;
|
||||||
@Mock
|
@Mock
|
||||||
@ -341,10 +341,10 @@ public class ResourceManagerImplTest {
|
|||||||
verify(resourceManager).setKVMVncAccess(hostId, vms);
|
verify(resourceManager).setKVMVncAccess(hostId, vms);
|
||||||
verify(agentManager, times(vms.size())).easySend(eq(hostId), any(GetVncPortCommand.class));
|
verify(agentManager, times(vms.size())).easySend(eq(hostId), any(GetVncPortCommand.class));
|
||||||
verify(agentManager).pullAgentToMaintenance(hostId);
|
verify(agentManager).pullAgentToMaintenance(hostId);
|
||||||
verify(userVmDetailsDao).addDetail(eq(vm1Id), eq("kvm.vnc.address"), eq(vm1VncAddress), anyBoolean());
|
verify(vmInstanceDetailsDao).addDetail(eq(vm1Id), eq("kvm.vnc.address"), eq(vm1VncAddress), anyBoolean());
|
||||||
verify(userVmDetailsDao).addDetail(eq(vm1Id), eq("kvm.vnc.port"), eq(String.valueOf(vm1VncPort)), anyBoolean());
|
verify(vmInstanceDetailsDao).addDetail(eq(vm1Id), eq("kvm.vnc.port"), eq(String.valueOf(vm1VncPort)), anyBoolean());
|
||||||
verify(userVmDetailsDao).addDetail(eq(vm2Id), eq("kvm.vnc.address"), eq(vm2VncAddress), anyBoolean());
|
verify(vmInstanceDetailsDao).addDetail(eq(vm2Id), eq("kvm.vnc.address"), eq(vm2VncAddress), anyBoolean());
|
||||||
verify(userVmDetailsDao).addDetail(eq(vm2Id), eq("kvm.vnc.port"), eq(String.valueOf(vm2VncPort)), anyBoolean());
|
verify(vmInstanceDetailsDao).addDetail(eq(vm2Id), eq("kvm.vnc.port"), eq(String.valueOf(vm2VncPort)), anyBoolean());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = CloudRuntimeException.class)
|
@Test(expected = CloudRuntimeException.class)
|
||||||
|
|||||||
@ -27,10 +27,10 @@ import com.cloud.service.ServiceOfferingVO;
|
|||||||
import com.cloud.service.dao.ServiceOfferingDao;
|
import com.cloud.service.dao.ServiceOfferingDao;
|
||||||
import com.cloud.utils.Ternary;
|
import com.cloud.utils.Ternary;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.VMInstanceVO;
|
import com.cloud.vm.VMInstanceVO;
|
||||||
import com.cloud.vm.VmDetailConstants;
|
import com.cloud.vm.VmDetailConstants;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
@ -67,7 +67,7 @@ public class RollingMaintenanceManagerImplTest {
|
|||||||
@Mock
|
@Mock
|
||||||
ServiceOfferingDao serviceOfferingDao;
|
ServiceOfferingDao serviceOfferingDao;
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailsDao userVmDetailsDao;
|
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
|
|
||||||
@Spy
|
@Spy
|
||||||
@InjectMocks
|
@InjectMocks
|
||||||
@ -213,18 +213,18 @@ public class RollingMaintenanceManagerImplTest {
|
|||||||
Mockito.when(serviceOffering.getSpeed()).thenReturn(null);
|
Mockito.when(serviceOffering.getSpeed()).thenReturn(null);
|
||||||
Mockito.when(serviceOffering.getRamSize()).thenReturn(null);
|
Mockito.when(serviceOffering.getRamSize()).thenReturn(null);
|
||||||
|
|
||||||
List<UserVmDetailVO> vmDetails = new ArrayList<>();
|
List<VMInstanceDetailVO> vmDetails = new ArrayList<>();
|
||||||
UserVmDetailVO cpuDetail = new UserVmDetailVO(1L, VmDetailConstants.CPU_NUMBER, "2", false);
|
VMInstanceDetailVO cpuDetail = new VMInstanceDetailVO(1L, VmDetailConstants.CPU_NUMBER, "2", false);
|
||||||
vmDetails.add(cpuDetail);
|
vmDetails.add(cpuDetail);
|
||||||
UserVmDetailVO speedDetail = new UserVmDetailVO(1L, VmDetailConstants.CPU_SPEED, "1000", false);
|
VMInstanceDetailVO speedDetail = new VMInstanceDetailVO(1L, VmDetailConstants.CPU_SPEED, "1000", false);
|
||||||
vmDetails.add(speedDetail);
|
vmDetails.add(speedDetail);
|
||||||
UserVmDetailVO ramSizeDetail = new UserVmDetailVO(1L, VmDetailConstants.MEMORY, "1024", false);
|
VMInstanceDetailVO ramSizeDetail = new VMInstanceDetailVO(1L, VmDetailConstants.MEMORY, "1024", false);
|
||||||
vmDetails.add(ramSizeDetail);
|
vmDetails.add(ramSizeDetail);
|
||||||
|
|
||||||
Mockito.when(vm.getId()).thenReturn(1L);
|
Mockito.when(vm.getId()).thenReturn(1L);
|
||||||
Mockito.when(vm.getServiceOfferingId()).thenReturn(1L);
|
Mockito.when(vm.getServiceOfferingId()).thenReturn(1L);
|
||||||
Mockito.when(serviceOfferingDao.findById(1L)).thenReturn(serviceOffering);
|
Mockito.when(serviceOfferingDao.findById(1L)).thenReturn(serviceOffering);
|
||||||
Mockito.when(userVmDetailsDao.listDetails(1L)).thenReturn(vmDetails);
|
Mockito.when(vmInstanceDetailsDao.listDetails(1L)).thenReturn(vmDetails);
|
||||||
|
|
||||||
Ternary<Integer, Integer, Integer> cpuSpeedAndRamSize = manager.getComputeResourcesCpuSpeedAndRamSize(vm);
|
Ternary<Integer, Integer, Integer> cpuSpeedAndRamSize = manager.getComputeResourcesCpuSpeedAndRamSize(vm);
|
||||||
|
|
||||||
|
|||||||
@ -97,10 +97,10 @@ import com.cloud.utils.db.Filter;
|
|||||||
import com.cloud.utils.db.SearchBuilder;
|
import com.cloud.utils.db.SearchBuilder;
|
||||||
import com.cloud.utils.db.SearchCriteria;
|
import com.cloud.utils.db.SearchCriteria;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
|
||||||
@RunWith(MockitoJUnitRunner.class)
|
@RunWith(MockitoJUnitRunner.class)
|
||||||
public class ManagementServerImplTest {
|
public class ManagementServerImplTest {
|
||||||
@ -145,7 +145,7 @@ public class ManagementServerImplTest {
|
|||||||
UserDataManager userDataManager;
|
UserDataManager userDataManager;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailsDao userVmDetailsDao;
|
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
HostDetailsDao hostDetailsDao;
|
HostDetailsDao hostDetailsDao;
|
||||||
@ -585,10 +585,10 @@ public class ManagementServerImplTest {
|
|||||||
UserVmVO vm = Mockito.mock(UserVmVO.class);
|
UserVmVO vm = Mockito.mock(UserVmVO.class);
|
||||||
Mockito.when(vm.getId()).thenReturn(1L);
|
Mockito.when(vm.getId()).thenReturn(1L);
|
||||||
if (uefiValue == null) {
|
if (uefiValue == null) {
|
||||||
Mockito.when(userVmDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString())).thenReturn(null);
|
Mockito.when(vmInstanceDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString())).thenReturn(null);
|
||||||
} else {
|
} else {
|
||||||
UserVmDetailVO detail = new UserVmDetailVO(vm.getId(), ApiConstants.BootType.UEFI.toString(), uefiValue, true);
|
VMInstanceDetailVO detail = new VMInstanceDetailVO(vm.getId(), ApiConstants.BootType.UEFI.toString(), uefiValue, true);
|
||||||
Mockito.when(userVmDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString())).thenReturn(detail);
|
Mockito.when(vmInstanceDetailsDao.findDetail(vm.getId(), ApiConstants.BootType.UEFI.toString())).thenReturn(detail);
|
||||||
Mockito.when(hostDetailsDao.findByName(Host.HOST_UEFI_ENABLE)).thenReturn(new ArrayList<>(List.of(new DetailVO(1l, Host.HOST_UEFI_ENABLE, "true"), new DetailVO(2l, Host.HOST_UEFI_ENABLE, "false"))));
|
Mockito.when(hostDetailsDao.findByName(Host.HOST_UEFI_ENABLE)).thenReturn(new ArrayList<>(List.of(new DetailVO(1l, Host.HOST_UEFI_ENABLE, "true"), new DetailVO(2l, Host.HOST_UEFI_ENABLE, "false"))));
|
||||||
}
|
}
|
||||||
return vm;
|
return vm;
|
||||||
|
|||||||
@ -98,7 +98,7 @@ import com.cloud.user.AccountVO;
|
|||||||
import com.cloud.utils.Pair;
|
import com.cloud.utils.Pair;
|
||||||
import com.cloud.utils.component.ComponentContext;
|
import com.cloud.utils.component.ComponentContext;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
@RunWith(SpringJUnit4ClassRunner.class)
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
@ -116,7 +116,7 @@ public class FirstFitPlannerTest {
|
|||||||
@Inject
|
@Inject
|
||||||
HostDetailsDao hostDetailsDao;
|
HostDetailsDao hostDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao vmDetailsDao;
|
VMInstanceDetailsDao vmDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
ConfigurationDao configDao;
|
ConfigurationDao configDao;
|
||||||
@Inject
|
@Inject
|
||||||
@ -476,8 +476,8 @@ public class FirstFitPlannerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public UserVmDetailsDao userVmDetailsDao() {
|
public VMInstanceDetailsDao vmInstanceDetailsDao() {
|
||||||
return Mockito.mock(UserVmDetailsDao.class);
|
return Mockito.mock(VMInstanceDetailsDao.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
|||||||
@ -23,6 +23,8 @@ import static org.junit.Assert.assertThrows;
|
|||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assert.fail;
|
import static org.junit.Assert.fail;
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
|
import static org.mockito.ArgumentMatchers.anyList;
|
||||||
import static org.mockito.ArgumentMatchers.anyLong;
|
import static org.mockito.ArgumentMatchers.anyLong;
|
||||||
import static org.mockito.ArgumentMatchers.anyMap;
|
import static org.mockito.ArgumentMatchers.anyMap;
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
@ -34,14 +36,24 @@ import static org.mockito.Mockito.lenient;
|
|||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.ZoneOffset;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.LinkedHashSet;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import com.cloud.storage.StorageManager;
|
|
||||||
import org.apache.cloudstack.acl.ControlledEntity;
|
import org.apache.cloudstack.acl.ControlledEntity;
|
||||||
import org.apache.cloudstack.acl.SecurityChecker;
|
import org.apache.cloudstack.acl.SecurityChecker;
|
||||||
import org.apache.cloudstack.api.BaseCmd.HTTPMethod;
|
import org.apache.cloudstack.api.BaseCmd.HTTPMethod;
|
||||||
@ -56,10 +68,13 @@ import org.apache.cloudstack.context.CallContext;
|
|||||||
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService;
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore;
|
import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore;
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.Scope;
|
import org.apache.cloudstack.engine.subsystem.api.storage.Scope;
|
||||||
|
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
|
||||||
|
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
|
||||||
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
|
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
|
||||||
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
|
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
|
||||||
import org.apache.cloudstack.storage.template.VnfTemplateManager;
|
import org.apache.cloudstack.storage.template.VnfTemplateManager;
|
||||||
import org.apache.cloudstack.userdata.UserDataManager;
|
import org.apache.cloudstack.userdata.UserDataManager;
|
||||||
|
import org.apache.cloudstack.vm.lease.VMLeaseManager;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@ -67,6 +82,7 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.MockedStatic;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
import org.mockito.Spy;
|
import org.mockito.Spy;
|
||||||
import org.mockito.junit.MockitoJUnitRunner;
|
import org.mockito.junit.MockitoJUnitRunner;
|
||||||
@ -127,6 +143,7 @@ import com.cloud.storage.GuestOSVO;
|
|||||||
import com.cloud.storage.ScopeType;
|
import com.cloud.storage.ScopeType;
|
||||||
import com.cloud.storage.SnapshotVO;
|
import com.cloud.storage.SnapshotVO;
|
||||||
import com.cloud.storage.Storage;
|
import com.cloud.storage.Storage;
|
||||||
|
import com.cloud.storage.StorageManager;
|
||||||
import com.cloud.storage.VMTemplateVO;
|
import com.cloud.storage.VMTemplateVO;
|
||||||
import com.cloud.storage.Volume;
|
import com.cloud.storage.Volume;
|
||||||
import com.cloud.storage.VolumeApiService;
|
import com.cloud.storage.VolumeApiService;
|
||||||
@ -155,32 +172,10 @@ import com.cloud.utils.exception.CloudRuntimeException;
|
|||||||
import com.cloud.utils.exception.ExceptionProxyObject;
|
import com.cloud.utils.exception.ExceptionProxyObject;
|
||||||
import com.cloud.vm.dao.NicDao;
|
import com.cloud.vm.dao.NicDao;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||||
|
|
||||||
import org.apache.cloudstack.vm.lease.VMLeaseManager;
|
|
||||||
|
|
||||||
import org.mockito.MockedStatic;
|
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.time.ZoneOffset;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.TimeZone;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
|
||||||
import static org.mockito.ArgumentMatchers.anyList;
|
|
||||||
import static org.mockito.Mockito.verify;
|
|
||||||
|
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeDataFactory;
|
|
||||||
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
|
|
||||||
|
|
||||||
@RunWith(MockitoJUnitRunner.class)
|
@RunWith(MockitoJUnitRunner.class)
|
||||||
public class UserVmManagerImplTest {
|
public class UserVmManagerImplTest {
|
||||||
|
|
||||||
@ -231,7 +226,7 @@ public class UserVmManagerImplTest {
|
|||||||
private EntityManager entityManager;
|
private EntityManager entityManager;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private UserVmVO userVmVoMock;
|
private UserVmVO userVmVoMock;
|
||||||
@ -524,7 +519,7 @@ public class UserVmManagerImplTest {
|
|||||||
verifyMethodsThatAreAlwaysExecuted();
|
verifyMethodsThatAreAlwaysExecuted();
|
||||||
|
|
||||||
Mockito.verify(userVmManagerImpl).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
Mockito.verify(userVmManagerImpl).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
||||||
Mockito.verify(userVmDetailsDao, times(0)).removeDetail(anyLong(), anyString());
|
Mockito.verify(vmInstanceDetailsDao, times(0)).removeDetail(anyLong(), anyString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -541,8 +536,8 @@ public class UserVmManagerImplTest {
|
|||||||
|
|
||||||
userVmManagerImpl.updateVirtualMachine(updateVmCommand);
|
userVmManagerImpl.updateVirtualMachine(updateVmCommand);
|
||||||
verifyMethodsThatAreAlwaysExecuted();
|
verifyMethodsThatAreAlwaysExecuted();
|
||||||
Mockito.verify(userVmDetailsDao).removeDetail(vmId, "userdetail");
|
Mockito.verify(vmInstanceDetailsDao).removeDetail(vmId, "userdetail");
|
||||||
Mockito.verify(userVmDetailsDao, times(0)).removeDetail(vmId, "systemdetail");
|
Mockito.verify(vmInstanceDetailsDao, times(0)).removeDetail(vmId, "systemdetail");
|
||||||
Mockito.verify(userVmManagerImpl, times(0)).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
Mockito.verify(userVmManagerImpl, times(0)).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -567,13 +562,13 @@ public class UserVmManagerImplTest {
|
|||||||
prepareAndExecuteMethodDealingWithDetails(false, false);
|
prepareAndExecuteMethodDealingWithDetails(false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<UserVmDetailVO> prepareExistingDetails(Long vmId, String... existingDetailKeys) {
|
private List<VMInstanceDetailVO> prepareExistingDetails(Long vmId, String... existingDetailKeys) {
|
||||||
List<UserVmDetailVO> existingDetails = new ArrayList<>();
|
List<VMInstanceDetailVO> existingDetails = new ArrayList<>();
|
||||||
for (String detail : existingDetailKeys) {
|
for (String detail : existingDetailKeys) {
|
||||||
existingDetails.add(new UserVmDetailVO(vmId, detail, "foo", true));
|
existingDetails.add(new VMInstanceDetailVO(vmId, detail, "foo", true));
|
||||||
}
|
}
|
||||||
existingDetails.add(new UserVmDetailVO(vmId, "systemdetail", "bar", false));
|
existingDetails.add(new VMInstanceDetailVO(vmId, "systemdetail", "bar", false));
|
||||||
Mockito.when(userVmDetailsDao.listDetails(vmId)).thenReturn(existingDetails);
|
Mockito.when(vmInstanceDetailsDao.listDetails(vmId)).thenReturn(existingDetails);
|
||||||
return existingDetails;
|
return existingDetails;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -608,15 +603,15 @@ public class UserVmManagerImplTest {
|
|||||||
verifyMethodsThatAreAlwaysExecuted();
|
verifyMethodsThatAreAlwaysExecuted();
|
||||||
|
|
||||||
Mockito.verify(userVmVoMock, times(cleanUpDetails || isDetailsEmpty ? 0 : 1)).setDetails(details);
|
Mockito.verify(userVmVoMock, times(cleanUpDetails || isDetailsEmpty ? 0 : 1)).setDetails(details);
|
||||||
Mockito.verify(userVmDetailsDao, times(cleanUpDetails ? 1 : 0)).removeDetail(vmId, "existingdetail");
|
Mockito.verify(vmInstanceDetailsDao, times(cleanUpDetails ? 1 : 0)).removeDetail(vmId, "existingdetail");
|
||||||
Mockito.verify(userVmDetailsDao, times(0)).removeDetail(vmId, "systemdetail");
|
Mockito.verify(vmInstanceDetailsDao, times(0)).removeDetail(vmId, "systemdetail");
|
||||||
Mockito.verify(userVmDao, times(cleanUpDetails || isDetailsEmpty ? 0 : 1)).saveDetails(userVmVoMock);
|
Mockito.verify(userVmDao, times(cleanUpDetails || isDetailsEmpty ? 0 : 1)).saveDetails(userVmVoMock);
|
||||||
Mockito.verify(userVmManagerImpl, times(0)).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
Mockito.verify(userVmManagerImpl, times(0)).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void configureDoNothingForDetailsMethod() {
|
private void configureDoNothingForDetailsMethod() {
|
||||||
Mockito.lenient().doNothing().when(userVmManagerImpl).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
Mockito.lenient().doNothing().when(userVmManagerImpl).updateDisplayVmFlag(false, vmId, userVmVoMock);
|
||||||
Mockito.doNothing().when(userVmDetailsDao).removeDetail(anyLong(), anyString());
|
Mockito.doNothing().when(vmInstanceDetailsDao).removeDetail(anyLong(), anyString());
|
||||||
Mockito.doNothing().when(userVmDao).saveDetails(userVmVoMock);
|
Mockito.doNothing().when(userVmDao).saveDetails(userVmVoMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1724,9 +1719,9 @@ public class UserVmManagerImplTest {
|
|||||||
Mockito.when(diskOffering.getDiskSize()).thenReturn(8L * GiB_TO_BYTES);
|
Mockito.when(diskOffering.getDiskSize()).thenReturn(8L * GiB_TO_BYTES);
|
||||||
Map<String, String> details = new HashMap<>();
|
Map<String, String> details = new HashMap<>();
|
||||||
details.put(VmDetailConstants.ROOT_DISK_SIZE, "16");
|
details.put(VmDetailConstants.ROOT_DISK_SIZE, "16");
|
||||||
UserVmDetailVO vmRootDiskSizeDetail = Mockito.mock(UserVmDetailVO.class);
|
VMInstanceDetailVO vmRootDiskSizeDetail = Mockito.mock(VMInstanceDetailVO.class);
|
||||||
Mockito.when(vmRootDiskSizeDetail.getValue()).thenReturn("20");
|
Mockito.when(vmRootDiskSizeDetail.getValue()).thenReturn("20");
|
||||||
Mockito.when(userVmDetailsDao.findDetail(1L, VmDetailConstants.ROOT_DISK_SIZE)).thenReturn(vmRootDiskSizeDetail);
|
Mockito.when(vmInstanceDetailsDao.findDetail(1L, VmDetailConstants.ROOT_DISK_SIZE)).thenReturn(vmRootDiskSizeDetail);
|
||||||
Long actualSize = userVmManagerImpl.getRootVolumeSizeForVmRestore(null, template, userVm, diskOffering, details, false);
|
Long actualSize = userVmManagerImpl.getRootVolumeSizeForVmRestore(null, template, userVm, diskOffering, details, false);
|
||||||
Assert.assertEquals(16 * GiB_TO_BYTES, actualSize.longValue());
|
Assert.assertEquals(16 * GiB_TO_BYTES, actualSize.longValue());
|
||||||
}
|
}
|
||||||
@ -1739,9 +1734,9 @@ public class UserVmManagerImplTest {
|
|||||||
Mockito.when(userVm.getId()).thenReturn(1L);
|
Mockito.when(userVm.getId()).thenReturn(1L);
|
||||||
DiskOffering diskOffering = null;
|
DiskOffering diskOffering = null;
|
||||||
Map<String, String> details = new HashMap<>();
|
Map<String, String> details = new HashMap<>();
|
||||||
UserVmDetailVO vmRootDiskSizeDetail = Mockito.mock(UserVmDetailVO.class);
|
VMInstanceDetailVO vmRootDiskSizeDetail = Mockito.mock(VMInstanceDetailVO.class);
|
||||||
Mockito.when(vmRootDiskSizeDetail.getValue()).thenReturn("20");
|
Mockito.when(vmRootDiskSizeDetail.getValue()).thenReturn("20");
|
||||||
Mockito.when(userVmDetailsDao.findDetail(1L, VmDetailConstants.ROOT_DISK_SIZE)).thenReturn(vmRootDiskSizeDetail);
|
Mockito.when(vmInstanceDetailsDao.findDetail(1L, VmDetailConstants.ROOT_DISK_SIZE)).thenReturn(vmRootDiskSizeDetail);
|
||||||
Long actualSize = userVmManagerImpl.getRootVolumeSizeForVmRestore(null, template, userVm, diskOffering, details, false);
|
Long actualSize = userVmManagerImpl.getRootVolumeSizeForVmRestore(null, template, userVm, diskOffering, details, false);
|
||||||
Assert.assertEquals(20 * GiB_TO_BYTES, actualSize.longValue());
|
Assert.assertEquals(20 * GiB_TO_BYTES, actualSize.longValue());
|
||||||
}
|
}
|
||||||
@ -3290,16 +3285,16 @@ public class UserVmManagerImplTest {
|
|||||||
when(userVm.getId()).thenReturn(vmId);
|
when(userVm.getId()).thenReturn(vmId);
|
||||||
when(userVm.getUuid()).thenReturn(UUID.randomUUID().toString());
|
when(userVm.getUuid()).thenReturn(UUID.randomUUID().toString());
|
||||||
userVmManagerImpl.addLeaseDetailsForInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
|
userVmManagerImpl.addLeaseDetailsForInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
|
||||||
verify(userVmDetailsDao).addDetail(eq(vmId), eq(VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION), eq(VMLeaseManager.ExpiryAction.STOP.name()), anyBoolean());
|
verify(vmInstanceDetailsDao).addDetail(eq(vmId), eq(VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION), eq(VMLeaseManager.ExpiryAction.STOP.name()), anyBoolean());
|
||||||
verify(userVmDetailsDao).addDetail(eq(vmId), eq(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE), eq(getLeaseExpiryDate(10L)), anyBoolean());
|
verify(vmInstanceDetailsDao).addDetail(eq(vmId), eq(VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE), eq(getLeaseExpiryDate(10L)), anyBoolean());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAddNullDurationLeaseDetailsForInstance() {
|
public void testAddNullDurationLeaseDetailsForInstance() {
|
||||||
UserVm userVm = mock(UserVm.class);
|
UserVm userVm = mock(UserVm.class);
|
||||||
userVmManagerImpl.addLeaseDetailsForInstance(userVm, null, VMLeaseManager.ExpiryAction.STOP);
|
userVmManagerImpl.addLeaseDetailsForInstance(userVm, null, VMLeaseManager.ExpiryAction.STOP);
|
||||||
Mockito.verify(userVmDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION);
|
Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION);
|
||||||
Mockito.verify(userVmDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
|
Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -3346,7 +3341,7 @@ public class UserVmManagerImplTest {
|
|||||||
public void testApplyLeaseOnUpdateInstanceForNoLease() {
|
public void testApplyLeaseOnUpdateInstanceForNoLease() {
|
||||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||||
when(userVm.getId()).thenReturn(vmId);
|
when(userVm.getId()).thenReturn(vmId);
|
||||||
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.DISABLED.name()));
|
when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.DISABLED.name()));
|
||||||
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
|
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
|
||||||
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
|
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
|
||||||
}
|
}
|
||||||
@ -3355,7 +3350,7 @@ public class UserVmManagerImplTest {
|
|||||||
public void testApplyLeaseOnUpdateInstanceForLease() {
|
public void testApplyLeaseOnUpdateInstanceForLease() {
|
||||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||||
when(userVm.getId()).thenReturn(vmId);
|
when(userVm.getId()).thenReturn(vmId);
|
||||||
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.PENDING.name()));
|
when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.PENDING.name()));
|
||||||
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
|
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
|
||||||
Mockito.verify(userVmManagerImpl, Mockito.times(1)).addLeaseDetailsForInstance(any(), any(), any());
|
Mockito.verify(userVmManagerImpl, Mockito.times(1)).addLeaseDetailsForInstance(any(), any(), any());
|
||||||
}
|
}
|
||||||
@ -3364,7 +3359,7 @@ public class UserVmManagerImplTest {
|
|||||||
public void testApplyLeaseOnUpdateInstanceForDisabledLeaseInstance() {
|
public void testApplyLeaseOnUpdateInstanceForDisabledLeaseInstance() {
|
||||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||||
when(userVm.getId()).thenReturn(vmId);
|
when(userVm.getId()).thenReturn(vmId);
|
||||||
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.DISABLED.name()));
|
when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(5, VMLeaseManager.LeaseActionExecution.DISABLED.name()));
|
||||||
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
|
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
|
||||||
Mockito.verify(userVmManagerImpl, Mockito.times(1)).addLeaseDetailsForInstance(any(), any(), any());
|
Mockito.verify(userVmManagerImpl, Mockito.times(1)).addLeaseDetailsForInstance(any(), any(), any());
|
||||||
}
|
}
|
||||||
@ -3372,7 +3367,7 @@ public class UserVmManagerImplTest {
|
|||||||
@Test(expected = CloudRuntimeException.class)
|
@Test(expected = CloudRuntimeException.class)
|
||||||
public void testApplyLeaseOnUpdateInstanceForLeaseExpired() {
|
public void testApplyLeaseOnUpdateInstanceForLeaseExpired() {
|
||||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||||
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(-2, VMLeaseManager.LeaseActionExecution.PENDING.name()));
|
when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(-2, VMLeaseManager.LeaseActionExecution.PENDING.name()));
|
||||||
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
|
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, 10, VMLeaseManager.ExpiryAction.STOP);
|
||||||
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
|
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
|
||||||
}
|
}
|
||||||
@ -3381,7 +3376,7 @@ public class UserVmManagerImplTest {
|
|||||||
public void testApplyLeaseOnUpdateInstanceToRemoveLease() {
|
public void testApplyLeaseOnUpdateInstanceToRemoveLease() {
|
||||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||||
when(userVm.getId()).thenReturn(vmId);;
|
when(userVm.getId()).thenReturn(vmId);;
|
||||||
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(2, VMLeaseManager.LeaseActionExecution.PENDING.name()));
|
when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(2, VMLeaseManager.LeaseActionExecution.PENDING.name()));
|
||||||
try (MockedStatic<ActionEventUtils> ignored = Mockito.mockStatic(ActionEventUtils.class)) {
|
try (MockedStatic<ActionEventUtils> ignored = Mockito.mockStatic(ActionEventUtils.class)) {
|
||||||
Mockito.when(ActionEventUtils.onActionEvent(Mockito.anyLong(), Mockito.anyLong(),
|
Mockito.when(ActionEventUtils.onActionEvent(Mockito.anyLong(), Mockito.anyLong(),
|
||||||
Mockito.anyLong(),
|
Mockito.anyLong(),
|
||||||
@ -3390,7 +3385,7 @@ public class UserVmManagerImplTest {
|
|||||||
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, -1, VMLeaseManager.ExpiryAction.STOP);
|
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, -1, VMLeaseManager.ExpiryAction.STOP);
|
||||||
}
|
}
|
||||||
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
|
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
|
||||||
Mockito.verify(userVmDetailsDao, Mockito.times(1)).
|
Mockito.verify(vmInstanceDetailsDao, Mockito.times(1)).
|
||||||
addDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXECUTION, VMLeaseManager.LeaseActionExecution.DISABLED.name(), false);
|
addDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXECUTION, VMLeaseManager.LeaseActionExecution.DISABLED.name(), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3398,11 +3393,11 @@ public class UserVmManagerImplTest {
|
|||||||
public void testApplyLeaseOnUpdateInstanceToRemoveLeaseForExpired() {
|
public void testApplyLeaseOnUpdateInstanceToRemoveLeaseForExpired() {
|
||||||
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
UserVmVO userVm = Mockito.mock(UserVmVO.class);
|
||||||
when(userVm.getId()).thenReturn(vmId);
|
when(userVm.getId()).thenReturn(vmId);
|
||||||
when(userVmDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(-2, VMLeaseManager.LeaseActionExecution.PENDING.name()));
|
when(vmInstanceDetailsDao.listDetailsKeyPairs(anyLong(), anyList())).thenReturn(getLeaseDetails(-2, VMLeaseManager.LeaseActionExecution.PENDING.name()));
|
||||||
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, -1, VMLeaseManager.ExpiryAction.STOP);
|
userVmManagerImpl.applyLeaseOnUpdateInstance(userVm, -1, VMLeaseManager.ExpiryAction.STOP);
|
||||||
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
|
Mockito.verify(userVmManagerImpl, Mockito.times(0)).addLeaseDetailsForInstance(any(), any(), any());
|
||||||
Mockito.verify(userVmDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION);
|
Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_ACTION);
|
||||||
Mockito.verify(userVmDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
|
Mockito.verify(vmInstanceDetailsDao, Mockito.times(0)).removeDetail(vmId, VmDetailConstants.INSTANCE_LEASE_EXPIRY_DATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
String getLeaseExpiryDate(long leaseDuration) {
|
String getLeaseExpiryDate(long leaseDuration) {
|
||||||
|
|||||||
@ -46,13 +46,13 @@ import com.cloud.user.dao.UserDao;
|
|||||||
import com.cloud.uservm.UserVm;
|
import com.cloud.uservm.UserVm;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
import com.cloud.utils.fsm.NoTransitionException;
|
import com.cloud.utils.fsm.NoTransitionException;
|
||||||
import com.cloud.vm.UserVmDetailVO;
|
import com.cloud.vm.VMInstanceDetailVO;
|
||||||
import com.cloud.vm.UserVmManager;
|
import com.cloud.vm.UserVmManager;
|
||||||
import com.cloud.vm.UserVmVO;
|
import com.cloud.vm.UserVmVO;
|
||||||
import com.cloud.vm.VirtualMachine.State;
|
import com.cloud.vm.VirtualMachine.State;
|
||||||
import com.cloud.vm.VirtualMachineManager;
|
import com.cloud.vm.VirtualMachineManager;
|
||||||
import com.cloud.vm.dao.UserVmDao;
|
import com.cloud.vm.dao.UserVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDetailsDao;
|
||||||
@ -131,7 +131,7 @@ public class VMSnapshotManagerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
ServiceOfferingDao _serviceOfferingDao;
|
ServiceOfferingDao _serviceOfferingDao;
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailsDao _userVmDetailsDao;
|
VMInstanceDetailsDao _vmInstanceDetailsDao;
|
||||||
@Mock
|
@Mock
|
||||||
VMSnapshotDetailsDao _vmSnapshotDetailsDao;
|
VMSnapshotDetailsDao _vmSnapshotDetailsDao;
|
||||||
@Mock
|
@Mock
|
||||||
@ -141,7 +141,7 @@ public class VMSnapshotManagerTest {
|
|||||||
private static final long SERVICE_OFFERING_ID = 1L;
|
private static final long SERVICE_OFFERING_ID = 1L;
|
||||||
private static final long SERVICE_OFFERING_DIFFERENT_ID = 2L;
|
private static final long SERVICE_OFFERING_DIFFERENT_ID = 2L;
|
||||||
private static VMSnapshot.Type vmSnapshotType;
|
private static VMSnapshot.Type vmSnapshotType;
|
||||||
private static List<UserVmDetailVO> userVmDetails;
|
private static List<VMInstanceDetailVO> userVmDetails;
|
||||||
private static List<VMSnapshotDetailsVO> vmSnapshotDetails;
|
private static List<VMSnapshotDetailsVO> vmSnapshotDetails;
|
||||||
|
|
||||||
private static final long VM_SNAPSHOT_ID = 1L;
|
private static final long VM_SNAPSHOT_ID = 1L;
|
||||||
@ -157,9 +157,9 @@ public class VMSnapshotManagerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
ServiceOfferingVO serviceOffering;
|
ServiceOfferingVO serviceOffering;
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailVO userVmDetailCpuNumber;
|
VMInstanceDetailVO userVmDetailCpuNumber;
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailVO userVmDetailMemory;
|
VMInstanceDetailVO userVmDetailMemory;
|
||||||
@Mock
|
@Mock
|
||||||
VMSnapshotDetailsVO vmSnapshotDetailCpuNumber;
|
VMSnapshotDetailsVO vmSnapshotDetailCpuNumber;
|
||||||
@Mock
|
@Mock
|
||||||
@ -172,7 +172,7 @@ public class VMSnapshotManagerTest {
|
|||||||
@Captor
|
@Captor
|
||||||
ArgumentCaptor<Map<String,String>> mapDetailsCaptor;
|
ArgumentCaptor<Map<String,String>> mapDetailsCaptor;
|
||||||
@Captor
|
@Captor
|
||||||
ArgumentCaptor<List<UserVmDetailVO>> listUserVmDetailsCaptor;
|
ArgumentCaptor<List<VMInstanceDetailVO>> listUserVmDetailsCaptor;
|
||||||
|
|
||||||
private AutoCloseable closeable;
|
private AutoCloseable closeable;
|
||||||
|
|
||||||
@ -194,7 +194,7 @@ public class VMSnapshotManagerTest {
|
|||||||
doNothing().when(_accountMgr).checkAccess(any(Account.class), any(AccessType.class), any(Boolean.class), any(ControlledEntity.class));
|
doNothing().when(_accountMgr).checkAccess(any(Account.class), any(AccessType.class), any(Boolean.class), any(ControlledEntity.class));
|
||||||
|
|
||||||
_vmSnapshotMgr._serviceOfferingDao = _serviceOfferingDao;
|
_vmSnapshotMgr._serviceOfferingDao = _serviceOfferingDao;
|
||||||
_vmSnapshotMgr._userVmDetailsDao = _userVmDetailsDao;
|
_vmSnapshotMgr._vmInstanceDetailsDao = _vmInstanceDetailsDao;
|
||||||
_vmSnapshotMgr._vmSnapshotDetailsDao = _vmSnapshotDetailsDao;
|
_vmSnapshotMgr._vmSnapshotDetailsDao = _vmSnapshotDetailsDao;
|
||||||
_vmSnapshotMgr._userVmManager = _userVmManager;
|
_vmSnapshotMgr._userVmManager = _userVmManager;
|
||||||
|
|
||||||
@ -238,7 +238,7 @@ public class VMSnapshotManagerTest {
|
|||||||
|
|
||||||
userVmDetails = Arrays.asList(userVmDetailCpuNumber, userVmDetailMemory);
|
userVmDetails = Arrays.asList(userVmDetailCpuNumber, userVmDetailMemory);
|
||||||
vmSnapshotDetails = Arrays.asList(vmSnapshotDetailCpuNumber, vmSnapshotDetailMemory);
|
vmSnapshotDetails = Arrays.asList(vmSnapshotDetailCpuNumber, vmSnapshotDetailMemory);
|
||||||
when(_userVmDetailsDao.listDetails(TEST_VM_ID)).thenReturn(userVmDetails);
|
when(_vmInstanceDetailsDao.listDetails(TEST_VM_ID)).thenReturn(userVmDetails);
|
||||||
when(_vmSnapshotDetailsDao.listDetails(VM_SNAPSHOT_ID)).thenReturn(vmSnapshotDetails);
|
when(_vmSnapshotDetailsDao.listDetails(VM_SNAPSHOT_ID)).thenReturn(vmSnapshotDetails);
|
||||||
|
|
||||||
when(userVm.getId()).thenReturn(TEST_VM_ID);
|
when(userVm.getId()).thenReturn(TEST_VM_ID);
|
||||||
@ -327,7 +327,7 @@ public class VMSnapshotManagerTest {
|
|||||||
@Test
|
@Test
|
||||||
public void testAddSupportForCustomServiceOfferingNotDynamicServiceOffering() {
|
public void testAddSupportForCustomServiceOfferingNotDynamicServiceOffering() {
|
||||||
_vmSnapshotMgr.addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID);
|
_vmSnapshotMgr.addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID);
|
||||||
verify(_userVmDetailsDao, never()).listDetails(TEST_VM_ID);
|
verify(_vmInstanceDetailsDao, never()).listDetails(TEST_VM_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -335,7 +335,7 @@ public class VMSnapshotManagerTest {
|
|||||||
when(serviceOffering.isDynamic()).thenReturn(true);
|
when(serviceOffering.isDynamic()).thenReturn(true);
|
||||||
_vmSnapshotMgr.addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID);
|
_vmSnapshotMgr.addSupportForCustomServiceOffering(TEST_VM_ID, SERVICE_OFFERING_ID, VM_SNAPSHOT_ID);
|
||||||
|
|
||||||
verify(_userVmDetailsDao).listDetails(TEST_VM_ID);
|
verify(_vmInstanceDetailsDao).listDetails(TEST_VM_ID);
|
||||||
verify(_vmSnapshotDetailsDao).saveDetails(listVmSnapshotDetailsCaptor.capture());
|
verify(_vmSnapshotDetailsDao).saveDetails(listVmSnapshotDetailsCaptor.capture());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -405,7 +405,7 @@ public class VMSnapshotManagerTest {
|
|||||||
when(serviceOffering.isDynamic()).thenReturn(true);
|
when(serviceOffering.isDynamic()).thenReturn(true);
|
||||||
_vmSnapshotMgr.revertUserVmDetailsFromVmSnapshot(vmMock, vmSnapshotVO);
|
_vmSnapshotMgr.revertUserVmDetailsFromVmSnapshot(vmMock, vmSnapshotVO);
|
||||||
verify(_vmSnapshotDetailsDao).listDetails(VM_SNAPSHOT_ID);
|
verify(_vmSnapshotDetailsDao).listDetails(VM_SNAPSHOT_ID);
|
||||||
verify(_userVmDetailsDao).saveDetails(listUserVmDetailsCaptor.capture());
|
verify(_vmInstanceDetailsDao).saveDetails(listUserVmDetailsCaptor.capture());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -82,7 +82,7 @@ import com.cloud.vm.dao.DomainRouterDaoImpl;
|
|||||||
import com.cloud.vm.dao.NicDaoImpl;
|
import com.cloud.vm.dao.NicDaoImpl;
|
||||||
import com.cloud.vm.dao.NicSecondaryIpDaoImpl;
|
import com.cloud.vm.dao.NicSecondaryIpDaoImpl;
|
||||||
import com.cloud.vm.dao.UserVmDaoImpl;
|
import com.cloud.vm.dao.UserVmDaoImpl;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDaoImpl;
|
import com.cloud.vm.dao.VMInstanceDetailsDaoImpl;
|
||||||
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
import com.cloud.vm.dao.VMInstanceDaoImpl;
|
||||||
import com.cloud.vpc.dao.MockNetworkOfferingDaoImpl;
|
import com.cloud.vpc.dao.MockNetworkOfferingDaoImpl;
|
||||||
import com.cloud.vpc.dao.MockNetworkOfferingServiceMapDaoImpl;
|
import com.cloud.vpc.dao.MockNetworkOfferingServiceMapDaoImpl;
|
||||||
@ -113,7 +113,7 @@ import java.io.IOException;
|
|||||||
Site2SiteVpnGatewayDaoImpl.class, PodVlanMapDaoImpl.class, AccountVlanMapDaoImpl.class, DomainVlanMapDaoImpl.class, HostDaoImpl.class, HostDetailsDaoImpl.class,
|
Site2SiteVpnGatewayDaoImpl.class, PodVlanMapDaoImpl.class, AccountVlanMapDaoImpl.class, DomainVlanMapDaoImpl.class, HostDaoImpl.class, HostDetailsDaoImpl.class,
|
||||||
HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, RouterNetworkDaoImpl.class,
|
HostTagsDaoImpl.class, HostTransferMapDaoImpl.class, ClusterDaoImpl.class, HostPodDaoImpl.class, RouterNetworkDaoImpl.class,
|
||||||
UserStatisticsDaoImpl.class, PhysicalNetworkTrafficTypeDaoImpl.class, FirewallRulesCidrsDaoImpl.class, ResourceLimitManagerImpl.class,
|
UserStatisticsDaoImpl.class, PhysicalNetworkTrafficTypeDaoImpl.class, FirewallRulesCidrsDaoImpl.class, ResourceLimitManagerImpl.class,
|
||||||
ResourceLimitDaoImpl.class, ResourceCountDaoImpl.class, DomainDaoImpl.class, UserVmDaoImpl.class, UserVmDetailsDaoImpl.class, NicDaoImpl.class,
|
ResourceLimitDaoImpl.class, ResourceCountDaoImpl.class, DomainDaoImpl.class, UserVmDaoImpl.class, VMInstanceDetailsDaoImpl.class, NicDaoImpl.class,
|
||||||
SnapshotDaoImpl.class, VMInstanceDaoImpl.class, VolumeDaoImpl.class, UserIpv6AddressDaoImpl.class, NicSecondaryIpDaoImpl.class,
|
SnapshotDaoImpl.class, VMInstanceDaoImpl.class, VolumeDaoImpl.class, UserIpv6AddressDaoImpl.class, NicSecondaryIpDaoImpl.class,
|
||||||
VpcServiceMapDaoImpl.class, ServiceOfferingDaoImpl.class, MockVpcDaoImpl.class, VMTemplateDaoImpl.class,
|
VpcServiceMapDaoImpl.class, ServiceOfferingDaoImpl.class, MockVpcDaoImpl.class, VMTemplateDaoImpl.class,
|
||||||
VMTemplateZoneDaoImpl.class, VMTemplateDetailsDaoImpl.class, DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class,
|
VMTemplateZoneDaoImpl.class, VMTemplateDetailsDaoImpl.class, DataCenterDaoImpl.class, DataCenterIpAddressDaoImpl.class,
|
||||||
|
|||||||
@ -24,7 +24,7 @@ import com.cloud.user.AccountManager;
|
|||||||
import com.cloud.utils.db.EntityManager;
|
import com.cloud.utils.db.EntityManager;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import com.cloud.vm.VirtualMachine;
|
||||||
import com.cloud.vm.VirtualMachineManager;
|
import com.cloud.vm.VirtualMachineManager;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import org.apache.cloudstack.acl.SecurityChecker;
|
import org.apache.cloudstack.acl.SecurityChecker;
|
||||||
import org.apache.cloudstack.framework.security.keys.KeysManager;
|
import org.apache.cloudstack.framework.security.keys.KeysManager;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
@ -51,7 +51,7 @@ public class ConsoleAccessManagerImplTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private EntityManager entityManager;
|
private EntityManager entityManager;
|
||||||
@Mock
|
@Mock
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Mock
|
@Mock
|
||||||
private KeysManager keysManager;
|
private KeysManager keysManager;
|
||||||
@Mock
|
@Mock
|
||||||
|
|||||||
@ -61,7 +61,7 @@ import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
|
|||||||
import com.cloud.user.AccountManager;
|
import com.cloud.user.AccountManager;
|
||||||
import com.cloud.user.AccountVO;
|
import com.cloud.user.AccountVO;
|
||||||
import com.cloud.user.UserVO;
|
import com.cloud.user.UserVO;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
@ -84,7 +84,7 @@ public class CreateNetworkOfferingTest extends TestCase {
|
|||||||
VpcManager vpcMgr;
|
VpcManager vpcMgr;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailsDao userVmDetailsDao;
|
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
UsageEventDao UsageEventDao;
|
UsageEventDao UsageEventDao;
|
||||||
|
|||||||
@ -75,7 +75,7 @@ import com.cloud.vm.dao.NicDao;
|
|||||||
import com.cloud.vm.dao.NicDetailsDao;
|
import com.cloud.vm.dao.NicDetailsDao;
|
||||||
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
import com.cloud.vm.dao.NicExtraDhcpOptionDao;
|
||||||
import com.cloud.vm.dao.NicSecondaryIpDao;
|
import com.cloud.vm.dao.NicSecondaryIpDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
import com.cloud.vm.snapshot.VMSnapshotVO;
|
import com.cloud.vm.snapshot.VMSnapshotVO;
|
||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
|
||||||
@ -111,7 +111,7 @@ public class ResourceCleanupServiceImplTest {
|
|||||||
@Mock
|
@Mock
|
||||||
VMSnapshotDetailsDao vmSnapshotDetailsDao;
|
VMSnapshotDetailsDao vmSnapshotDetailsDao;
|
||||||
@Mock
|
@Mock
|
||||||
UserVmDetailsDao userVmDetailsDao;
|
VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
@Mock
|
@Mock
|
||||||
AutoScaleVmGroupVmMapDao autoScaleVmGroupVmMapDao;
|
AutoScaleVmGroupVmMapDao autoScaleVmGroupVmMapDao;
|
||||||
@Mock
|
@Mock
|
||||||
@ -297,7 +297,7 @@ public class ResourceCleanupServiceImplTest {
|
|||||||
resourceCleanupService.purgeLinkedVMEntities(new ArrayList<>(), 50L);
|
resourceCleanupService.purgeLinkedVMEntities(new ArrayList<>(), 50L);
|
||||||
Mockito.verify(resourceCleanupService, Mockito.never()).purgeVMVolumes(Mockito.anyList(),
|
Mockito.verify(resourceCleanupService, Mockito.never()).purgeVMVolumes(Mockito.anyList(),
|
||||||
Mockito.anyLong());
|
Mockito.anyLong());
|
||||||
Mockito.verify(userVmDetailsDao, Mockito.never())
|
Mockito.verify(vmInstanceDetailsDao, Mockito.never())
|
||||||
.batchExpungeForResources(Mockito.anyList(), Mockito.anyLong());
|
.batchExpungeForResources(Mockito.anyList(), Mockito.anyLong());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -307,7 +307,7 @@ public class ResourceCleanupServiceImplTest {
|
|||||||
Mockito.eq(batchSize));
|
Mockito.eq(batchSize));
|
||||||
Mockito.doReturn(2L).when(resourceCleanupService).purgeVMNics(Mockito.anyList(),
|
Mockito.doReturn(2L).when(resourceCleanupService).purgeVMNics(Mockito.anyList(),
|
||||||
Mockito.eq(batchSize));
|
Mockito.eq(batchSize));
|
||||||
Mockito.when(userVmDetailsDao.batchExpungeForResources(Mockito.anyList(), Mockito.anyLong())).thenReturn(2L);
|
Mockito.when(vmInstanceDetailsDao.batchExpungeForResources(Mockito.anyList(), Mockito.anyLong())).thenReturn(2L);
|
||||||
Mockito.doReturn(2L).when(resourceCleanupService).purgeVMSnapshots(Mockito.anyList(),
|
Mockito.doReturn(2L).when(resourceCleanupService).purgeVMSnapshots(Mockito.anyList(),
|
||||||
Mockito.eq(batchSize));
|
Mockito.eq(batchSize));
|
||||||
Mockito.when(autoScaleVmGroupVmMapDao.expungeByVmList(Mockito.anyList(), Mockito.anyLong())).thenReturn(2);
|
Mockito.when(autoScaleVmGroupVmMapDao.expungeByVmList(Mockito.anyList(), Mockito.anyLong())).thenReturn(2);
|
||||||
@ -327,7 +327,7 @@ public class ResourceCleanupServiceImplTest {
|
|||||||
|
|
||||||
Mockito.verify(resourceCleanupService, Mockito.times(1)).purgeVMVolumes(ids, batchSize);
|
Mockito.verify(resourceCleanupService, Mockito.times(1)).purgeVMVolumes(ids, batchSize);
|
||||||
Mockito.verify(resourceCleanupService, Mockito.times(1)).purgeVMNics(ids, batchSize);
|
Mockito.verify(resourceCleanupService, Mockito.times(1)).purgeVMNics(ids, batchSize);
|
||||||
Mockito.verify(userVmDetailsDao, Mockito.times(1))
|
Mockito.verify(vmInstanceDetailsDao, Mockito.times(1))
|
||||||
.batchExpungeForResources(ids, batchSize);
|
.batchExpungeForResources(ids, batchSize);
|
||||||
Mockito.verify(resourceCleanupService, Mockito.times(1))
|
Mockito.verify(resourceCleanupService, Mockito.times(1))
|
||||||
.purgeVMSnapshots(ids, batchSize);
|
.purgeVMSnapshots(ids, batchSize);
|
||||||
|
|||||||
@ -18,16 +18,31 @@
|
|||||||
|
|
||||||
package org.apache.cloudstack.vm.lease;
|
package org.apache.cloudstack.vm.lease;
|
||||||
|
|
||||||
import com.cloud.api.query.dao.UserVmJoinDao;
|
import static org.junit.Assert.assertEquals;
|
||||||
import com.cloud.api.query.vo.UserVmJoinVO;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import com.cloud.event.ActionEventUtils;
|
import static org.junit.Assert.assertNull;
|
||||||
import com.cloud.user.User;
|
import static org.junit.Assert.assertTrue;
|
||||||
import com.cloud.utils.component.ComponentContext;
|
import static org.mockito.ArgumentMatchers.any;
|
||||||
import com.cloud.utils.db.GlobalLock;
|
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||||
import com.cloud.utils.exception.CloudRuntimeException;
|
import static org.mockito.ArgumentMatchers.anyLong;
|
||||||
import com.cloud.vm.VirtualMachine;
|
import static org.mockito.ArgumentMatchers.anyString;
|
||||||
import com.cloud.vm.VmDetailConstants;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import static org.mockito.Mockito.doNothing;
|
||||||
|
import static org.mockito.Mockito.doReturn;
|
||||||
|
import static org.mockito.Mockito.mock;
|
||||||
|
import static org.mockito.Mockito.never;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.naming.ConfigurationException;
|
||||||
|
|
||||||
import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.DestroyVMCmd;
|
||||||
import org.apache.cloudstack.api.command.user.vm.StopVMCmd;
|
import org.apache.cloudstack.api.command.user.vm.StopVMCmd;
|
||||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||||
@ -47,29 +62,16 @@ import org.mockito.Spy;
|
|||||||
import org.mockito.junit.MockitoJUnitRunner;
|
import org.mockito.junit.MockitoJUnitRunner;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
|
|
||||||
import javax.naming.ConfigurationException;
|
import com.cloud.api.query.dao.UserVmJoinDao;
|
||||||
import java.lang.reflect.Field;
|
import com.cloud.api.query.vo.UserVmJoinVO;
|
||||||
import java.util.ArrayList;
|
import com.cloud.event.ActionEventUtils;
|
||||||
import java.util.Arrays;
|
import com.cloud.user.User;
|
||||||
import java.util.HashMap;
|
import com.cloud.utils.component.ComponentContext;
|
||||||
import java.util.List;
|
import com.cloud.utils.db.GlobalLock;
|
||||||
import java.util.UUID;
|
import com.cloud.utils.exception.CloudRuntimeException;
|
||||||
|
import com.cloud.vm.VirtualMachine;
|
||||||
import static org.junit.Assert.assertEquals;
|
import com.cloud.vm.VmDetailConstants;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import static org.junit.Assert.assertNull;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.mockito.ArgumentMatchers.any;
|
|
||||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
|
||||||
import static org.mockito.ArgumentMatchers.anyLong;
|
|
||||||
import static org.mockito.ArgumentMatchers.anyString;
|
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
|
||||||
import static org.mockito.Mockito.doNothing;
|
|
||||||
import static org.mockito.Mockito.doReturn;
|
|
||||||
import static org.mockito.Mockito.mock;
|
|
||||||
import static org.mockito.Mockito.never;
|
|
||||||
import static org.mockito.Mockito.verify;
|
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
@RunWith(MockitoJUnitRunner.class)
|
@RunWith(MockitoJUnitRunner.class)
|
||||||
public class VMLeaseManagerImplTest {
|
public class VMLeaseManagerImplTest {
|
||||||
@ -88,7 +90,7 @@ public class VMLeaseManagerImplTest {
|
|||||||
MessageBus messageBus;
|
MessageBus messageBus;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private UserVmDetailsDao userVmDetailsDao;
|
private VMInstanceDetailsDao vmInstanceDetailsDao;
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private AsyncJobManager asyncJobManager;
|
private AsyncJobManager asyncJobManager;
|
||||||
@ -104,7 +106,7 @@ public class VMLeaseManagerImplTest {
|
|||||||
vmLeaseManager.setAsyncJobDispatcher(asyncJobDispatcher);
|
vmLeaseManager.setAsyncJobDispatcher(asyncJobDispatcher);
|
||||||
when(asyncJobDispatcher.getName()).thenReturn("AsyncJobDispatcher");
|
when(asyncJobDispatcher.getName()).thenReturn("AsyncJobDispatcher");
|
||||||
when(asyncJobManager.submitAsyncJob(any(AsyncJobVO.class))).thenReturn(1L);
|
when(asyncJobManager.submitAsyncJob(any(AsyncJobVO.class))).thenReturn(1L);
|
||||||
doNothing().when(userVmDetailsDao).addDetail(
|
doNothing().when(vmInstanceDetailsDao).addDetail(
|
||||||
anyLong(), anyString(), anyString(), anyBoolean()
|
anyLong(), anyString(), anyString(), anyBoolean()
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
@ -275,7 +277,7 @@ public class VMLeaseManagerImplTest {
|
|||||||
utilities.when(() -> ActionEventUtils.onStartedActionEvent(Mockito.anyLong(), Mockito.anyLong(), Mockito.anyString(),
|
utilities.when(() -> ActionEventUtils.onStartedActionEvent(Mockito.anyLong(), Mockito.anyLong(), Mockito.anyString(),
|
||||||
Mockito.anyString(), Mockito.anyLong(), Mockito.anyString(), Mockito.anyBoolean(), Mockito.anyLong())).thenReturn(1L);
|
Mockito.anyString(), Mockito.anyLong(), Mockito.anyString(), Mockito.anyBoolean(), Mockito.anyLong())).thenReturn(1L);
|
||||||
vmLeaseManager.cancelLeaseOnExistingInstances();
|
vmLeaseManager.cancelLeaseOnExistingInstances();
|
||||||
verify(userVmDetailsDao).addDetail(1L, VmDetailConstants.INSTANCE_LEASE_EXECUTION, VMLeaseManager.LeaseActionExecution.CANCELLED.name(), false);
|
verify(vmInstanceDetailsDao).addDetail(1L, VmDetailConstants.INSTANCE_LEASE_EXECUTION, VMLeaseManager.LeaseActionExecution.CANCELLED.name(), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -50,7 +50,7 @@
|
|||||||
<bean id="ipv6ServiceImpl" class="com.cloud.network.Ipv6ServiceImpl" />
|
<bean id="ipv6ServiceImpl" class="com.cloud.network.Ipv6ServiceImpl" />
|
||||||
<bean id="managementServiceConfigurationImpl" class="com.cloud.configuration.ManagementServiceConfigurationImpl" />
|
<bean id="managementServiceConfigurationImpl" class="com.cloud.configuration.ManagementServiceConfigurationImpl" />
|
||||||
<bean class="org.apache.cloudstack.networkoffering.ChildTestConfiguration" />
|
<bean class="org.apache.cloudstack.networkoffering.ChildTestConfiguration" />
|
||||||
<bean id="UservmDetailsDaoImpl" class="com.cloud.vm.dao.UserVmDetailsDaoImpl" />
|
<bean id="UservmDetailsDaoImpl" class="com.cloud.vm.dao.VMInstanceDetailsDaoImpl" />
|
||||||
<bean id="hostGpuGroupsDaoImpl" class="com.cloud.gpu.dao.HostGpuGroupsDaoImpl" />
|
<bean id="hostGpuGroupsDaoImpl" class="com.cloud.gpu.dao.HostGpuGroupsDaoImpl" />
|
||||||
<bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" />
|
<bean id="vGPUTypesDaoImpl" class="com.cloud.gpu.dao.VGPUTypesDaoImpl" />
|
||||||
<bean id="usageEventDaoImpl" class="com.cloud.event.dao.UsageEventDaoImpl" />
|
<bean id="usageEventDaoImpl" class="com.cloud.event.dao.UsageEventDaoImpl" />
|
||||||
|
|||||||
@ -157,7 +157,7 @@ import com.cloud.vm.VirtualMachineManager;
|
|||||||
import com.cloud.vm.VirtualMachineName;
|
import com.cloud.vm.VirtualMachineName;
|
||||||
import com.cloud.vm.VirtualMachineProfile;
|
import com.cloud.vm.VirtualMachineProfile;
|
||||||
import com.cloud.vm.dao.SecondaryStorageVmDao;
|
import com.cloud.vm.dao.SecondaryStorageVmDao;
|
||||||
import com.cloud.vm.dao.UserVmDetailsDao;
|
import com.cloud.vm.dao.VMInstanceDetailsDao;
|
||||||
import com.cloud.vm.dao.VMInstanceDao;
|
import com.cloud.vm.dao.VMInstanceDao;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -223,7 +223,7 @@ public class SecondaryStorageManagerImpl extends ManagerBase implements Secondar
|
|||||||
@Inject
|
@Inject
|
||||||
protected CapacityDao _capacityDao;
|
protected CapacityDao _capacityDao;
|
||||||
@Inject
|
@Inject
|
||||||
UserVmDetailsDao _vmDetailsDao;
|
VMInstanceDetailsDao _vmDetailsDao;
|
||||||
@Inject
|
@Inject
|
||||||
protected ResourceManager _resourceMgr;
|
protected ResourceManager _resourceMgr;
|
||||||
@Inject
|
@Inject
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user