Good afternoon,
Paul wrote separately to the list to highlight a good direction for libcloud,
which would be the inclusion of DNS management. Many providers have DNS APIs, as
Paul mentioned, which means it is an opportune area for libcloud to manage. I
volunteer to get the ball rolling on this.
Linode's API abstracts DNS to Domain objects and Resource objects, which I feel
is the abstraction that makes the most sense. All Resources supported by the
Linode Manager are of the same 'class' -- that is, Resource -- without
subclassing each record type. Any feedback on this abstraction?
Domain
- create_domain
- delete_domain (destroy_domain for consistency with compute?)
- update_domain?
- list_domains
Resource
- create_resource(domain)
- delete_resource(domain)
- update_resource(domain)
- list_resources(domain)
It's basically Domain CRUD, Resource CRUD. That's the entire DNS product.
Linode also has master and slave domains (slave domains merely have a set of
masters that are slaved by the nameservers), but it's debatable whether such an
abstraction is useful in libcloud. My limited experience with other providers
leads me to believe Linode is the only provider that offers this.
In libcloud, it might be worth it to subclass each record type (A, CNAME, SRV)
to its own subclass, but I doubt it. Thoughts on this?
Just starting conversation, as my earliest crack at implementation would be this
weekend. I have a plate of work to do on libcloud, including adding NodeBalancer
support (Linode's beta LBaaS product).
Regards,
--
Jed Smith
[email protected]