Merge "New api-def: port-device-profile"
This commit is contained in:
commit
c0cf1b35aa
|
@ -2286,6 +2286,24 @@ device_owner-request:
|
||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
device_profile:
|
||||||
|
description: |
|
||||||
|
A port device profile is a reference for Cyborg project and is a named
|
||||||
|
set of the user requirements for one or more acceletators.
|
||||||
|
https://docs.openstack.org/api-ref/accelerator/v2/index.html#
|
||||||
|
device-profiles
|
||||||
|
in: body
|
||||||
|
required: False
|
||||||
|
type: string
|
||||||
|
device_profile-request:
|
||||||
|
description: |
|
||||||
|
A port device profile is a reference for Cyborg project and is a named
|
||||||
|
set of the user requirements for one or more acceletators.
|
||||||
|
https://docs.openstack.org/api-ref/accelerator/v2/index.html#
|
||||||
|
device-profiles
|
||||||
|
in: body
|
||||||
|
required: False
|
||||||
|
type: string
|
||||||
direction:
|
direction:
|
||||||
description: |
|
description: |
|
||||||
Ingress or egress, which is the direction in
|
Ingress or egress, which is the direction in
|
||||||
|
|
|
@ -54,6 +54,15 @@ extension must be used in conjunction with the ``dns-integration`` extension.
|
||||||
When enabled and set, a port level ``dns_domain`` take precedence over a
|
When enabled and set, a port level ``dns_domain`` take precedence over a
|
||||||
``dns_domain`` specified in the port's network allowing per-port DNS domains.
|
``dns_domain`` specified in the port's network allowing per-port DNS domains.
|
||||||
|
|
||||||
|
Device profile
|
||||||
|
==============
|
||||||
|
|
||||||
|
The port device profile extension (``port-device-profile``) defines a named set
|
||||||
|
of user requirements for one or more acceletators. This parameter is a
|
||||||
|
reference for Cyborg project, read by Nova when a port is requested. If this
|
||||||
|
parameter is populated, Nova makes a request to Cyborg.
|
||||||
|
https://docs.openstack.org/api-ref/accelerator/v2/index.html#device-profiles
|
||||||
|
|
||||||
Extra DHCP option (``extra_dhcp_opt``) extension
|
Extra DHCP option (``extra_dhcp_opt``) extension
|
||||||
================================================
|
================================================
|
||||||
|
|
||||||
|
|
|
@ -72,6 +72,7 @@ from neutron_lib.api.definitions import network_mtu_writable
|
||||||
from neutron_lib.api.definitions import network_segment_range
|
from neutron_lib.api.definitions import network_segment_range
|
||||||
from neutron_lib.api.definitions import pagination
|
from neutron_lib.api.definitions import pagination
|
||||||
from neutron_lib.api.definitions import port
|
from neutron_lib.api.definitions import port
|
||||||
|
from neutron_lib.api.definitions import port_device_profile
|
||||||
from neutron_lib.api.definitions import port_mac_address_regenerate
|
from neutron_lib.api.definitions import port_mac_address_regenerate
|
||||||
from neutron_lib.api.definitions import port_numa_affinity_policy
|
from neutron_lib.api.definitions import port_numa_affinity_policy
|
||||||
from neutron_lib.api.definitions import port_resource_request
|
from neutron_lib.api.definitions import port_resource_request
|
||||||
|
@ -189,6 +190,7 @@ _ALL_API_DEFINITIONS = {
|
||||||
network_segment_range,
|
network_segment_range,
|
||||||
pagination,
|
pagination,
|
||||||
port,
|
port,
|
||||||
|
port_device_profile,
|
||||||
port_mac_address_regenerate,
|
port_mac_address_regenerate,
|
||||||
port_numa_affinity_policy,
|
port_numa_affinity_policy,
|
||||||
port_resource_request,
|
port_resource_request,
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
# Copyright (c) 2020 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
from neutron_lib.api.definitions import port
|
||||||
|
from neutron_lib.db import constants
|
||||||
|
|
||||||
|
|
||||||
|
ALIAS = 'port-device-profile'
|
||||||
|
IS_SHIM_EXTENSION = False
|
||||||
|
IS_STANDARD_ATTR_EXTENSION = False
|
||||||
|
NAME = 'Port device profile'
|
||||||
|
DESCRIPTION = "Expose the port device profile (Cyborg)"
|
||||||
|
UPDATED_TIMESTAMP = "2020-12-17T10:00:00-00:00"
|
||||||
|
RESOURCE_NAME = port.RESOURCE_NAME
|
||||||
|
COLLECTION_NAME = port.COLLECTION_NAME
|
||||||
|
DEVICE_PROFILE = 'device_profile'
|
||||||
|
|
||||||
|
RESOURCE_ATTRIBUTE_MAP = {
|
||||||
|
COLLECTION_NAME: {
|
||||||
|
DEVICE_PROFILE: {
|
||||||
|
'allow_post': True,
|
||||||
|
'allow_put': False,
|
||||||
|
'validate': {
|
||||||
|
'type:string_or_none': constants.DESCRIPTION_FIELD_SIZE},
|
||||||
|
'default': None,
|
||||||
|
'is_visible': True}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
SUB_RESOURCE_ATTRIBUTE_MAP = None
|
||||||
|
ACTION_MAP = {}
|
||||||
|
ACTION_STATUS = {}
|
||||||
|
REQUIRED_EXTENSIONS = []
|
||||||
|
OPTIONAL_EXTENSIONS = []
|
|
@ -0,0 +1,22 @@
|
||||||
|
# Copyright 2020 Red Hat, Inc.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
from neutron_lib.api.definitions import port_device_profile
|
||||||
|
from neutron_lib.tests.unit.api.definitions import base
|
||||||
|
|
||||||
|
|
||||||
|
class PortDeviceProfileDefinitionTestCase(base.DefinitionBaseTestCase):
|
||||||
|
extension_module = port_device_profile
|
||||||
|
extension_resources = (port_device_profile.COLLECTION_NAME,)
|
||||||
|
extension_attributes = (port_device_profile.DEVICE_PROFILE,)
|
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
New API definition: ``port-device-profile``. The new field added to
|
||||||
|
``ports`` API, ``device_profile``, represents a Cyborg device profile
|
||||||
|
and is a named set of user requirements for one or more accelerators.
|
Loading…
Reference in New Issue