@Override public void loadDetails(UserVmVO vm) { Map<String, String> details = _detailsDao.listDetailsKeyPairs(vm.getId()); vm.setDetails(details); }
/** * Persist extra configurations as details for hypervisors except Vmware */ protected void persistExtraConfigNonVmware(String decodedUrl, UserVm vm) { String[] extraConfigs = decodedUrl.split("\n\n"); for (String cfg : extraConfigs) { int i = 1; String[] cfgParts = cfg.split("\n"); String extraConfigKey = ApiConstants.EXTRA_CONFIG; String extraConfigValue; if (cfgParts[0].matches("\\S+:$")) { extraConfigKey += "-" + cfgParts[0].substring(0,cfgParts[0].length() - 1); extraConfigValue = cfg.replace(cfgParts[0] + "\n", ""); } else { extraConfigKey += "-" + String.valueOf(i); extraConfigValue = cfg; } userVmDetailsDao.addDetail(vm.getId(), extraConfigKey, extraConfigValue, true); i++; } }
public static UserVmDetailVO findPublicKeyByVmId(long vmId) { return s_userVmDetailsDao.findDetail(vmId, "SSH.PublicKey"); }
@Override public void removeCustomOfferingDetails(long vmId) { Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vmId); details.remove(UsageEventVO.DynamicParameters.cpuNumber.name()); details.remove(UsageEventVO.DynamicParameters.cpuSpeed.name()); details.remove(UsageEventVO.DynamicParameters.memory.name()); List<UserVmDetailVO> detailList = new ArrayList<UserVmDetailVO>(); for(Map.Entry<String, String> entry: details.entrySet()) { UserVmDetailVO detailVO = new UserVmDetailVO(vmId, entry.getKey(), entry.getValue(), true); detailList.add(detailVO); } userVmDetailsDao.saveDetails(detailList); }
@Override public void saveDetails(UserVmVO vm) { Map<String, String> detailsStr = vm.getDetails(); if (detailsStr == null) { return; } final Map<String, Boolean> visibilityMap = _detailsDao.listDetailsVisibility(vm.getId()); List<UserVmDetailVO> details = new ArrayList<UserVmDetailVO>(); for (Map.Entry<String, String> entry : detailsStr.entrySet()) { boolean display = visibilityMap.getOrDefault(entry.getKey(), true); details.add(new UserVmDetailVO(vm.getId(), entry.getKey(), entry.getValue(), display)); } _detailsDao.saveDetails(details); }
final ClusterDetailsVO cluster_detail_ram = _clusterDetailsDao.findDetail(cluster_id, "memoryOvercommitRatio"); if (userVmDetailsDao.findDetail(vm.getId(), "cpuOvercommitRatio") == null && (Float.parseFloat(cluster_detail_cpu.getValue()) > 1f || Float.parseFloat(cluster_detail_ram.getValue()) > 1f)) { userVmDetailsDao.addDetail(vm.getId(), "cpuOvercommitRatio", cluster_detail_cpu.getValue(), true); userVmDetailsDao.addDetail(vm.getId(), "memoryOvercommitRatio", cluster_detail_ram.getValue(), true); } else if (userVmDetailsDao.findDetail(vm.getId(), "cpuOvercommitRatio") != null) { userVmDetailsDao.addDetail(vm.getId(), "cpuOvercommitRatio", cluster_detail_cpu.getValue(), true); userVmDetailsDao.addDetail(vm.getId(), "memoryOvercommitRatio", cluster_detail_ram.getValue(), true); if (userVmDetailsDao.findDetail(vm.getId(), "deployvm") != null) { userVmDetailsDao.removeDetail(vm.getId(), "deployvm");
Float cpuOvercommitRatio = 1.0f; Float ramOvercommitRatio = 1.0f; Map<String, String> vmDetails = _userVmDetailsDao.listDetailsKeyPairs(vm.getId()); String vmDetailCpu = vmDetails.get("cpuOvercommitRatio"); String vmDetailRam = vmDetails.get("memoryOvercommitRatio"); long secondsSinceLastUpdate = (DateUtil.currentGMTTime().getTime() - vm.getUpdateTime().getTime()) / 1000; if (secondsSinceLastUpdate < _vmCapacityReleaseInterval) { UserVmDetailVO vmDetailCpu = _userVmDetailsDao.findDetail(vm.getId(), "cpuOvercommitRatio"); UserVmDetailVO vmDetailRam = _userVmDetailsDao.findDetail(vm.getId(), "memoryOvercommitRatio"); if (vmDetailCpu != null) { Map<String, String> vmDetails = _userVmDetailsDao.listDetailsKeyPairs(vm.getId()); if (so.isDynamic()) { reservedMemory += UserVmDetailVO messageSentFlag = _userVmDetailsDao.findDetail(vm.getId(), MESSAGE_RESERVED_CAPACITY_FREED_FLAG); if (messageSentFlag == null || !Boolean.valueOf(messageSentFlag.getValue())) { _messageBus.publish(_name, "VM_ReservedCapacity_Free", PublishScope.LOCAL, vm);
guru.finalizeExpunge(vm); userVmDetailsDao.removeDetails(vm.getId());
userVmDetailsDao.removeDetail(vm.getId(), "password");
/** * Update or add user vm details from vm snapshot for vms with custom service offerings * @param userVm user vm * @param vmSnapshotVo vm snapshot */ protected void revertUserVmDetailsFromVmSnapshot(UserVmVO userVm, VMSnapshotVO vmSnapshotVo) { ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(vmSnapshotVo.getServiceOfferingId()); if (serviceOfferingVO.isDynamic()) { List<VMSnapshotDetailsVO> vmSnapshotDetails = _vmSnapshotDetailsDao.listDetails(vmSnapshotVo.getId()); List<UserVmDetailVO> userVmDetails = new ArrayList<UserVmDetailVO>(); for (VMSnapshotDetailsVO detail : vmSnapshotDetails) { userVmDetails.add(new UserVmDetailVO(userVm.getId(), detail.getName(), detail.getValue(), detail.isDisplay())); } _userVmDetailsDao.saveDetails(userVmDetails); } }
/** * Get user vm details as a map * @param userVm user vm * @return map */ protected Map<String, String> getVmMapDetails(UserVm userVm) { List<UserVmDetailVO> userVmDetails = _userVmDetailsDao.listDetails(userVm.getId()); Map<String, String> details = new HashMap<String, String>(); for (UserVmDetailVO detail : userVmDetails) { details.put(detail.getName(), detail.getValue()); } return details; }
@Override public void saveCustomOfferingDetails(long vmId, ServiceOffering serviceOffering) { //save the custom values to the database. Map<String, String> details = userVmDetailsDao.listDetailsKeyPairs(vmId); details.put(UsageEventVO.DynamicParameters.cpuNumber.name(), serviceOffering.getCpu().toString()); details.put(UsageEventVO.DynamicParameters.cpuSpeed.name(), serviceOffering.getSpeed().toString()); details.put(UsageEventVO.DynamicParameters.memory.name(), serviceOffering.getRamSize().toString()); List<UserVmDetailVO> detailList = new ArrayList<UserVmDetailVO>(); for (Map.Entry<String, String> entry: details.entrySet()) { UserVmDetailVO detailVO = new UserVmDetailVO(vmId, entry.getKey(), entry.getValue(), true); detailList.add(detailVO); } userVmDetailsDao.saveDetails(detailList); }
userVmDetailsDao.removeDetails(id);
_vmDao.loadDetails(vm); if (vm.getDetail("password") != null) { userVmDetailsDao.removeDetail(vm.getId(), "password");
/** * Add entries on vm_snapshot_details if service offering is dynamic. This will allow setting details when revert to vm snapshot * @param vmId vm id * @param serviceOfferingId service offering id * @param vmSnapshotId vm snapshot id */ protected void addSupportForCustomServiceOffering(long vmId, long serviceOfferingId, long vmSnapshotId) { ServiceOfferingVO serviceOfferingVO = _serviceOfferingDao.findById(serviceOfferingId); if (serviceOfferingVO.isDynamic()) { List<UserVmDetailVO> vmDetails = _userVmDetailsDao.listDetails(vmId); List<VMSnapshotDetailsVO> vmSnapshotDetails = new ArrayList<VMSnapshotDetailsVO>(); for (UserVmDetailVO detail : vmDetails) { if(detail.getName().equalsIgnoreCase(VmDetailConstants.CPU_NUMBER) || detail.getName().equalsIgnoreCase(VmDetailConstants.CPU_SPEED) || detail.getName().equalsIgnoreCase(VmDetailConstants.MEMORY)) { vmSnapshotDetails.add(new VMSnapshotDetailsVO(vmSnapshotId, detail.getName(), detail.getValue(), detail.isDisplay())); } } _vmSnapshotDetailsDao.saveDetails(vmSnapshotDetails); } }
@Override public ServiceOfferingVO findById(Long vmId, long serviceOfferingId) { ServiceOfferingVO offering = super.findById(serviceOfferingId); if (offering.isDynamic()) { offering.setDynamicFlag(true); if (vmId == null) { throw new CloudRuntimeException("missing argument vmId"); } Map<String, String> dynamicOffering = userVmDetailsDao.listDetailsKeyPairs(vmId); return getcomputeOffering(offering, dynamicOffering); } return offering; }
/** * Persist extra configurations as details for VMware VMs */ protected void persistExtraConfigVmware(String decodedUrl, UserVm vm) { String[] configDataArr = decodedUrl.split("\\r?\\n"); for (String config: configDataArr) { String[] keyValue = config.split("="); try { userVmDetailsDao.addDetail(vm.getId(), keyValue[0], keyValue[1], true); } catch (ArrayIndexOutOfBoundsException e) { throw new CloudRuntimeException("Issue occurred during parsing of:" + config); } } }
private String getSshKey(VirtualMachineProfile profile) { final UserVmDetailVO vmDetailSshKey = _userVmDetailsDao.findDetail(profile.getId(), "SSH.PublicKey"); return (vmDetailSshKey!=null ? vmDetailSshKey.getValue() : null); }
List<UserVmDetailVO> vmDetails = _userVmDetailsDao.listDetails(userVm.getId()); if (vmDetails != null) { Map<String, String> resourceDetails = new HashMap<String, String>();
@Override public ServiceOfferingVO findByIdIncludingRemoved(Long vmId, long serviceOfferingId) { ServiceOfferingVO offering = super.findByIdIncludingRemoved(serviceOfferingId); if (offering.isDynamic()) { offering.setDynamicFlag(true); if (vmId == null) { throw new CloudRuntimeException("missing argument vmId"); } Map<String, String> dynamicOffering = userVmDetailsDao.listDetailsKeyPairs(vmId); return getcomputeOffering(offering, dynamicOffering); } return offering; }