Correct the incomplete fix from r1155
[invirt/packages/invirt-web.git] / code / controls.py
index 4576a2e..7b4558e 100644 (file)
@@ -9,7 +9,7 @@ import yaml
 
 from invirt.config import structs as config
 from invirt.database import Machine, Disk, Type, NIC, CDROM, session, meta
-from invirt.remctl import remctl
+from invirt.remctl import remctl as gen_remctl
 
 # ... and stolen from xend/uuid.py
 def randomUUID():
@@ -23,6 +23,11 @@ def uuidToString(u):
                      "%02x" * 6]) % tuple(u)
 # end stolen code
 
+def remctl(*args, **kwargs):
+    return gen_remctl(config.remote.hostname,
+                      principal='daemon/'+config.web.hostname,
+                      *args, **kwargs)
+
 def lvcreate(machine, disk):
     """Create a single disk for a machine"""
     remctl('web', 'lvcreate', machine.name,
@@ -46,6 +51,7 @@ def lvinstall(machine, autoinstall):
     remctl('control', machine.name, 'install', 
            'dist=%s' % autoinstall.distribution,
            'mirror=%s' % autoinstall.mirror,
+           'arch=%s' % autoinstall.arch,
            'imagesize=%s' % imagesize)
 
 def lvcopy(machine_orig_name, machine, rootpw):
@@ -82,7 +88,7 @@ def createVm(username, state, owner, contact, name, description, memory, disksiz
         machine.description = description
         machine.memory = memory
         machine.owner = owner
-        machine.administrator = owner
+        machine.administrator = None
         machine.contact = contact
         machine.uuid = uuidToString(randomUUID())
         machine.boot_off_cd = True
@@ -166,6 +172,13 @@ def listHost(machine):
         return None
     return out.strip()
 
+def vnctoken(machine):
+    """Return a time-stamped VNC token"""
+    out, err = remctl('control', machine.name, 'vnctoken', err=True)
+    if err:
+        return None
+    return out.strip()
+
 def deleteVM(machine):
     """Delete a VM."""
     remctl('control', machine.name, 'destroy', err=True)