[Erp5-report] r35030 rafael - /erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/

nobody at svn.erp5.org nobody at svn.erp5.org
Thu May 6 01:12:19 CEST 2010


Author: rafael
Date: Thu May  6 01:12:17 2010
New Revision: 35030

URL: http://svn.erp5.org?rev=35030&view=rev
Log:
Added support for set VNC and Grafics.

Modified:
    erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/__init__.py
    erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/kvm.py

Modified: erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/__init__.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/__init__.py?rev=35030&r1=35029&r2=35030&view=diff
==============================================================================
--- erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/__init__.py [utf8] (original)
+++ erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/__init__.py [utf8] Thu May  6 01:12:17 2010
@@ -95,19 +95,26 @@
                      "\n        sys.argv[1]" % (ssh_user, ssh_hostname,
                                                 ssh_port, ssh_key_path)))
     script_name = "%s-ctl" % self.name
+    # XXX The followed code requires some improvements
     snapshot = "False"
     kvm_snapshot = options.get("kvm_snapshot", "true").lower()
     if kvm_snapshot == 'true': 
       snapshot = "True"
+
+    kvm_vnc = options.get("kvm_vnc", "")
+    kvm_graphic = options.get("kvm_graphic", "")
+
     kvm_pid_file = "%s/%s.pid" % (options.get('kvm_run_directory'), self.name)
     scripts = zc.buildout.easy_install.scripts(
         [(script_name,'erp5.recipe.kvm.kvm', 'ctl')],
         ws, options['executable'], options.get("kvm_bin_directory"),
         arguments = ("\n        '%s', '%s',      "
-                     "\n        '%s' , '%s', %s, "
+                     "\n        '%s' , '%s',     "
+		     "\n        %s , '%s', '%s', "
                      "\n        sys.argv[1]" % (image, ssh_port,
                                                 kvm_pid_file, self.name,
-                                                snapshot)))
+                                                snapshot, kvm_vnc, kvm_graphic))
+    # XXX Improvements until here
     return location
 
   def download(self):

Modified: erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/kvm.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/kvm.py?rev=35030&r1=35029&r2=35030&view=diff
==============================================================================
--- erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/kvm.py [utf8] (original)
+++ erp5/trunk/utils/erp5.recipe.kvm/src/erp5/recipe/kvm/kvm.py [utf8] Thu May  6 01:12:17 2010
@@ -2,20 +2,31 @@
 import os
 import signal
 
-BASE_COMMAND = "kvm -net nic,model=ne2k_pci -redir tcp:%s::22 -k fr -net user,hostname=%s -m 1024 -hda %s -daemonize -nographic -pidfile %s %s "
+BASE_COMMAND = "kvm -net nic,model=ne2k_pci -redir tcp:%s::22 -k fr -net user,hostname=%s -m 1024 %s -daemonize -pidfile %s %s "
 
 class Kvm:
-  def __init__(self, image, port, pid_file, hostname, snapshot=True):
+  def __init__(self, image, port, pid_file, hostname, 
+		     snapshot=True, vnc=None, graphic=None):
     """ Handle the KVM command for a certain image, and 
         start ssh in a certain port.
 
 	image: Image Path
     """
-    self.image = image
+    # XXX Make drive configuration configurable
+    #self.drive = "-drive file=" + ','.join([image, "if=virtio", "cache=none", "boot=on"])
+    self.drive = "-hda %s" % (image)
     self.ssh_port = port
     self.kvm_pid_file = pid_file
     self.kvm_hostname = hostname
     self.kvm_extra_args = ""
+    if vnc not in [None, ""]:
+      self.kvm_extra_args += " -vnc %s "
+
+    if graphic not in [None, ""]:
+      self.kvm_extra_args += " -vga %s " % (graphic)
+    else:
+      self.kvm_extra_args += " -nographic "
+
     if snapshot:
       self.kvm_extra_args += " -snapshot "
 
@@ -24,7 +35,7 @@
     """ Start Kvm in background."""
     command = BASE_COMMAND % ( self.ssh_port,
                                self.kvm_hostname,
-                               self.image,
+                               self.drive,
                                self.kvm_pid_file, 
                                self.kvm_extra_args)
     print command
@@ -59,10 +70,10 @@
     self.stop()
     self.start()
 
-def ctl(image, port, pid_file, hostname, snapshot, command):
+def ctl(image, port, pid_file, hostname, snapshot, vnc, graphic, command):
   """ Control KVM Command
   """
-  handler = Kvm(image, port, pid_file, hostname, snapshot)
+  handler = Kvm(image, port, pid_file, hostname, snapshot, vnc, graphic)
   command = getattr(handler, command, None)
   if command is not None:
     return command()




More information about the Erp5-report mailing list