Jump to: navigation, search

QuantumAPIBase

Summary of results from Diablo Summit (taken from summary slides)

Core API for diablo is simple, focused on connectivity. Core API will evolve. A draft of the Quantum API specification can be found here. Also, this page contains some typical use cases for the Quantum API.

  • Services (e.g., nova, atlas) expose interface-IDs via their own tenant APIs to represent any device from that service that can be “plugged” into a virtual network.
    • Example: nova.foo.com/<tenant-id>/server/<server-id>/eth0
  • Tenants use Quantum API to create networks, get back UUID:
    • Example: quantum.foo.com/<tenant-id>/network/<network-id>
  • Tenants can create ports on a network, get a UUID, and associate config with those ports (APIs for advanced port config are TBD, initially ports give L2 connectivity):
    • Example: quantum.foo.com/<tenant-id>/network/<network-id>/port/<port-id>
  • Tenants can plug an interface into a port by setting the attachment of a port to be the appropriate interface-id.
    • Example: set quantum.foo.com/<tenant-id>/network/<network-id>/port/<port-id>/attachment to value “nova.foo.com/<tenant-id>/server/<server-id>/eth0” .

For the initial dev cycle, all additional functionality will be exposed as API Extensions. Such extensions may later be folded into the base API if they prove generic.

Since the API is THE public interface of Quantum, we need to document the API for use by external developers. Creating a developer guide should be part of this deliverable (in fact, creating the developer guide prior to or in the course of development is preferable). See the Cloud Servers API dev guide for a template: http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20110415.pdf

Reviews and Comments

Review of the v0.11 of the API Document with Change Tracking: attachment:Quantum_API_spec-draft-v0.11 - Alex.docx Review includes new concepts of edge capabilities and port state.

[Sumit Naiksatam] Proposal to add a key-value pair-based attribute to facilitate exchange of information between Quantum and Nova in cases where additional information is required by Nova to create the network interface configuration for the VM: attachment:quantum-vnic-configuration-SumitNaiksatam-v1.pdf