Fix compliant ETSI NFV-SOL versions
This patch mainly fixes the description related to the version of ETSI NFV-SOL that Tacker complies with. The fixes are as follows: * Fix the supported version of SubscriptionAuthentication to SOL013 v3.4.1 * Add comment that TLS_CERT is not supported * Add comment that OAUTH2_CLIENT_CERT complies with SOL013 v3.5.1 * Add authentication details to the create subscription request for VNF FM * Fix the supported version of the coordination interface to SOL002 v3.6.1 Change-Id: Ie0bc2c45a068a24a262709b4caba510979b0a1ce
This commit is contained in:
parent
6e9bfa93c7
commit
c5cdb4462b
@ -195,11 +195,7 @@ authentication_auth_type:
|
|||||||
an OAuth 2.0 bearer token, obtained using the
|
an OAuth 2.0 bearer token, obtained using the
|
||||||
client credentials grant type.
|
client credentials grant type.
|
||||||
|
|
||||||
TLS_CERT: Every HTTP request to the
|
TLS_CERT is not supported.
|
||||||
notification endpoint is sent over a mutually
|
|
||||||
authenticated TLS session, i.e. not only the
|
|
||||||
server is authenticated, but also the client is
|
|
||||||
authenticated during the TLS tunnel setup.
|
|
||||||
in: body
|
in: body
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
@ -72,6 +72,63 @@ authentication:
|
|||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
authentication_auth_type:
|
||||||
|
description: |
|
||||||
|
Defines the types of Authentication/Authorization which
|
||||||
|
the API consumer is willing to accept when receiving a
|
||||||
|
notification.
|
||||||
|
Permitted values:
|
||||||
|
|
||||||
|
BASIC: In every HTTP request to the
|
||||||
|
notification endpoint, use HTTP Basic
|
||||||
|
authentication with the client credentials.
|
||||||
|
|
||||||
|
OAUTH2_CLIENT_CREDENTIALS: In every HTTP request
|
||||||
|
to the notification endpoint, use an OAuth 2.0 token,
|
||||||
|
obtained using the client credentials grant type
|
||||||
|
after authenticating using client identifier and
|
||||||
|
client password towards the token endpoint.
|
||||||
|
|
||||||
|
OAUTH2_CLIENT_CERT: In every HTTP request to
|
||||||
|
the notification endpoint, use an OAuth 2.0 token,
|
||||||
|
obtained using the client credentials grant type
|
||||||
|
after mutually authenticating using client identifier
|
||||||
|
and X.509 certificates towards the token endpoint.
|
||||||
|
|
||||||
|
TLS_CERT is not supported.
|
||||||
|
in: body
|
||||||
|
required: true
|
||||||
|
type: array
|
||||||
|
authentication_params_basic:
|
||||||
|
description: |
|
||||||
|
Parameters for authentication/authorization using BASIC.
|
||||||
|
Shall be present if authType is "BASIC" and the
|
||||||
|
contained information has not been provisioned out of
|
||||||
|
band. Shall be absent otherwise.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: object
|
||||||
|
authentication_params_oauth2_client_cert:
|
||||||
|
description: |
|
||||||
|
Parameters for authentication/authorization using
|
||||||
|
OAUTH2_CLIENT_CERT.
|
||||||
|
Shall be present if authType is "OAUTH2_CLIENT_CERT" and the
|
||||||
|
contained information has not been provisioned out of band.
|
||||||
|
Shall be absent otherwise.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: object
|
||||||
|
authentication_params_oauth2_client_credentials:
|
||||||
|
description: |
|
||||||
|
Parameters for authentication/authorization using
|
||||||
|
OAUTH2_CLIENT_CREDENTIALS.
|
||||||
|
Shall be present if authType is
|
||||||
|
"OAUTH2_CLIENT_CREDENTIALS" and the contained
|
||||||
|
information has not been provisioned out of band.
|
||||||
|
Shall be absent otherwise.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: object
|
||||||
callback_uri:
|
callback_uri:
|
||||||
description: |
|
description: |
|
||||||
The URI of the endpoint to send the notification to.
|
The URI of the endpoint to send the notification to.
|
||||||
@ -229,6 +286,85 @@ object_instance:
|
|||||||
in: body
|
in: body
|
||||||
required: false
|
required: false
|
||||||
type: object
|
type: object
|
||||||
|
params_oauth2_client_cert_certificate_ref:
|
||||||
|
description: |
|
||||||
|
Fingerprint of the client certificate. The hash function
|
||||||
|
shall use SHA256 or higher. Shall be present if it has not
|
||||||
|
been provisioned out of band.
|
||||||
|
in: body
|
||||||
|
required: true
|
||||||
|
type: object
|
||||||
|
params_oauth2_client_cert_client_id:
|
||||||
|
description: |
|
||||||
|
Client identifier to be used in the access token request
|
||||||
|
of the OAuth 2.0 client credentials grant type. Shall be
|
||||||
|
present if it has not been provisioned out of band.
|
||||||
|
in: body
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
params_oauth2_client_cert_token_endpoint:
|
||||||
|
description: |
|
||||||
|
The token endpoint from which the access token can be
|
||||||
|
obtained. Shall be present if it has not been provisioned
|
||||||
|
out of band.
|
||||||
|
in: body
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
params_oauth2_client_cert_type:
|
||||||
|
description: |
|
||||||
|
The type of fingerprint.
|
||||||
|
Permitted values:
|
||||||
|
|
||||||
|
x5t#S256: The SHA-256 thumbprint of the X.509 certificate
|
||||||
|
as defined in section 4.1.8 of IETF RFC 7515.
|
||||||
|
in: body
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
params_oauth2_client_cert_value:
|
||||||
|
description: |
|
||||||
|
The fingerprint value as defined by the type. Shall be
|
||||||
|
present if it has not been provisioned out of band.
|
||||||
|
in: body
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
params_oauth2_client_credentials_client_id:
|
||||||
|
description: |
|
||||||
|
Client identifier to be used in the access token request
|
||||||
|
of the OAuth 2.0 client credentials grant type. Shall be
|
||||||
|
present if it has not been provisioned out of band.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
params_oauth2_client_credentials_client_password:
|
||||||
|
description: |
|
||||||
|
Client password to be used in the access token request
|
||||||
|
of the OAuth 2.0 client credentials grant type. Shall be
|
||||||
|
present if it has not been provisioned out of band.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
params_oauth2_client_credentials_token_endpoint:
|
||||||
|
description: |
|
||||||
|
The token endpoint from which the access token can be
|
||||||
|
obtained. Shall be present if it has not been provisioned
|
||||||
|
out of band.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
paramsBasic_password:
|
||||||
|
description: |
|
||||||
|
Password to be used in HTTP Basic authentication.
|
||||||
|
Shall be present if it has not been provisioned out of band.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
paramsBasic_userName:
|
||||||
|
description: |
|
||||||
|
Username to be used in HTTP Basic authentication.
|
||||||
|
Shall be present if it has not been provisioned out of band.
|
||||||
|
in: body
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
perceived_severity:
|
perceived_severity:
|
||||||
description: |
|
description: |
|
||||||
Perceived severity of the managed object failure. CRITICAL,MAJOR,MINOR,
|
Perceived severity of the managed object failure. CRITICAL,MAJOR,MINOR,
|
||||||
|
@ -269,11 +269,7 @@ authentication_auth_type:
|
|||||||
after mutually authenticating using client identifier
|
after mutually authenticating using client identifier
|
||||||
and X.509 certificates towards the token endpoint.
|
and X.509 certificates towards the token endpoint.
|
||||||
|
|
||||||
TLS_CERT: Every HTTP request to the
|
TLS_CERT is not supported.
|
||||||
notification endpoint is sent over a mutually
|
|
||||||
authenticated TLS session, i.e. not only the
|
|
||||||
server is authenticated, but also the client is
|
|
||||||
authenticated during the TLS tunnel setup.
|
|
||||||
in: body
|
in: body
|
||||||
required: true
|
required: true
|
||||||
type: array
|
type: array
|
||||||
|
@ -44,11 +44,7 @@ authentication_auth_type:
|
|||||||
after mutually authenticating using client identifier
|
after mutually authenticating using client identifier
|
||||||
and X.509 certificates towards the token endpoint.
|
and X.509 certificates towards the token endpoint.
|
||||||
|
|
||||||
TLS_CERT: Every HTTP request to the
|
TLS_CERT is not supported.
|
||||||
notification endpoint is sent over a mutually
|
|
||||||
authenticated TLS session, i.e. not only the
|
|
||||||
server is authenticated, but also the client is
|
|
||||||
authenticated during the TLS tunnel setup.
|
|
||||||
in: body
|
in: body
|
||||||
required: true
|
required: true
|
||||||
type: array
|
type: array
|
||||||
|
@ -263,6 +263,20 @@ Request Parameters
|
|||||||
- probableCauses: filter_probable_causes
|
- probableCauses: filter_probable_causes
|
||||||
- callbackUri: callback_uri
|
- callbackUri: callback_uri
|
||||||
- authentication: authentication
|
- authentication: authentication
|
||||||
|
- authType: authentication_auth_type
|
||||||
|
- paramsBasic: authentication_params_basic
|
||||||
|
- userName: paramsBasic_userName
|
||||||
|
- password: paramsBasic_password
|
||||||
|
- paramsOauth2ClientCredentials: authentication_params_oauth2_client_credentials
|
||||||
|
- clientId: params_oauth2_client_credentials_client_id
|
||||||
|
- clientPassword: params_oauth2_client_credentials_client_password
|
||||||
|
- tokenEndpoint: params_oauth2_client_credentials_token_endpoint
|
||||||
|
- paramsOauth2ClientCert: authentication_params_oauth2_client_cert
|
||||||
|
- clientId: params_oauth2_client_cert_client_id
|
||||||
|
- certificateRef: params_oauth2_client_cert_certificate_ref
|
||||||
|
- type: params_oauth2_client_cert_type
|
||||||
|
- value: params_oauth2_client_cert_value
|
||||||
|
- tokenEndpoint: params_oauth2_client_cert_token_endpoint
|
||||||
|
|
||||||
Request Example
|
Request Example
|
||||||
---------------
|
---------------
|
||||||
|
@ -230,7 +230,7 @@ You can set following parameter in additionalParams:
|
|||||||
* ``vnfdId`` is the VNFD id of the new VNF package you uploaded.
|
* ``vnfdId`` is the VNFD id of the new VNF package you uploaded.
|
||||||
* ``lcm-operation-coordinate-old-vnf`` and
|
* ``lcm-operation-coordinate-old-vnf`` and
|
||||||
``lcm-operation-coordinate-new-vnf`` are unique implementations of Tacker
|
``lcm-operation-coordinate-new-vnf`` are unique implementations of Tacker
|
||||||
to simulate the coordination interface in `ETSI SOL002 v3.5.1`_. Mainly a
|
to simulate the coordination interface in `ETSI SOL002 v3.6.1`_. Mainly a
|
||||||
script that can communicate with the VM after the VM is created, perform
|
script that can communicate with the VM after the VM is created, perform
|
||||||
special customization of the VM or confirm the status of the VM.
|
special customization of the VM or confirm the status of the VM.
|
||||||
* ``vimConnectionInfo`` is an optional parameter.
|
* ``vimConnectionInfo`` is an optional parameter.
|
||||||
@ -1174,7 +1174,7 @@ The samples make the following updates:
|
|||||||
|
|
||||||
|
|
||||||
.. _Heat CLI reference: https://docs.openstack.org/python-openstackclient/latest/cli/plugin-commands/heat.html
|
.. _Heat CLI reference: https://docs.openstack.org/python-openstackclient/latest/cli/plugin-commands/heat.html
|
||||||
.. _ETSI SOL002 v3.5.1: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_nfv-sol002v030501p.pdf
|
.. _ETSI SOL002 v3.6.1: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.06.01_60/gs_nfv-sol002v030601p.pdf
|
||||||
.. _test_instantiate_vnf_with_old_image_or_volume for 2023.2 Bobcat:
|
.. _test_instantiate_vnf_with_old_image_or_volume for 2023.2 Bobcat:
|
||||||
https://opendev.org/openstack/tacker/src/branch/stable/2023.2/tacker/tests/functional/sol_v2_common/samples/test_instantiate_vnf_with_old_image_or_volume
|
https://opendev.org/openstack/tacker/src/branch/stable/2023.2/tacker/tests/functional/sol_v2_common/samples/test_instantiate_vnf_with_old_image_or_volume
|
||||||
.. _test_change_vnf_pkg_with_new_image for 2023.2 Bobcat:
|
.. _test_change_vnf_pkg_with_new_image for 2023.2 Bobcat:
|
||||||
|
@ -259,7 +259,7 @@ definition file before running command.
|
|||||||
* ``lcm-operation-coordinate-old-vnf`` and
|
* ``lcm-operation-coordinate-old-vnf`` and
|
||||||
``lcm-operation-coordinate-new-vnf`` are unique implementations of
|
``lcm-operation-coordinate-new-vnf`` are unique implementations of
|
||||||
Tacker to simulate the coordination interface in
|
Tacker to simulate the coordination interface in
|
||||||
`ETSI NFV-SOL002 v3.5.1`_.
|
`ETSI NFV-SOL002 v3.6.1`_.
|
||||||
Mainly a script that can communicate with the VM after the VM is
|
Mainly a script that can communicate with the VM after the VM is
|
||||||
created, perform special customization of the VM or confirm the
|
created, perform special customization of the VM or confirm the
|
||||||
status of the VM.
|
status of the VM.
|
||||||
@ -1112,7 +1112,7 @@ The samples make the following updates:
|
|||||||
|
|
||||||
|
|
||||||
.. _Heat CLI reference: https://docs.openstack.org/python-openstackclient/latest/cli/plugin-commands/heat.html
|
.. _Heat CLI reference: https://docs.openstack.org/python-openstackclient/latest/cli/plugin-commands/heat.html
|
||||||
.. _ETSI NFV-SOL002 v3.5.1: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_nfv-sol002v030501p.pdf
|
.. _ETSI NFV-SOL002 v3.6.1: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.06.01_60/gs_nfv-sol002v030601p.pdf
|
||||||
.. _userdata_standard for 2023.2 Bobcat:
|
.. _userdata_standard for 2023.2 Bobcat:
|
||||||
https://opendev.org/openstack/tacker/src/branch/stable/2023.2/tacker/tests/functional/sol_v2_common/samples/userdata_standard
|
https://opendev.org/openstack/tacker/src/branch/stable/2023.2/tacker/tests/functional/sol_v2_common/samples/userdata_standard
|
||||||
.. _userdata_standard_change_vnfpkg_nw for 2023.2 Bobcat:
|
.. _userdata_standard_change_vnfpkg_nw for 2023.2 Bobcat:
|
||||||
|
@ -122,7 +122,7 @@ _IpAddresses = {
|
|||||||
'additionalProperties': True
|
'additionalProperties': True
|
||||||
}
|
}
|
||||||
|
|
||||||
# SOL013 v3.5.1 8.3.4
|
# SOL013 v3.4.1 8.3.4
|
||||||
SubscriptionAuthentication = {
|
SubscriptionAuthentication = {
|
||||||
'type': 'object',
|
'type': 'object',
|
||||||
'properties': {
|
'properties': {
|
||||||
@ -131,8 +131,11 @@ SubscriptionAuthentication = {
|
|||||||
'items': {
|
'items': {
|
||||||
'type': 'string',
|
'type': 'string',
|
||||||
'enum': [
|
'enum': [
|
||||||
|
# NOTE: 'TLS_CERT' is not supported
|
||||||
'BASIC',
|
'BASIC',
|
||||||
'OAUTH2_CLIENT_CREDENTIALS',
|
'OAUTH2_CLIENT_CREDENTIALS',
|
||||||
|
# NOTE: 'OAUTH2_CLIENT_CERT' is defined
|
||||||
|
# in NFV-SOL 013 v3.5.1 8.3.4
|
||||||
'OAUTH2_CLIENT_CERT']
|
'OAUTH2_CLIENT_CERT']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -151,6 +154,8 @@ SubscriptionAuthentication = {
|
|||||||
'tokenEndpoint': {'type': 'string'}
|
'tokenEndpoint': {'type': 'string'}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
# NOTE: 'paramsOauth2ClientCert' is defined
|
||||||
|
# in NFV-SOL 013 v3.5.1 8.3.4
|
||||||
'paramsOauth2ClientCert': {
|
'paramsOauth2ClientCert': {
|
||||||
'type': 'object',
|
'type': 'object',
|
||||||
'properties': {
|
'properties': {
|
||||||
|
@ -157,7 +157,7 @@ ChangeExtVnfConnectivityRequest_V200 = {
|
|||||||
'additionalProperties': True,
|
'additionalProperties': True,
|
||||||
}
|
}
|
||||||
|
|
||||||
# SOL013 v3.5.1 8.3.4
|
# SOL013 v3.4.1 8.3.4
|
||||||
_SubscriptionAuthentication = {
|
_SubscriptionAuthentication = {
|
||||||
'type': 'object',
|
'type': 'object',
|
||||||
'properties': {
|
'properties': {
|
||||||
@ -166,8 +166,11 @@ _SubscriptionAuthentication = {
|
|||||||
'items': {
|
'items': {
|
||||||
'type': 'string',
|
'type': 'string',
|
||||||
'enum': [
|
'enum': [
|
||||||
|
# NOTE: 'TLS_CERT' is not supported
|
||||||
'BASIC',
|
'BASIC',
|
||||||
'OAUTH2_CLIENT_CREDENTIALS',
|
'OAUTH2_CLIENT_CREDENTIALS',
|
||||||
|
# NOTE: 'OAUTH2_CLIENT_CERT' is defined
|
||||||
|
# in NFV-SOL 013 v3.5.1 8.3.4
|
||||||
'OAUTH2_CLIENT_CERT']
|
'OAUTH2_CLIENT_CERT']
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -192,6 +195,8 @@ _SubscriptionAuthentication = {
|
|||||||
# band is not supported.
|
# band is not supported.
|
||||||
'required': ['clientId', 'clientPassword', 'tokenEndpoint']
|
'required': ['clientId', 'clientPassword', 'tokenEndpoint']
|
||||||
},
|
},
|
||||||
|
# NOTE: 'paramsOauth2ClientCert' is defined
|
||||||
|
# in NFV-SOL 013 v3.5.1 8.3.4
|
||||||
'paramsOauth2ClientCert': {
|
'paramsOauth2ClientCert': {
|
||||||
'type': 'object',
|
'type': 'object',
|
||||||
'properties': {
|
'properties': {
|
||||||
|
@ -18,7 +18,7 @@ from tacker.sol_refactored.objects import fields
|
|||||||
|
|
||||||
|
|
||||||
# NFV-SOL 013
|
# NFV-SOL 013
|
||||||
# - v3.5.1 Table 8.3.4-1
|
# - v3.4.1 Table 8.3.4-1
|
||||||
@base.TackerObjectRegistry.register
|
@base.TackerObjectRegistry.register
|
||||||
class SubscriptionAuthentication(base.TackerObject,
|
class SubscriptionAuthentication(base.TackerObject,
|
||||||
base.TackerObjectDictCompat):
|
base.TackerObjectDictCompat):
|
||||||
@ -31,7 +31,10 @@ class SubscriptionAuthentication(base.TackerObject,
|
|||||||
valid_values=[
|
valid_values=[
|
||||||
'BASIC',
|
'BASIC',
|
||||||
'OAUTH2_CLIENT_CREDENTIALS',
|
'OAUTH2_CLIENT_CREDENTIALS',
|
||||||
|
# NOTE: 'OAUTH2_CLIENT_CERT' is defined
|
||||||
|
# in NFV-SOL 013 v3.5.1 Table 8.3.4-1
|
||||||
'OAUTH2_CLIENT_CERT',
|
'OAUTH2_CLIENT_CERT',
|
||||||
|
# `TLS_CERT` is not supported
|
||||||
'TLS_CERT',
|
'TLS_CERT',
|
||||||
],
|
],
|
||||||
nullable=False),
|
nullable=False),
|
||||||
@ -39,6 +42,8 @@ class SubscriptionAuthentication(base.TackerObject,
|
|||||||
'SubscriptionAuthentication_ParamsBasic', nullable=True),
|
'SubscriptionAuthentication_ParamsBasic', nullable=True),
|
||||||
'paramsOauth2ClientCredentials': fields.ObjectField(
|
'paramsOauth2ClientCredentials': fields.ObjectField(
|
||||||
'SubscriptionAuthentication_ParamsOauth2', nullable=True),
|
'SubscriptionAuthentication_ParamsOauth2', nullable=True),
|
||||||
|
# NOTE: 'paramsOauth2ClientCert' is defined
|
||||||
|
# in NFV-SOL 013 v3.5.1 Table 8.3.4-1
|
||||||
'paramsOauth2ClientCert': fields.ObjectField(
|
'paramsOauth2ClientCert': fields.ObjectField(
|
||||||
'SubscriptionAuthentication_ParamsOauth2ClientCert',
|
'SubscriptionAuthentication_ParamsOauth2ClientCert',
|
||||||
nullable=True),
|
nullable=True),
|
||||||
|
Loading…
Reference in New Issue
Block a user