Merge "New api-def: port-device-profile"
This commit is contained in:
commit
c0cf1b35aa
|
@ -2286,6 +2286,24 @@ device_owner-request:
|
|||
in: body
|
||||
required: false
|
||||
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:
|
||||
description: |
|
||||
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
|
||||
``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
|
||||
================================================
|
||||
|
||||
|
|
|
@ -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 pagination
|
||||
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_numa_affinity_policy
|
||||
from neutron_lib.api.definitions import port_resource_request
|
||||
|
@ -189,6 +190,7 @@ _ALL_API_DEFINITIONS = {
|
|||
network_segment_range,
|
||||
pagination,
|
||||
port,
|
||||
port_device_profile,
|
||||
port_mac_address_regenerate,
|
||||
port_numa_affinity_policy,
|
||||
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