You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ra...@apache.org on 2016/02/24 00:39:23 UTC
[2/5] git commit: updated refs/heads/master to 4480d05
CLOUDSTACK-9211: Add javadoc and refactor method
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/448b43fa
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/448b43fa
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/448b43fa
Branch: refs/heads/master
Commit: 448b43faeae58c923fe52c5540d604db03d70b15
Parents: 656ae10
Author: nvazquez <ni...@gmail.com>
Authored: Thu Jan 14 17:26:36 2016 -0200
Committer: nvazquez <ni...@gmail.com>
Committed: Thu Jan 14 17:26:36 2016 -0200
----------------------------------------------------------------------
.../vmware/resource/VmwareResource.java | 88 ++++++++++++--------
1 file changed, 51 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/448b43fa/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
index 7248b08..6796c47 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
@@ -1896,9 +1896,8 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
postDiskConfigBeforeStart(vmMo, vmSpec, sortedDisks, ideControllerKey, scsiControllerKey, iqnToPath, hyperHost, context);
- //Sets video card memory to the one provided in detail svga.vramSize (if provided), 64MB was always set before
postVideoCardMemoryConfigBeforeStart(vmMo, vmSpec);
-
+
//
// Power-on VM
//
@@ -1947,42 +1946,57 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
}
}
+ /**
+ * Sets video card memory to the one provided in detail svga.vramSize (if provided).
+ * 64MB was always set before.
+ * Size must be in KB.
+ * @param vmMo virtual machine mo
+ * @param vmSpec virtual machine specs
+ */
private void postVideoCardMemoryConfigBeforeStart(VirtualMachineMO vmMo, VirtualMachineTO vmSpec) {
- String paramVRamSize = "svga.vramSize";
- if (vmSpec.getDetails().containsKey(paramVRamSize)){
- String value = vmSpec.getDetails().get(paramVRamSize);
- try {
- long svgaVmramSize = Long.parseLong(value);
- for (VirtualDevice device : vmMo.getAllDeviceList()){
- if (device instanceof VirtualMachineVideoCard){
- VirtualMachineVideoCard videoCard = (VirtualMachineVideoCard) device;
- if (videoCard.getVideoRamSizeInKB().longValue() != svgaVmramSize){
- s_logger.info("Video card memory was set " + videoCard.getVideoRamSizeInKB().longValue() + "kb instead of " + svgaVmramSize + "kb");
- videoCard.setVideoRamSizeInKB(svgaVmramSize);
- videoCard.setUseAutoDetect(false);
-
- VirtualDeviceConfigSpec arrayVideoCardConfigSpecs = new VirtualDeviceConfigSpec();
- arrayVideoCardConfigSpecs.setDevice(videoCard);
- arrayVideoCardConfigSpecs.setOperation(VirtualDeviceConfigSpecOperation.EDIT);
-
- VirtualMachineConfigSpec changeVideoCardSpecs = new VirtualMachineConfigSpec();
- changeVideoCardSpecs.getDeviceChange().add(arrayVideoCardConfigSpecs);
-
- boolean res = vmMo.configureVm(changeVideoCardSpecs);
- if (res) {
- s_logger.info("Video card memory successfully updated to " + svgaVmramSize + "kb");
- }
- }
- }
- }
- }
- catch (NumberFormatException e){
- s_logger.error("Unexpected value, cannot parse " + value + " to long due to: " + e.getMessage());
- }
- catch (Exception e){
- s_logger.error("Error while reconfiguring vm due to: " + e.getMessage());
- }
- }
+ String paramVRamSize = "svga.vramSize";
+ if (vmSpec.getDetails().containsKey(paramVRamSize)){
+ String value = vmSpec.getDetails().get(paramVRamSize);
+ try {
+ long svgaVmramSize = Long.parseLong(value);
+ for (VirtualDevice device : vmMo.getAllDeviceList()){
+ if (device instanceof VirtualMachineVideoCard){
+ VirtualMachineVideoCard videoCard = (VirtualMachineVideoCard) device;
+ if (videoCard.getVideoRamSizeInKB().longValue() != svgaVmramSize){
+ s_logger.info("Video card memory was set " + videoCard.getVideoRamSizeInKB().longValue() + "kb instead of " + svgaVmramSize + "kb");
+ boolean res = vmMo.configureVm(configSpecVideoCardNewVRamSize(videoCard, svgaVmramSize));
+ if (res) {
+ s_logger.info("Video card memory successfully updated to " + svgaVmramSize + "kb");
+ }
+ }
+ }
+ }
+ }
+ catch (NumberFormatException e){
+ s_logger.error("Unexpected value, cannot parse " + value + " to long due to: " + e.getMessage());
+ }
+ catch (Exception e){
+ s_logger.error("Error while reconfiguring vm due to: " + e.getMessage());
+ }
+ }
+ }
+
+ /**
+ * Returns a VirtualMachineConfigSpec to edit its svga vram size
+ * @param videoCard video card device to edit providing the svga vram size
+ * @param svgaVmramSize new svga vram size
+ */
+ private VirtualMachineConfigSpec configSpecVideoCardNewVRamSize(VirtualMachineVideoCard videoCard, long svgaVmramSize){
+ videoCard.setVideoRamSizeInKB(svgaVmramSize);
+ videoCard.setUseAutoDetect(false);
+
+ VirtualDeviceConfigSpec arrayVideoCardConfigSpecs = new VirtualDeviceConfigSpec();
+ arrayVideoCardConfigSpecs.setDevice(videoCard);
+ arrayVideoCardConfigSpecs.setOperation(VirtualDeviceConfigSpecOperation.EDIT);
+
+ VirtualMachineConfigSpec changeVideoCardSpecs = new VirtualMachineConfigSpec();
+ changeVideoCardSpecs.getDeviceChange().add(arrayVideoCardConfigSpecs);
+ return changeVideoCardSpecs;
}
private void tearDownVm(VirtualMachineMO vmMo) throws Exception{