API: Add PCI API support for PCI device management

Registered by jiang, yunhong

Currently we have PCI support in nova, so that user can assign a PCI device to a VM.

We need provide API interface so that cloud admin can manage the PCI devices in the system, and also can check if a VM has PCI devices assigned or not.

https://wiki.openstack.org/wiki/Pci-api-support

Blueprint information

Status:
Complete
Approver:
John Garbutt
Priority:
Medium
Drafter:
None
Direction:
Needs approval
Assignee:
Shuangtai Tian
Definition:
Approved
Series goal:
None
Implementation:
Implemented
Milestone target:
milestone icon next
Started by
Shuangtai Tian
Completed by
Shuangtai Tian

Related branches

Sprints

Whiteboard

Thanks for the extra detail
-- johnthetubaguy

At the design summit we agreed:
* need some use cases to describe what problem this is trying to solve
* go through how the API requests work for those use cases
* discuss the neutron case, so we having things in place for that
* don't add config values for associating the groups, we probably want admin apis, we might want to use host aggregates for describing the setup
I think we need to look carefully at the design before accepting this. I would love to see the use cases described (from both the admin and user point of view), and the interaction between Nova and Neutron described, so we know how this all fits together. -- johnthetubaguy

Hi, John
at summit, we talk about the grouping and device allocation tracking and we agree to design new API for whitelist or group configration, that should be cover by following bp, not this API bp, this api is the base pci support.
here is the link:
https://blueprints.launchpad.net/nova/+spec/pci-extra-info

etherpad link in summit:
https://etherpad.openstack.org/p/_PCI_Passthrough___the_next_step

by Yongli He(Pauli)

Hi, johnthetubaguy
I updated the blueprint and added the user case. Move the detail to wiki. BTW, the neutron case is another blueprint. this blueprint just add information to server api, hypervisor api and list devices information on the nodes.
-- shuangtai Tian

It should include 3 API interface, a) list PCI device information, b) extend hypervisor API to add PCI stats information, c) extend server API to add PCI assignment information. -- yjiang5

https://wiki.openstack.org/wiki/Pci_passthrough#PCI_passthrough_use_notes

Gerrit topic: https://review.openstack.org/#/q/status:open+project:openstack/nova+branch:master+topic:bp/pci-api-support,n,z

Draft change:
===========

Addressed by: https://review.openstack.org/62570
    Extends V3 os-hypervisor api for pci support

Merged:
=======

Addressed by: https://review.openstack.org/51135
    Extends V3 servers api for pci support

Addressed by: https://review.openstack.org/52376
    Extends V3 os-hypervisor api for pci support

Addressed by: https://review.openstack.org/52377
    Add V3 api for pci support

Addressed by: https://review.openstack.org/53785
    Cache compute node info in Hypervisor api

the V2 api will be removed, so don't need merge. -- shuangtai

Apologies, this missed the deadline for Feature Freeze. Please rebase patches as soon as Juno opens, and we will try to get this in during that period. --johnthetubaguy (5th March 2014)

While things have merged in icehouse, there is not enough to bother splitting this blueprint. --johnthetubaugy

Unapproved - please re-submit via nova-spec --johnthetubagy (20th March 2014)

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.