Bases: nova.network.manager.FlatManager
NetworkManager class that communicates with a Quantum service via a web services API to provision VM network connectivity.
For IP Address management, QuantumManager can be configured to use either Nova’s local DB or the Melange IPAM service.
Currently, the QuantumManager does NOT support any of the ‘gateway’ functionality implemented by the Nova VlanManager, including:
- floating IPs
- DHCP
- NAT gateway
Support for these capabilities are targted for future releases.
Called by compute when it is creating a new VM.
For each vNIC, use the FlatManager to create the entries in the virtual_interfaces table, contact Quantum to create a port and attachment the vNIC, and use the IPAM lib to allocate IP addresses.
Unlike other NetworkManagers, with QuantumManager, each create_networks calls should create only a single network.
In both cases, we initialize a subnet using the IPAM lib.
Called when a VM is terminated. Loop through each virtual interface in the Nova DB and remove the Quantum port and clear the IP allocation using the IPAM. Finally, remove the virtual interfaces from the Nova DB.
Lookup network by IPv4 cidr, delete both the IPAM subnet and the corresponding Quantum network.
This method is used by compute to fetch all network data that should be used when creating the VM.
The method simply loops through all virtual interfaces stored in the nova DB and queries the IPAM lib to get the associated IP data.
The format of returned data is ‘defined’ by the initial set of NetworkManagers found in nova/network/manager.py . Ideally this ‘interface’ will be more formally defined in the future.
Validates that this tenant has quantum networks with the associated UUIDs. This is called by the ‘os-create-server-ext’ API extension code so that we can return an API error code to the caller if they request an invalid network.