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
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,
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))
description = ''
administrator = ''
type = 'linux-hvm'
- nic = 'e1000'
def __init__(self, max_memory=None, max_disk=None, **kws):
if max_memory is not None:
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%s_netmask', 'NIC %s Netmask'),
+ ('nic%s_gateway', 'NIC %s Gateway'),
]
nic_fields = []
for i in range(len(machine.nics)):
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
+ data_dict['nic%s_netmask' % i] = machine.nics[i].netmask
+ data_dict['nic%s_gateway' % i] = machine.nics[i].gateway
+ if machine.nics[i].other_ip:
+ nic_fields.append(('nic%s_other' % i, 'NIC %s Other Address' % i))
+ other = '%s/%s via %s' % (machine.nics[i].other_ip, machine.nics[i].other_netmask, machine.nics[i].other_gateway)
+ other_action = machine.nics[i].other_action
+ if other_action == 'dnat':
+ other += " (NAT to primary IP)"
+ elif other_action == 'renumber':
+ other += " (cold boot or renew DHCP lease to swap)"
+ elif other_action == 'renumber_dhcp':
+ other += " (renew DHCP lease to swap)"
+ else:
+ # No message for renumber_dhcp since we don't know if
+ # they're using DHCP.
+ other += " (pending assignment)"
+ data_dict['nic%s_other' % i] = other
if len(machine.nics) == 1:
nic_fields = [(x, y.replace('NIC 0 ', '')) for x, y in nic_fields]
return nic_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
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,
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,