[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