暂无描述

build_backend_private_ips_jinja.py 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #!/data/virtualenvs/linode/bin/python2
  2. import argparse
  3. import sys
  4. import utils
  5. import config
  6. parser = argparse.ArgumentParser()
  7. parser.add_argument('datacenter')
  8. args = parser.parse_args()
  9. api = utils.get_api(config.linode_api_key)
  10. dcs = utils.get_datacenter_dict(api)
  11. if not args.datacenter in dcs:
  12. raise RuntimeError('Invalid datacenter')
  13. dc = dcs[args.datacenter]
  14. private_ips = []
  15. linodes = api.linode_list()
  16. for linode in linodes:
  17. if linode['DATACENTERID'] != dc['DATACENTERID']:
  18. sys.stderr.write("INFO: Skipping %s from datacenter %s\n" % (linode['LABEL'], linode['DATACENTERID']))
  19. continue
  20. ips = api.linode_ip_list(LinodeID=linode['LINODEID'])
  21. found = False
  22. for ip in ips:
  23. if not ip['ISPUBLIC']:
  24. private_ips.append(ip['IPADDRESS'])
  25. found = True
  26. if not found:
  27. sys.stderr.write("WARNING: %s does not have a private IP address\n" % linode['LABEL'])
  28. print "# ********************"
  29. print "# DO NOT EDIT MANUALLY"
  30. print "# ********************"
  31. print "# Generated by: build_backend_private_ips_jinja.py"
  32. print ""
  33. print "{% set addresses = ["
  34. for ip in sorted(private_ips):
  35. print " '%s'," % ip
  36. print "] %}"