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 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 #3
0
 def _get_or_bootstrap_cdn(self, cdn_id):
     try:
         return CDN.get(CDN.id == cdn_id)
     except DoesNotExist:
         try:
             cdn_data = self.bootstrapper.lookup_cdn(id)
             cdn = CDN(**cdn_data)
             cdn.save(force_insert=True)
             return cdn
         except BootstrapError:
             raise DoesNotExist