Asynchronous Zone Export

Registered by Tim Simmons on 2015-08-28

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/<id>/tasks/export

202 Accepted
{"id": "<task ID>", "status": PENDING}

.. Wait 1 second... Task is NOT done

GET /zones/tasks/exports/<task ID>

200 OK
{"id": "<task ID>", "status": PENDING}

.. Wait 5 minutes... Task is done

GET /zones/tasks/exports/<task ID>

200 OK
{"id": "<task ID>", "status": COMPLETE, "export": some link}

This was discussed at the Austin 2015 summer mid-cycle:
https://etherpad.openstack.org/p/designate_2015_summer_midcycle_meetup_zoneexport

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:
milestone icon 1.0.0
Started by
Kiall Mac Innes on 2015-09-02
Completed by
Kiall Mac Innes on 2015-09-02

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#q,topic:bp/async-export,n,z

Addressed by: https://review.openstack.org/217930
    Asynchronous Zone Export

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.