Beispiel #1
0
 def _get_or_create_cdn(cls, cdn_id, create=True):
     try:
         return CDN.get(CDN.id == cdn_id), False
     except DoesNotExist:
         if create:
             return CDN.create(id=cdn_id), True
         return None, None
Beispiel #2
0
 def _get_or_create_cdn(cls, cdn_id, create=True):
     try:
         return CDN.get(CDN.id == cdn_id), False
     except DoesNotExist:
         if create:
             return CDN.create(id=cdn_id), True
         return None, None
Beispiel #3
0
    def test_database(self):
        initialize_database(":memory:", reset=True)

        cdn1 = CDN.create(id="cdn1", name="Sample CDN", edge_server="1.2.3.4")
        cdn2 = CDN.create(id="cdn2", name="Sample CDN2", edge_server="1.2.3.5")
        host1 = Host.create(hostname="first.host", cdn=cdn1)
        host2 = Host.create(hostname="second.host", cdn=cdn2)
        host3 = Host.create(hostname="third.host", cdn=cdn1)

        self.assertEqual([host1, host2, host3], list(Host.select()))
        self.assertEqual([host1, host3], Host.select().where(Host.cdn == cdn1))
        self.assertEqual([host1, host3], Host.select().join(CDN).where(CDN.id == 'cdn1'))
        self.assertEqual(host2, Host.get(Host.cdn == cdn2))

        self.assertEqual([], CDN.select().where(CDN.id == "doesntexist"))
        with self.assertRaises(DoesNotExist):
            CDN.get(CDN.id == "doesntexist")
Beispiel #4
0
    def _get_or_bootstrap_host(self, hostname):
        try:
            return Host.get(Host.hostname == hostname)
        except DoesNotExist:
            try:
                host_data = self.bootstrapper.lookup_host(hostname)
            except BootstrapError:
                raise DoesNotExist

            host = Host(**host_data)

            try:
                host.cdn = self._get_or_bootstrap_cdn(host.cdn_id)
            except DoesNotExist:
                host.cdn = CDN.create(id=host.cdn_id, valid=False)

            host.save(force_insert=True)

            return host
Beispiel #5
0
 def test_unavailable_host__host_in_db__available_cdn__cdn_in_db_with_no_edge(self):
     cdn = CDN.create(id="thecdn")
     Host.create(hostname="host.db", cdn=cdn)
     self.bootstrapper.bootstrap('host.db')
Beispiel #6
0
    def test_unavailable_host__host_in_db__unavailable_cdn__cdn_in_db_with_no_edge(self):
        cdn = CDN.create(id="missingcdn")
        Host.create(hostname="host.db", cdn=cdn)

        with self.assertRaises(CDNNotAvailableError):
            self.bootstrapper.bootstrap('missingcdn.host')