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:24 UTC
[3/5] git commit: updated refs/heads/master to 4480d05
CLOUDSTACK-9211: Refactor vm vram size setter method
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4fcebfc8
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4fcebfc8
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4fcebfc8
Branch: refs/heads/master
Commit: 4fcebfc813628cdd87a2b96736b889da203dfe84
Parents: 448b43f
Author: nvazquez <ni...@gmail.com>
Authored: Mon Jan 18 12:09:11 2016 -0200
Committer: nvazquez <ni...@gmail.com>
Committed: Mon Jan 18 12:09:11 2016 -0200
----------------------------------------------------------------------
.../vmware/resource/VmwareResource.java | 46 ++++++++++++++------
1 file changed, 33 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4fcebfc8/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 6796c47..bdaf8cf 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
@@ -1959,18 +1959,7 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
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");
- }
- }
- }
- }
+ setNewVRamSizeVmVideoCard(vmMo, svgaVmramSize);
}
catch (NumberFormatException e){
s_logger.error("Unexpected value, cannot parse " + value + " to long due to: " + e.getMessage());
@@ -1982,9 +1971,40 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
}
/**
+ * Search for vm video card iterating through vm device list
+ * @param vmMo virtual machine mo
+ * @param svgaVmramSize new svga vram size (in KB)
+ */
+ private void setNewVRamSizeVmVideoCard(VirtualMachineMO vmMo, long svgaVmramSize) throws Exception {
+ for (VirtualDevice device : vmMo.getAllDeviceList()){
+ if (device instanceof VirtualMachineVideoCard){
+ VirtualMachineVideoCard videoCard = (VirtualMachineVideoCard) device;
+ modifyVmVideoCardVRamSize(videoCard, vmMo, svgaVmramSize);
+ }
+ }
+ }
+
+ /**
+ * Modifies vm vram size if it was set to a different size to the one provided in svga.vramSize (user_vm_details or template_vm_details)
+ * @param videoCard vm's video card device
+ * @param vmMo virtual machine mo
+ * @param svgaVmramSize new svga vram size (in KB)
+ */
+ private void modifyVmVideoCardVRamSize(VirtualMachineVideoCard videoCard, VirtualMachineMO vmMo, long svgaVmramSize) throws Exception {
+ if (videoCard.getVideoRamSizeInKB().longValue() != svgaVmramSize){
+ s_logger.info("Video card memory was set " + videoCard.getVideoRamSizeInKB().longValue() + "kb instead of " + svgaVmramSize + "kb");
+ VirtualMachineConfigSpec newSizeSpecs = configSpecVideoCardNewVRamSize(videoCard, svgaVmramSize);
+ boolean res = vmMo.configureVm(newSizeSpecs);
+ if (res) {
+ s_logger.info("Video card memory successfully updated to " + svgaVmramSize + "kb");
+ }
+ }
+ }
+
+ /**
* 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
+ * @param svgaVmramSize new svga vram size (in KB)
*/
private VirtualMachineConfigSpec configSpecVideoCardNewVRamSize(VirtualMachineVideoCard videoCard, long svgaVmramSize){
videoCard.setVideoRamSizeInKB(svgaVmramSize);