예제 #1
0
    def test_export_domain(self):
        user = '******'
        zone_fixture = self.useFixture(ZoneFixture(user=user))
        zone = zone_fixture.created_zone

        export_fixture = self.useFixture(ZoneExportFixture(zone.id, user=user))
        export_id = export_fixture.zone_export.id

        export_client = ZoneExportClient.as_user(user)

        resp, model = export_client.get_zone_export(export_id)
        self.assertEqual(200, resp.status)
        self.assertEqual('COMPLETE', model.status)

        # fetch the zone file
        resp, zone_file = export_client.get_exported_zone(export_id)
        self.assertEqual(200, resp.status)
        self.assertEqual(zone.name, zone_file.origin)
        self.assertEqual(zone.ttl, zone_file.ttl)

        # the list of records in the zone file must match the zone's recordsets
        # (in this case there should be only two records - a SOA and an NS?)
        recordset_client = RecordsetClient.as_user(user)
        resp, model = recordset_client.list_recordsets(zone.id)
        records = []
        for recordset in model.recordsets:
            records.extend(ZoneFileRecord.records_from_recordset(recordset))
        self.assertEqual(set(records), set(zone_file.records))

        export_client.delete_zone_export(export_id)
        self.assertRaises(NotFound,
            lambda: export_client.get_zone_export(export_id))
예제 #2
0
    def test_export_domain(self):
        user = '******'
        zone_fixture = self.useFixture(ZoneFixture(user=user))
        zone = zone_fixture.created_zone

        export_fixture = self.useFixture(ZoneExportFixture(zone.id, user=user))
        export_id = export_fixture.zone_export.id

        export_client = ZoneExportClient.as_user(user)

        resp, model = export_client.get_zone_export(export_id)
        self.assertEqual(200, resp.status)
        self.assertEqual('COMPLETE', model.status)

        # fetch the zone file
        resp, zone_file = export_client.get_exported_zone(export_id)
        self.assertEqual(200, resp.status)
        self.assertEqual(zone.name, zone_file.origin)
        self.assertEqual(zone.ttl, zone_file.ttl)

        # the list of records in the zone file must match the zone's recordsets
        # (in this case there should be only two records - a SOA and an NS?)
        recordset_client = RecordsetClient.as_user(user)
        resp, model = recordset_client.list_recordsets(zone.id)
        records = []
        for recordset in model.recordsets:
            records.extend(ZoneFileRecord.records_from_recordset(recordset))
        self.assertEqual(set(records), set(zone_file.records))

        export_client.delete_zone_export(export_id)
        self.assertRaises(NotFound,
                          lambda: export_client.get_zone_export(export_id))
예제 #3
0
 def _export_zone(self):
     client = ZoneExportClient.as_user(self.user)
     self.post_resp, self.zone_export = client.post_zone_export(
         self.zone_id)
     assert self.post_resp.status == 202
     self.addCleanup(self.cleanup_zone_export, client, self.zone_export.id)
     client.wait_for_zone_export(self.zone_export.id)
예제 #4
0
 def _export_zone(self):
     client = ZoneExportClient.as_user(self.user)
     self.post_resp, self.zone_export = client.post_zone_export(
         self.zone_id)
     assert self.post_resp.status == 202
     self.addCleanup(self.cleanup_zone_export, client, self.zone_export.id)
     client.wait_for_zone_export(self.zone_export.id)
예제 #5
0
    def test_import_domain(self):
        user = '******'
        resp, zone = ZoneClient.as_user(user).post_zone(
            datagen.random_zone_data())
        ZoneClient.as_user(user).wait_for_zone(zone.id)

        export_client = ZoneExportClient.as_user(user)

        resp, model = export_client.post_zone_export(zone.id)

        export_id = model.id
        self.assertEqual(resp.status, 202)
        self.assertEqual(model.status, 'PENDING')
        export_client.wait_for_zone_export(export_id)

        resp, model = export_client.get_zone_export(export_id)
        self.assertEqual(resp.status, 200)
        self.assertEqual(model.status, 'COMPLETE')

        resp, body = export_client.get_exported_zone(export_id)
        self.assertEqual(resp.status, 200)

        export_client.delete_zone_export(export_id)
        self.assertRaises(NotFound,
            lambda: export_client.get_zone_export(model.id))