nic_fields_template = [('nic%s_hostname', 'NIC %s Hostname'),
('nic%s_mac', 'NIC %s MAC Addr'),
('nic%s_ip', 'NIC %s IP'),
+ ('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_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, 'contact'):
machine.contact = validate.contact
- session.save_or_update(machine)
+ session.add(machine)
session.commit()
except:
session.rollback()
if disk.size != disksize:
olddisk[disk.guest_device_name] = disksize
disk.size = disksize
- session.save_or_update(disk)
+ session.add(disk)
for diskname in olddisk:
controls.resizeDisk(oldname, diskname, str(olddisk[diskname]))
- session.save_or_update(machine)
+ session.add(machine)
session.commit()
except:
session.rollback()
n.hostname = validate.name
if hasattr(validate, 'name'):
controls.renameMachine(machine, oldname, validate.name)
- session.save_or_update(machine)
+ session.add(machine)
session.commit()
except:
session.rollback()
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,