#!/data/virtualenvs/linode/bin/python2 import argparse import sys import utils import config parser = argparse.ArgumentParser() parser.add_argument('datacenter') args = parser.parse_args() api = utils.get_api(config.linode_api_key) dcs = utils.get_datacenter_dict(api) if not args.datacenter in dcs: raise RuntimeError('Invalid datacenter') dc = dcs[args.datacenter] private_ips = [] linodes = api.linode_list() for linode in linodes: if linode['DATACENTERID'] != dc['DATACENTERID']: sys.stderr.write("INFO: Skipping %s from datacenter %s\n" % (linode['LABEL'], linode['DATACENTERID'])) continue ips = api.linode_ip_list(LinodeID=linode['LINODEID']) found = False for ip in ips: if not ip['ISPUBLIC']: private_ips.append(ip['IPADDRESS']) found = True if not found: sys.stderr.write("WARNING: %s does not have a private IP address\n" % linode['LABEL']) print "# ********************" print "# DO NOT EDIT MANUALLY" print "# ********************" print "# Generated by: build_backend_private_ips_jinja.py" print "" print "{% set addresses = [" for ip in sorted(private_ips): print " '%s'," % ip print "] %}"