Browse Source

Skip RS peer
Fix typo

McKay1717 6 years ago
parent
commit
654b764d7a
1 changed files with 32 additions and 28 deletions
  1. 32 28
      generate_peers.py

+ 32 - 28
generate_peers.py

@@ -31,34 +31,38 @@ for factory in gitoyen_peering_factory:
         info_request = ses.get(
         info_request = ses.get(
             "https://peeringdb.com/api/netixlan?asn=" + str(asn) + "&ix_id=" + str(factory['ix_id']))
             "https://peeringdb.com/api/netixlan?asn=" + str(asn) + "&ix_id=" + str(factory['ix_id']))
         result = info_request.json()['data']
         result = info_request.json()['data']
-        name_request = ses.get('https://peeringdb.com/api/net?asn=' + str(asn)).json()
-        peer[name][asn] = dict()
-        peer[name][asn]['description'] = name_request['data'][0]['name']
-        if name_request['data'][0]['irr_as_set'] is not None:
-            peer[name][asn]['import'] = name_request['data'][0]['irr_as_set']
-        else:
-            peer[name][asn]['import'] = "AS" + str(asn)
-        peer[name][asn]['export'] = "AS-GITOYEN"
-        peer[name][asn]['peerings'] = []
-        if name_request['data'][0]['info_prefixes4'] is not None:
-            peer[name][asn]['limit_ipv4'] = int(name_request['data'][0]['info_prefixes4'])
-        if name_request['data'][0]['info_prefixes6'] is not None:
-            peer[name][asn]['limit_ipv6'] = int(name_request['data'][0]['info_prefixes6'])
-        delete = True
-        for routeur in result:
-            if routeur['ipaddr4'] is not None:
-                peer[name][asn]['peerings'].append(routeur['ipaddr4'])
-                print(
-                    "Generating configuration at " + name + " for the router " + str(routeur['ipaddr4']) + " of the AS " + str(
-                        asn) + " " + peer[name][asn]['description'])
-            if routeur['ipaddr6'] is not None:
-                peer[name][asn]['peerings'].append(routeur['ipaddr6'])
-                print(
-                    "Generating configuration at " + name + " for the router " + str(routeur['ipaddr6']) + " of the AS " + str(
-                        asn) + " " + peer[name][asn]['description'])
-            delete = False
-        if delete:
-            peer[name].pop(asn, None)
+        if len(result) > 0:
+            if result[0]['is_rs_peer']:
+                print('AS'+str(asn)+" is a RS peer, skipping")
+                continue
+            name_request = ses.get('https://peeringdb.com/api/net?asn=' + str(asn)).json()
+            peer[name][asn] = dict()
+            peer[name][asn]['description'] = name_request['data'][0]['name']
+            if name_request['data'][0]['irr_as_set'] is not None:
+                peer[name][asn]['import'] = name_request['data'][0]['irr_as_set']
+            else:
+                peer[name][asn]['import'] = "AS" + str(asn)
+            peer[name][asn]['export'] = "AS-GITOYEN"
+            peer[name][asn]['peerings'] = []
+            if name_request['data'][0]['info_prefixes4'] is not None:
+                peer[name][asn]['limit_ipv4'] = int(name_request['data'][0]['info_prefixes4'])
+            if name_request['data'][0]['info_prefixes6'] is not None:
+                peer[name][asn]['limit_ipv6'] = int(name_request['data'][0]['info_prefixes6'])
+            delete = True
+            for routeur in result:
+                if routeur['ipaddr4'] is not None:
+                    peer[name][asn]['peerings'].append(routeur['ipaddr4'])
+                    print(
+                        "Generating configuration at " + name + " for the router " + str(routeur['ipaddr4']) + " of the AS " + str(
+                            asn) + " " + peer[name][asn]['description'])
+                if routeur['ipaddr6'] is not None:
+                    peer[name][asn]['peerings'].append(routeur['ipaddr6'])
+                    print(
+                        "Generating configuration at " + name + " for the router " + str(routeur['ipaddr6']) + " of the AS " + str(
+                            asn) + " " + peer[name][asn]['description'])
+                delete = False
+            if delete:
+                peer[name].pop(asn, None)
 
 
 for gix in peer:
 for gix in peer:
     with open("peers/" + gix + '.yml', 'w') as outfile:
     with open("peers/" + gix + '.yml', 'w') as outfile: