Ejemplo n.º 1
0
    def test_create_delete_create(self):
        isd = ISD.objects.create(isd_id=1, label='one')

        as1_id = 'ffaa:0:0101'
        as1_ia = '%i-%s' % (isd.isd_id, as1_id)
        AS.objects.create(isd, as1_id, is_core=True)

        trc_v1 = utils.check_trc_and_certs(self,
                                           1, {as1_ia},
                                           expected_version=1)

        AS.objects.filter(as_id=as1_id).delete()
        isd.refresh_from_db()

        trc_v2 = utils.check_trc_and_certs(self,
                                           1, {},
                                           expected_version=2,
                                           prev_trc=trc_v1)

        AS.objects.create(isd, as1_id, is_core=True)

        utils.check_trc_and_certs(self,
                                  1, {as1_ia},
                                  expected_version=3,
                                  prev_trc=trc_v2)
Ejemplo n.º 2
0
    def test_create_initial(self):
        isd = ISD.objects.get(isd_id=19)

        _reset_trc_and_certificates(isd)
        isd.update_trc_and_certificates()

        utils.check_trc_and_certs(self,
                                  19,
                                  self.isd19_core_ases,
                                  expected_version=1)
Ejemplo n.º 3
0
    def test_update_core_cert(self):
        isd = ISD.objects.get(isd_id=19)
        utils.check_trc_and_certs(self,
                                  19,
                                  self.isd19_core_ases,
                                  expected_version=1)

        AS.update_core_as_keys(isd.ases.filter(is_core=True))
        utils.check_trc_and_certs(self,
                                  19,
                                  self.isd19_core_ases,
                                  expected_version=2)
Ejemplo n.º 4
0
    def test_create_initial(self):
        isd = ISD.objects.get(isd_id=19)

        _reset_trc_and_certificates(isd)
        self.assertEqual(isd.trc, None)
        self.assertEqual(isd.trc_priv_keys, None)
        isd.init_trc_and_certificates()

        utils.check_trc_and_certs(self,
                                  19,
                                  self.isd19_core_ases,
                                  expected_version=1)
Ejemplo n.º 5
0
    def test_random_mutations(self):
        NUM_MUTATIONS = 66
        random.seed(5)

        isd_id = 1

        def make_as_id(i):
            return "ffaa:0:%x" % i

        ISD.objects.create(isd_id=isd_id, label='some')

        expected_serial_version = 1
        expected_set = set()

        for i in range(NUM_MUTATIONS):
            if not expected_set or random.getrandbits(1):
                # add one: i+1 has not been used yet
                as_id = make_as_id(i + 1)
                expected_set.add(as_id)
                AS.objects.create(ISD.objects.get(isd_id=isd_id),
                                  as_id,
                                  is_core=True)
            else:
                as_id = random.sample(expected_set, 1)[0]
                expected_set.remove(as_id)
                # Let's test both ways:
                if random.getrandbits(1):
                    AS.objects.filter(as_id=as_id).delete()
                else:
                    AS.objects.get(as_id=as_id).delete()

            # Skip check and version increment if expected_set is empty -- no TRCs are created
            # if there are no core ASes.
            if expected_set:
                utils.check_trc_and_certs(
                    self,
                    isd_id,
                    expected_set,
                    expected_version=(expected_serial_version, 1))
                expected_serial_version += 1
Ejemplo n.º 6
0
    def test_create_delete_create(self):
        isd = ISD.objects.create(isd_id=1, label='one')

        as1_id = 'ffaa:0:101'
        as2_id = 'ffaa:0:102'
        AS.objects.create(isd, as1_id, is_core=True)
        utils.check_trc_and_certs(self, 1, {as1_id}, expected_version=1)

        AS.objects.create(isd, as2_id, is_core=True)
        utils.check_trc_and_certs(self,
                                  1, {as1_id, as2_id},
                                  expected_version=2)

        AS.objects.filter(as_id=as1_id).delete()
        utils.check_trc_and_certs(self, 1, {as2_id}, expected_version=3)

        AS.objects.create(isd, as1_id, is_core=True)
        utils.check_trc_and_certs(self,
                                  1, {as1_id, as2_id},
                                  expected_version=4)
Ejemplo n.º 7
0
    def test_random_mutations(self):
        NUM_MUTATIONS = 66
        random.seed(5)

        isd_id = 1

        def make_as_id(i):
            return "ffaa:0:%.4x" % i

        def ia(as_id):
            return "%i-%s" % (isd_id, as_id)

        ISD.objects.create(isd_id=isd_id, label='some')

        prev_trc = None
        expected_version = 1
        expected_set = set()

        for i in range(NUM_MUTATIONS):
            if not expected_set or random.getrandbits(1):
                # add one: i has not been used yet
                as_id = make_as_id(i)
                expected_set.add(as_id)
                AS.objects.create(ISD.objects.get(isd_id=isd_id),
                                  as_id,
                                  is_core=True)
            else:
                as_id = random.sample(expected_set, 1)[0]
                expected_set.remove(as_id)
                # Let's test both ways:
                if random.getrandbits(1):
                    AS.objects.filter(as_id=as_id).delete()
                else:
                    AS.objects.get(as_id=as_id).delete()

            trc = utils.check_trc_and_certs(
                self,
                isd_id, {ia(as_id)
                         for as_id in expected_set},
                expected_version=expected_version,
                prev_trc=prev_trc)
            expected_version += 1
            prev_trc = trc
Ejemplo n.º 8
0
    def test_create_update(self):
        isd = ISD.objects.get(isd_id=19)
        utils.check_trc_and_certs(self,
                                  19,
                                  self.isd19_core_ases,
                                  expected_version=(1, 1))

        isd.update_trc_and_certificates()
        utils.check_trc_and_certs(self,
                                  19,
                                  self.isd19_core_ases,
                                  expected_version=(2, 1))

        isd.update_trc_and_certificates()
        utils.check_trc_and_certs(self,
                                  19,
                                  self.isd19_core_ases,
                                  expected_version=(3, 1))