X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/93de0c02b63e2eb954a00d4e8b481b5df0560dfb..12e56e415bc26112324be2f9da706e462c51e4b5:/code/main.py diff --git a/code/main.py b/code/main.py index 86da50e..0f77cee 100755 --- a/code/main.py +++ b/code/main.py @@ -488,6 +488,8 @@ 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_netmask', 'NIC %s Netmask'), + ('nic%s_gateway', 'NIC %s Gateway'), ] nic_fields = [] for i in range(len(machine.nics)): @@ -495,6 +497,23 @@ 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_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)" + elif other_action == 'remove': + other += " (will be removed at next cold boot or DHCP lease renewal)" + else: + 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 @@ -649,6 +668,11 @@ def infoDict(username, state, machine): display_fields = (display_fields[:disk_point] + disk_fields + display_fields[disk_point+1:]) + renumber = False + for n in machine.nics: + if n.other_action in ('renumber', 'renumber_dhcp'): + renumber = True + main_status['memory'] += ' MiB' for field, disp in display_fields: if field in ('uptime', 'cputime') and locals()[field] is not None: @@ -671,6 +695,7 @@ def infoDict(username, state, machine): defaults.disk = "%0.2f" % (machine.disks[0].size/1024.) d = dict(user=username, on=status is not None, + renumber=renumber, machine=machine, defaults=defaults, has_vnc=has_vnc,