Add graphs of network usage by VMs.
[invirt/packages/invirt-web.git] / code / main.py
index 797f33b..86da50e 100755 (executable)
@@ -156,11 +156,6 @@ ParaVM machines do not support local console access over VNC.  To
 access the serial console of these machines, you can SSH with Kerberos
 to %s, using the name of the machine as your
 username.""" % config.console.hostname,
-            'Network Device': """
-While we recommend you use the Intel e1000 NIC, we've provided you the
-option of using the AMD PCnet NIC if you are using an old enough OS
-that doesn't have support for the e1000 NIC.
-""",
             'HVM/ParaVM': """
 HVM machines use the virtualization features of the processor, while
 ParaVM machines rely on a modified kernel to communicate directly with
@@ -217,7 +212,7 @@ console will suffer artifacts.
 
     def parseCreate(self, fields):
         kws = dict([(kw, fields[kw]) for kw in
-         'name description owner memory disksize vmtype cdrom nictype autoinstall'.split()
+         'name description owner memory disksize vmtype cdrom autoinstall'.split()
                     if fields[kw]])
         validate = validation.Validate(cherrypy.request.login,
                                        cherrypy.request.state,
@@ -226,7 +221,6 @@ console will suffer artifacts.
                     description=validate.description, memory=validate.memory,
                     disksize=validate.disksize, owner=validate.owner,
                     machine_type=getattr(validate, 'vmtype', Defaults.type),
-                    nic_type=getattr(validate, 'nictype', Defaults.nic),
                     cdrom=getattr(validate, 'cdrom', None),
                     autoinstall=getattr(validate, 'autoinstall', None))
 
@@ -409,7 +403,6 @@ class Defaults:
     description = ''
     administrator = ''
     type = 'linux-hvm'
-    nic = 'e1000'
 
     def __init__(self, max_memory=None, max_disk=None, **kws):
         if max_memory is not None:
@@ -495,7 +488,6 @@ def getNicInfo(data_dict, machine):
     nic_fields_template = [('nic%s_hostname', 'NIC %s Hostname'),
                            ('nic%s_mac', 'NIC %s MAC Addr'),
                            ('nic%s_ip', 'NIC %s IP'),
-                           ('nic%s_type', 'NIC %s Type'),
                            ]
     nic_fields = []
     for i in range(len(machine.nics)):
@@ -503,7 +495,6 @@ def getNicInfo(data_dict, machine):
         data_dict['nic%s_hostname' % i] = getHostname(machine.nics[i])
         data_dict['nic%s_mac' % i] = machine.nics[i].mac_addr
         data_dict['nic%s_ip' % i] = machine.nics[i].ip
-        data_dict['nic%s_type' % i] = machine.nics[i].nic_type
     if len(machine.nics) == 1:
         nic_fields = [(x, y.replace('NIC 0 ', '')) for x, y in nic_fields]
     return nic_fields
@@ -543,10 +534,6 @@ def modifyDict(username, state, machine_id, fields):
         if hasattr(validate, 'memory'):
             machine.memory = validate.memory
 
-        if hasattr(validate, 'nictype'):
-            for i in range(len(machine.nics)):
-                machine.nics[i] = validate.nictype
-
         if hasattr(validate, 'vmtype'):
             machine.type = validate.vmtype
 
@@ -607,7 +594,11 @@ def modifyDict(username, state, machine_id, fields):
 
 def infoDict(username, state, machine):
     """Get the variables used by info.tmpl."""
-    status = controls.statusInfo(machine)
+    try:
+        status = controls.statusInfo(machine)
+    except CodeError, e:
+        # machine was shut down in between the call to listInfoDict and this
+        status = None
     has_vnc = hasVnc(status)
     if status is None:
         main_status = dict(name=machine.name,
@@ -676,7 +667,6 @@ def infoDict(username, state, machine):
     for name in 'machine_id name description administrator owner memory contact'.split():
         if getattr(machine, name):
             setattr(defaults, name, getattr(machine, name))
-    defaults.nic = machine.nics[0].nic_type
     defaults.type = machine.type.type_id
     defaults.disk = "%0.2f" % (machine.disks[0].size/1024.)
     d = dict(user=username,