/usr/lib/python2.6/site-packages/cloudinit
NameSizeModeActions
config/-0755rm
distros/-0755rm
filters/-0755rm
handlers/-0755rm
mergers/-0755rm
sources/-0755rm
cloud.py34970644editdlrm
cloud.pyc37230644editdlrm
cloud.pyo37230644editdlrm
cs_utils.py33210644editdlrm
cs_utils.pyc42660644editdlrm
cs_utils.pyo42660644editdlrm
ec2_utils.py65770644editdlrm
ec2_utils.pyc57550644editdlrm
ec2_utils.pyo57550644editdlrm
helpers.py150450644editdlrm
helpers.pyc166000644editdlrm
helpers.pyo166000644editdlrm
importer.py23170644editdlrm
importer.pyc15020644editdlrm
importer.pyo15020644editdlrm
log.py46200644editdlrm
log.pyc37000644editdlrm
log.pyo37000644editdlrm
netinfo.py68540644editdlrm
netinfo.pyc53470644editdlrm
netinfo.pyo53470644editdlrm
patcher.py18200644editdlrm
patcher.pyc15310644editdlrm
patcher.pyo15310644editdlrm
safeyaml.py10600644editdlrm
safeyaml.pyc8910644editdlrm
safeyaml.pyo8910644editdlrm
settings.py21110644editdlrm
settings.pyc10350644editdlrm
settings.pyo10350644editdlrm
signal_handler.py23780644editdlrm
signal_handler.pyc23260644editdlrm
signal_handler.pyo23260644editdlrm
ssh_util.py106360644editdlrm
ssh_util.pyc100720644editdlrm
ssh_util.pyo100720644editdlrm
stages.py279440644editdlrm
stages.pyc213990644editdlrm
stages.pyo213990644editdlrm
templater.py13620644editdlrm
templater.pyc10030644editdlrm
templater.pyo10030644editdlrm
type_utils.py12240644editdlrm
type_utils.pyc5240644editdlrm
type_utils.pyo5240644editdlrm
url_helper.py128520644editdlrm
url_helper.pyc112950644editdlrm
url_helper.pyo112950644editdlrm
user_data.py131430644editdlrm
user_data.pyc95690644editdlrm
user_data.pyo95690644editdlrm
util.py622590644editdlrm
util.pyc574450644editdlrm
util.pyo574450644editdlrm
version.py8540644editdlrm
version.pyc5610644editdlrm
version.pyo5610644editdlrm
__init__.py9250644editdlrm
__init__.pyc1410644editdlrm
__init__.pyo1410644editdlrm
Edit: /usr/lib/python2.6/site-packages/cloudinit/netinfo.py (6854B)
# vi: ts=4 expandtab # # Copyright (C) 2012 Canonical Ltd. # Copyright (C) 2012 Hewlett-Packard Development Company, L.P. # Copyright (C) 2012 Yahoo! Inc. # # Author: Scott Moser # Author: Juerg Haefliger # Author: Joshua Harlow # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License version 3, as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import cloudinit.util as util import re from prettytable import PrettyTable def netdev_info(empty=""): fields = ("hwaddr", "addr", "bcast", "mask") (ifcfg_out, _err) = util.subp(["ifconfig", "-a"]) devs = {} for line in str(ifcfg_out).splitlines(): if len(line) == 0: continue if line[0] not in ("\t", " "): curdev = line.split()[0] devs[curdev] = {"up": False} for field in fields: devs[curdev][field] = "" toks = line.lower().strip().split() if toks[0] == "up": devs[curdev]['up'] = True # If the output of ifconfig doesn't contain the required info in the # obvious place, use a regex filter to be sure. elif len(toks) > 1: if re.search(r"flags=\d+= 0: return "%s[%s]" % (r['gateway'], r['iface']) return None def netdev_pformat(): lines = [] try: netdev = netdev_info(empty=".") except Exception: lines.append(util.center("Net device info failed", '!', 80)) netdev = None if netdev is not None: fields = ['Device', 'Up', 'Address', 'Mask', 'Hw-Address'] tbl = PrettyTable(fields) for (dev, d) in netdev.iteritems(): tbl.add_row([dev, d["up"], d["addr"], d["mask"], d["hwaddr"]]) netdev_s = tbl.get_string() max_len = len(max(netdev_s.splitlines(), key=len)) header = util.center("Net device info", "+", max_len) lines.extend([header, netdev_s]) return "\n".join(lines) def route_pformat(): lines = [] try: routes = route_info() except Exception: lines.append(util.center('Route info failed', '!', 80)) routes = None if routes is not None: fields = ['Route', 'Destination', 'Gateway', 'Genmask', 'Interface', 'Flags'] tbl = PrettyTable(fields) for (n, r) in enumerate(routes): route_id = str(n) tbl.add_row([route_id, r['destination'], r['gateway'], r['genmask'], r['iface'], r['flags']]) route_s = tbl.get_string() max_len = len(max(route_s.splitlines(), key=len)) header = util.center("Route info", "+", max_len) lines.extend([header, route_s]) return "\n".join(lines) def debug_info(prefix='ci-info: '): lines = [] netdev_lines = netdev_pformat().splitlines() if prefix: for line in netdev_lines: lines.append("%s%s" % (prefix, line)) else: lines.extend(netdev_lines) route_lines = route_pformat().splitlines() if prefix: for line in route_lines: lines.append("%s%s" % (prefix, line)) else: lines.extend(route_lines) return "\n".join(lines)