You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ml...@apache.org on 2014/07/19 00:53:18 UTC

git commit: updated refs/heads/master to 849049a

Repository: cloudstack
Updated Branches:
  refs/heads/master 1bb3ea8b7 -> 849049a2f


KVM: Allow changing VM video card via agent.properties. This change in
LibvirtVMDef can also be leveraged to add the option to service offering
or template hardware selection (as nic and disk types do).


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/849049a2
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/849049a2
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/849049a2

Branch: refs/heads/master
Commit: 849049a2f0eac8f889dbb96bd77ea569e8901a48
Parents: 1bb3ea8
Author: Marcus Sorensen <ma...@betterservers.com>
Authored: Fri Jul 18 16:40:09 2014 -0600
Committer: Marcus Sorensen <ma...@betterservers.com>
Committed: Fri Jul 18 16:52:51 2014 -0600

----------------------------------------------------------------------
 .../kvm/resource/LibvirtComputingResource.java  | 10 +++++++++
 .../hypervisor/kvm/resource/LibvirtVMDef.java   | 22 ++++++++++++++++++++
 2 files changed, 32 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/849049a2/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
index 2ebab78..627c1fd 100755
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java
@@ -230,6 +230,7 @@ import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef.guestNetType;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.SerialDef;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.TermPolicy;
 import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.VirtioSerialDef;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.VideoDef;
 import com.cloud.hypervisor.kvm.storage.KVMPhysicalDisk;
 import com.cloud.hypervisor.kvm.storage.KVMStoragePool;
 import com.cloud.hypervisor.kvm.storage.KVMStoragePoolManager;
@@ -450,6 +451,8 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
     protected String _guestCpuMode;
     protected String _guestCpuModel;
     protected boolean _noKvmClock;
+    protected String _videoHw;
+    protected int _videoRam;
     private final Map <String, String> _pifs = new HashMap<String, String>();
     private final Map<String, VmStats> _vmStats = new ConcurrentHashMap<String, VmStats>();
 
@@ -800,6 +803,10 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
             _noMemBalloon = true;
         }
 
+        _videoHw = (String) params.get("vm.video.hardware");
+        value = (String) params.get("vm.video.ram");
+        _videoRam = NumbersUtil.parseInt(value, 0);
+
         value = (String)params.get("host.reserved.mem.mb");
         _dom0MinMem = NumbersUtil.parseInt(value, 0) * 1024 * 1024;
 
@@ -3747,6 +3754,9 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
             devices.addDevice(vserial);
         }
 
+        VideoDef videoCard = new VideoDef(_videoHw, _videoRam);
+        devices.addDevice(videoCard);
+
         ConsoleDef console = new ConsoleDef("pty", null, null, (short)0);
         devices.addDevice(console);
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/849049a2/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
index 8084035..6b29e9c 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java
@@ -1060,6 +1060,28 @@ public class LibvirtVMDef {
         }
     }
 
+    public static class VideoDef {
+        private String _videoModel;
+        private int _videoRam;
+
+        public VideoDef(String videoModel, int videoRam) {
+            _videoModel = videoModel;
+            _videoRam = videoRam;
+        }
+
+        @Override
+        public String toString() {
+            StringBuilder videoBuilder = new StringBuilder();
+            if (_videoModel != null && !_videoModel.isEmpty() && _videoRam != 0){
+                videoBuilder.append("<video>\n");
+                videoBuilder.append("<model type='" + _videoModel + "' vram='" + _videoRam + "'/>\n");
+                videoBuilder.append("</video>\n");
+                return videoBuilder.toString();
+            }
+            return "";
+        }
+    }
+
     public static class VirtioSerialDef {
         private final String _name;
         private String _path;