Asynchronous Zone Export
Large zone exports may take longer than various API timeouts if they are very large. These APIs should be fully asynchronous tasks.
When an export is requested, Designate should use some logic and figure out a suitable method for exporting a zone by the size.
The options:
Synchronously - Similar to how it works now, allow a user to follow a link in the Designate API and get a BIND9 formatted copy of the zone.
Swift - Designate will put the zonefile in a user's swift bucket, and give them a link back to that object.
API example:
POST /zones/
202 Accepted
{"id": "<task ID>", "status": PENDING}
.. Wait 1 second... Task is NOT done
GET /zones/
200 OK
{"id": "<task ID>", "status": PENDING}
.. Wait 5 minutes... Task is done
GET /zones/
200 OK
{"id": "<task ID>", "status": COMPLETE, "export": some link}
This was discussed at the Austin 2015 summer mid-cycle:
https:/
Blueprint information
- Status:
- Complete
- Approver:
- None
- Priority:
- High
- Drafter:
- Tim Simmons
- Direction:
- Needs approval
- Assignee:
- Tim Simmons
- Definition:
- Approved
- Series goal:
- Accepted for liberty
- Implementation:
- Implemented
- Milestone target:
- 1.0.0
- Started by
- Kiall Mac Innes
- Completed by
- Kiall Mac Innes
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Asynchronous Zone Export