peers2ripe.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. from xml.dom.ext.reader import Sax
  2. from xml.dom import Node
  3. peersfile = "/usr/local/gitoyen-peers/peers.xml"
  4. neighbors = {}
  5. def visit(node):
  6. if node.nodeType == Node.ELEMENT_NODE:
  7. if node.nodeName == "peer":
  8. neighbor = {}
  9. for element in node.childNodes:
  10. if element.nodeName == "name":
  11. neighbor["name"] = element.childNodes[0].nodeValue
  12. elif element.nodeName == "as":
  13. neighbor["as"] = element.childNodes[0].nodeValue
  14. elif element.nodeName == "as-set":
  15. neighbor["as-set"] = element.childNodes[0].nodeValue
  16. if (not neighbors.has_key(neighbor["name"])):
  17. neighbors[neighbor["name"]] = neighbor
  18. return None
  19. if __name__ == '__main__':
  20. tree = Sax.FromXmlFile(peersfile)
  21. for peer in tree.documentElement.childNodes:
  22. visit(peer)
  23. for name in neighbors.keys():
  24. peer = neighbors[name]
  25. print "import: from AS" + str(peer["as"])
  26. print " action pref=100;"
  27. if (peer.has_key("as-set")):
  28. print " accept AS-" + str(peer["as-set"])
  29. else:
  30. print " accept AS" + str(peer["as"])