The os-pci API was never part of the v2.0 API and was added
to the v3 API, but when the v3 API turned into the v2.1 API
which is backward compatible with the v2.0 API, the os-pci
API was removed from v2.1. The original intent was to enable
it in a microversion but that never happened.
We should just delete this API since it has a number of issues
anyway:
1. It's not documented (which makes sense since it's not enabled).
2. The PciHypervisorController just takes the compute_nodes.pci_stats
dict and dumps it to json out of the REST API with no control over
the keys in the response. That means if we ever change the fields
in the PciDevicePool object, we implicitly introduce a backward
incompatible change in the REST API.
3. We don't want to be reporting host stats out of the API [1].
4. To make the os-hypervisors extension work in a multi-cell environment
we'd have to add uuids to the PciDevices model and change the API to
return and take in uuids to identify the devices for GET requests.
5. And last but not least, no one has asked for this in over two years.
As a result of removing this API we can also remove the join on the
pci_devices table when showing details about an instance or listing
instances, which were added years ago because of the PciServerController:
Reviewed: https:/ /review. openstack. org/457854 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=75a7e6fc7d0 2608bf128ad72b2 b8945515b12c21
Committed: https:/
Submitter: Jenkins
Branch: master
commit 75a7e6fc7d02608 bf128ad72b2b894 5515b12c21
Author: Matt Riedemann <email address hidden>
Date: Tue Apr 18 21:14:43 2017 -0400
Remove unused os-pci API
The os-pci API was never part of the v2.0 API and was added
to the v3 API, but when the v3 API turned into the v2.1 API
which is backward compatible with the v2.0 API, the os-pci
API was removed from v2.1. The original intent was to enable
it in a microversion but that never happened.
We should just delete this API since it has a number of issues
anyway:
1. It's not documented (which makes sense since it's not enabled). ntroller just takes the compute_ nodes.pci_ stats
2. The PciHypervisorCo
dict and dumps it to json out of the REST API with no control over
the keys in the response. That means if we ever change the fields
in the PciDevicePool object, we implicitly introduce a backward
incompatible change in the REST API.
3. We don't want to be reporting host stats out of the API [1].
4. To make the os-hypervisors extension work in a multi-cell environment
we'd have to add uuids to the PciDevices model and change the API to
return and take in uuids to identify the devices for GET requests.
5. And last but not least, no one has asked for this in over two years.
As a result of removing this API we can also remove the join on the ller:
pci_devices table when showing details about an instance or listing
instances, which were added years ago because of the PciServerContro
Id3c8a0b187 e399ce2acecd4aa a37ac95e731d46c
Id3e60c3c56 c2eb4209e8aca8a 2c26881ca86b435
[1] https:/ /docs.openstack .org/developer/ nova/policies. html?#metrics- gathering
Closes-Bug: #1426241
Closes-Bug: #1673869
Change-Id: I9099744264eeec 175672d10d04da6 9648dec1a9d