Ejemplo n.º 1
0
    def test_get_ix_networks_for_asn(self):
        api = PeeringDB()
        asn = 29467

        # Must not exist
        self.assertIsNone(api.get_ix_networks_for_asn(64500))

        known_ix_networks = [
            29146,
            15321,
            24292,
            15210,
            16774,
            14657,
            23162,
            14659,
            17707,
            27863,
            48704,
            51129,
        ]
        found_ix_networks = []

        ix_networks = api.get_ix_networks_for_asn(asn)
        for ix_network in ix_networks:
            found_ix_networks.append(ix_network.id)

        self.assertEqual(sorted(found_ix_networks), sorted(known_ix_networks))
Ejemplo n.º 2
0
    def get_objects(self):
        objects = []
        known_objects = []
        api = PeeringDB()

        for ix in InternetExchange.objects.all():
            if ix.peeringdb_id:
                known_objects.append(ix.peeringdb_id)

        ix_networks = api.get_ix_networks_for_asn(settings.MY_ASN) or []
        slugs_occurences = {}

        for ix_network in ix_networks:
            if ix_network.id not in known_objects:
                slug = slugify(ix_network.name)

                if slug in slugs_occurences:
                    slugs_occurences[slug] += 1
                    slug = "{}-{}".format(slug, slugs_occurences[slug])
                else:
                    slugs_occurences[slug] = 0

                objects.append({
                    "peeringdb_id": ix_network.id,
                    "name": ix_network.name,
                    "slug": slug,
                    "ipv6_address": ix_network.ipaddr6,
                    "ipv4_address": ix_network.ipaddr4,
                })

        return objects
    def test_get_ix_networks_for_asn(self, *_):
        api = PeeringDB()
        asn = 65536

        with patch("peeringdb.http.requests.get",
                   return_value=MockedResponse(status_code=404)):
            # Must not exist
            self.assertIsNone(api.get_ix_networks_for_asn(64500))

        known_ix_networks = [1, 2]
        found_ix_networks = []

        ix_networks = api.get_ix_networks_for_asn(asn)
        for ix_network in ix_networks:
            found_ix_networks.append(ix_network.id)

        self.assertEqual(sorted(found_ix_networks), sorted(known_ix_networks))
Ejemplo n.º 4
0
    def get_objects(self):
        objects = []
        known_objects = []
        api = PeeringDB()

        for ix in InternetExchange.objects.all():
            if ix.peeringdb_id:
                known_objects.append(ix.peeringdb_id)

        ix_networks = api.get_ix_networks_for_asn(settings.MY_ASN) or []
        for ix_network in ix_networks:
            if ix_network.id not in known_objects:
                objects.append({
                    "peeringdb_id": ix_network.id,
                    "name": ix_network.name,
                    "slug": slugify(ix_network.name),
                    "ipv6_address": ix_network.ipaddr6,
                    "ipv4_address": ix_network.ipaddr4,
                })

        return objects