nova/nova/api/openstack/compute
Balazs Gibizer 5af28c4de5 Support interface attach with QoS ports
The following logic is added to the ComputeManager attach_interface
flow:

* gather the resource request of the port from neutron
* query allocation candidates restricted to the current compute node
  from placement
* extend the existing allocation of the instance with one of the
  allocation candidates in placement
* update the InstancePCIRequest (if any) to ensure that the PCI claim
  only allocates VF from the PF the placement resources are allocated from
* ensure that during port binding neutron gets the RP UUID, the resources
  are allocated from, in the allocation key of the binding profile

This patch bumps the compute service version to indicate that QoS
interface attach is supported. Also the check that was so far rejected
such attach is now updated to only reject it if the compute service
version is too old.

The "scheduling" during interface attach for PCI backed ports has the
same limitation as normal scheduling for such ports. It always selects
the first allocation candidate returned by placement even if later in
the process it turns out that such allocation candidate points to a PCI
PF that has no free VFs left.

Blueprint: support-interface-attach-with-qos-ports

Change-Id: Id4684093e8bdf3b61667490443e3d2f6ed65f4b3
2021-02-11 16:43:17 +01:00
..
schemas Merge "api: Remove 'os-agents' API" 2020-11-14 10:06:44 +00:00
views Add new default roles in servers attributes policies 2020-04-18 13:02:55 -05:00
__init__.py Use plain routes list for '/servers' endpoint instead of stevedore 2017-04-25 22:38:33 +08:00
admin_actions.py virt: Remove 'reset_network' API 2020-11-23 15:55:50 +00:00
admin_password.py Ensure controllers all call super 2019-06-15 16:40:00 +01:00
agents.py api: Remove 'os-agents' API 2020-09-11 14:10:32 +01:00
aggregates.py Remove six.text_type (1/2) 2020-12-13 11:25:31 +00:00
assisted_volume_snapshots.py Remove six.text_type (1/2) 2020-12-13 11:25:31 +00:00
attach_interfaces.py Support interface attach with QoS ports 2021-02-11 16:43:17 +01:00
availability_zone.py Pass the actual target in os-availability-zone policy 2020-03-04 09:46:41 +00:00
baremetal_nodes.py Pass the actual target in baremetal nodes policy 2020-08-17 14:36:51 +00:00
cells.py Remove '/os-cells' REST APIs 2019-04-16 18:26:13 +01:00
certificates.py Remove extensions module 2017-12-20 11:35:38 +08:00
cloudpipe.py Remove extensions module 2017-12-20 11:35:38 +08:00
console_auth_tokens.py Bump hacking min version to 3.1.0 2020-05-19 08:09:43 +08:00
console_output.py Fix os-console-output policy to be admin_or_owner 2020-03-05 15:32:02 +00:00
consoles.py Remove 'os-consoles' API 2019-11-22 16:09:36 +00:00
create_backup.py Fix os-create-backup policy to be admin_or_owner 2020-03-06 01:39:03 +00:00
deferred_delete.py Add new default roles in os-deferred_delete policies 2020-03-05 13:20:30 -06:00
evacuate.py Remove compute service level check for qos ops 2020-11-09 16:13:51 +01:00
extension_info.py Add scope and new default roles in extensions policies 2020-08-17 09:40:02 -05:00
fixed_ips.py Remove support for /os-fixed-ips REST API 2018-06-26 09:20:28 -04:00
flavor_access.py Pass the actual target in flavor access policy 2020-04-14 17:58:02 +00:00
flavor_manage.py Pass the actual target in os-flavor-manage policy 2020-04-06 02:38:04 +00:00
flavors.py Multiple API cleanup changes 2019-08-12 08:52:38 -05:00
flavors_extraspecs.py Remove six.text_type (1/2) 2020-12-13 11:25:31 +00:00
floating_ip_dns.py Remove support for /os-floating-ip-dns REST API 2018-07-18 22:23:45 -04:00
floating_ip_pools.py Correct the check_str and pass actual target in FIP pools policy 2020-07-20 16:53:02 -05:00
floating_ips.py Pass the actual target in FIP policy 2020-08-17 14:58:03 +00:00
floating_ips_bulk.py Remove support for /os-floating-ips-bulk REST API 2018-07-18 22:23:45 -04:00
fping.py Remove support for /os-fping REST API 2018-05-10 15:26:13 -04:00
helpers.py remove personality extension 2016-06-24 14:44:53 -04:00
hosts.py Remove six.iteritems/itervalues/iterkeys 2020-11-07 03:25:26 +00:00
hypervisors.py api: Drop statistics-style fields from os-hypervisors 2021-01-08 10:10:21 +00:00
image_metadata.py Remove 'nova.image.api' module 2020-02-18 11:45:39 +00:00
images.py Remove 'nova.image.api' module 2020-02-18 11:45:39 +00:00
instance_actions.py Bump hacking min version to 3.1.0 2020-05-19 08:09:43 +08:00
instance_usage_audit_log.py Pass the actual target in os-instance-usage-audit-log policy 2020-03-30 15:46:02 +01:00
ips.py Fix os-ips policy to be admin_or_owner 2020-03-28 20:56:46 -05:00
keypairs.py Bump hacking min version to 3.1.0 2020-05-19 08:09:43 +08:00
limits.py Bump hacking min version to 3.1.0 2020-05-19 08:09:43 +08:00
lock_server.py Pass the actual target in unlock override policy 2020-04-01 04:05:58 +00:00
migrate_server.py Remove compute service level check for qos ops 2020-11-09 16:13:51 +01:00
migrations.py Merge "objects: Add MigrationTypeField" 2020-06-29 17:38:07 +00:00
multinic.py Add new default roles in multinic policies 2020-07-21 21:21:00 -05:00
networks.py Pass the actual target in networks policy 2020-08-17 14:52:21 +00:00
networks_associate.py Remove (most) '/os-networks' REST APIs 2019-11-18 16:25:47 +00:00
pause_server.py Fix unpause server policy to be admin_or_owner 2020-03-31 01:28:09 -05:00
quota_classes.py Bump hacking min version to 3.1.0 2020-05-19 08:09:43 +08:00
quota_sets.py Remove six.moves 2020-11-07 03:25:02 +00:00
remote_consoles.py Add test coverage of existing remote console policies 2020-04-01 00:48:24 -05:00
rescue.py api: Reject non-spawn operations for vTPM 2020-08-24 19:37:01 +01:00
rest_api_version_history.rst api: Drop statistics-style fields from os-hypervisors 2021-01-08 10:10:21 +00:00
routes.py Remove six.binary_type/integer_types/string_types 2020-12-13 11:25:14 +00:00
security_group_default_rules.py Remove 'os-security-group-default-rules' REST API 2019-11-18 16:25:47 +00:00
security_groups.py Pass the actual target in security_groups policy 2020-07-24 01:23:30 +00:00
server_diagnostics.py Pass the actual target in server diagnostics policy 2020-04-02 19:38:54 -05:00
server_external_events.py Pass the actual target in server external events policy 2020-04-10 23:44:55 +00:00
server_groups.py Fix follow up comments on policy work 2020-04-15 18:21:34 -05:00
server_metadata.py Fix server metadata policy to be admin_or_owner 2020-04-04 00:56:37 +00:00
server_migrations.py objects: Add MigrationTypeField 2020-05-08 14:45:54 +01:00
server_password.py Add new default roles in server password policies 2020-04-08 14:46:10 +01:00
server_tags.py Fix server tags policy to be admin_or_owner 2020-04-06 23:52:40 -05:00
server_topology.py objects: Introduce 'pcpuset' field for InstanceNUMACell 2020-07-14 00:38:34 +08:00
servers.py Remove six.text_type (1/2) 2020-12-13 11:25:31 +00:00
services.py Remove six.text_type (1/2) 2020-12-13 11:25:31 +00:00
shelve.py Cyborg shelve/unshelve support 2021-01-15 03:21:17 +00:00
simple_tenant_usage.py Remove six.text_type (1/2) 2020-12-13 11:25:31 +00:00
suspend_server.py Fix resume server policy to be admin_or_owner 2020-04-05 03:05:01 -05:00
tenant_networks.py Pass the actual target in tenant networks policy 2020-07-23 19:22:58 -05:00
versions.py Allow versioned discovery unauthenticated 2020-04-03 21:24:28 +00:00
versionsV21.py Remove extensions module 2017-12-20 11:35:38 +08:00
virtual_interfaces.py Remove support for /os-virtual-interfaces REST API 2018-06-06 21:14:39 +00:00
volumes.py Pass the actual target in volumes policy 2020-07-28 15:54:10 +00:00
wsgi.py Add pbr-installed wsgi application for metadata api 2017-05-02 16:58:11 +00:00