Commit 219efa71 authored by Giacomo Bernini's avatar Giacomo Bernini
Browse files

implemented udpates for SOL005ed351 v3.3.8

parent 648d4c0f
Pipeline #7205 failed with stage
in 0 seconds
...@@ -68,7 +68,7 @@ paths: ...@@ -68,7 +68,7 @@ paths:
500: 500:
$ref: ../responses/SOL005_resp.yaml#/components/responses/500 $ref: ../responses/SOL005_resp.yaml#/components/responses/500
503: 503:
$ref: ../responses/SOL005_resp.yaml#/components/responses/503 $ref: '#/components/responses/CoordinationActions.Post.503'
504: 504:
$ref: ../responses/SOL005_resp.yaml#/components/responses/504 $ref: ../responses/SOL005_resp.yaml#/components/responses/504
...@@ -172,9 +172,9 @@ components: ...@@ -172,9 +172,9 @@ components:
description: | description: |
201 CREATED 201 CREATED
Shall be returned when the API producer has chosen the synchronous mode, which may be Shall be returned to indicate a finished coordination action when the API producer has chosen the synchronous
chosen for coordination actions that finish within the time frame in which an HTTP mode, which may be selected for coordination actions that finish within the time frame in which an HTTP
response is expected. response is expected..
The response body shall contain an LcmCoord data structure that represents the result The response body shall contain an LcmCoord data structure that represents the result
of the coordination action. of the coordination action.
...@@ -226,6 +226,11 @@ components: ...@@ -226,6 +226,11 @@ components:
The HTTP response shall include a "Location" HTTP header that indicates the The HTTP response shall include a "Location" HTTP header that indicates the
URI of the "Individual coordination action" resource that will be created URI of the "Individual coordination action" resource that will be created
once the coordination operation has finished successfully. once the coordination operation has finished successfully.
Further, the HTTP response may include a "Retry-After" HTTP header that indicates the time to wait before
sending the next GET request to the "individual coordination" resource indicated in the "Location" header.
If the header is provided, the NFVO shall record the signalled delay value in the "delay" attribute of the
applicable entry in the "lcmCoordinations" array in the "NsLcmOpOcc" structure.
headers: headers:
Version: Version:
description: The used API version. description: The used API version.
...@@ -255,14 +260,22 @@ components: ...@@ -255,14 +260,22 @@ components:
schema: schema:
type: string type: string
IndividualCoordinationAction.Get.200: CoordinationActions.Post.503:
description: | description: |
200 OK 503 Service Unavailable
Shall be returned when the coordination is finished and the coordination result Shall be returned upon the following error: The API producer has chosen the synchronous mode and cannot perform
has been read successfully. the requested coordination currently, but expects to be able to perform it sometime in the future.
A representation of the "Individual coordination action" resource shall be returned
in the response body. No "individual coordination action" resource shall be created.
A ProblemDetails structure shall be included in the response to provide more details about the rejection
in the "details" attribute.
The HTTP response shall include a "Retry-After" HTTP header that indicates the delay after which it is
suggested to repeat the coordination request with the same set of parameters. The NFVO shall record the
signalled delay value in the "delay" attribute of the applicable entry in the "rejectedLcmCoordinations"
array in the "NsLcmOpOcc" structure.
headers: headers:
Version: Version:
description: The used API version. description: The used API version.
...@@ -278,6 +291,15 @@ components: ...@@ -278,6 +291,15 @@ components:
explode: false explode: false
schema: schema:
type: string type: string
Retry-After:
description: |
It indicates the delay after which it is suggested to repeat the coordination request with the same
set of parameters.
style: simple
explode: false
schema:
type: string
format: url
Content-Type: Content-Type:
description: The MIME type of the body of the response. description: The MIME type of the body of the response.
style: simple style: simple
...@@ -287,17 +309,16 @@ components: ...@@ -287,17 +309,16 @@ components:
content: content:
application/json: application/json:
schema: schema:
$ref: definitions/SOL005NSLCMCoordination_def.yaml#/definitions/LcmCoord $ref: "../definitions/SOL005_def.yaml#/definitions/ProblemDetails"
IndividualCoordinationAction.Post.202: IndividualCoordinationAction.Get.200:
description: | description: |
202 ACCEPTED 200 OK
Shall be returned when the management operation with which coordination is requested Shall be returned when the coordination is finished and the coordination result
is still ongoing or in the process of being cancelled, i.e. no coordination result is has been read successfully.
available yet. A representation of the "Individual coordination action" resource shall be returned
in the response body.
The response body shall be empty.
headers: headers:
Version: Version:
description: The used API version. description: The used API version.
...@@ -319,6 +340,10 @@ components: ...@@ -319,6 +340,10 @@ components:
explode: false explode: false
schema: schema:
type: string type: string
content:
application/json:
schema:
$ref: definitions/SOL005NSLCMCoordination_def.yaml#/definitions/LcmCoord
CoordinationActionCancel.Post.202: CoordinationActionCancel.Post.202:
description: | description: |
......
...@@ -4016,6 +4016,7 @@ definitions: ...@@ -4016,6 +4016,7 @@ definitions:
- NsLcmOperationOccurenceNotification - NsLcmOperationOccurenceNotification
- NsIdentifierCreationNotification - NsIdentifierCreationNotification
- NsIdentifierDeletionNotification - NsIdentifierDeletionNotification
- NsLcmCapacityShortageNotification
- NsChangeNotification - NsChangeNotification
See note. See note.
...@@ -4051,6 +4052,14 @@ definitions: ...@@ -4051,6 +4052,14 @@ definitions:
type: array type: array
items: items:
$ref: "#/definitions/LcmOperationStateType" $ref: "#/definitions/LcmOperationStateType"
affectedNsInstanceIds:
description: >
Match particular identifiers of the NS instance(s) related to the operation occurrence that were affected by
the shortage as reported in notifications of type NsLcmCapacityShortageNotification.
May be present if the "notificationTypes" attribute contains the value "NsLcmCapacityShortageNotification",
and shall be absent otherwise.
items:
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
nsComponentTypes: nsComponentTypes:
description: > description: >
Match particular NS component types for the Match particular NS component types for the
...@@ -4454,6 +4463,9 @@ definitions: ...@@ -4454,6 +4463,9 @@ definitions:
NOTE 2: A coordination action has timed out if the NFVO has not been able to read the "Individual coordination NOTE 2: A coordination action has timed out if the NFVO has not been able to read the "Individual coordination
action" resource within a timeout interval after requesting the coordination to be started or to be cancelled. action" resource within a timeout interval after requesting the coordination to be started or to be cancelled.
The length of the timeout interval is defined by means outside the scope of the present document The length of the timeout interval is defined by means outside the scope of the present document
NOTE 3: The list of rejected coordinations may be garbage collected if the LCM operation occurrence has reached
a terminal state, i.e. one of "COMPLETED", "FAILED", “PARTIALLY COMPLETED” and "ROLLED_BACK".
type: object type: object
required: required:
- id - id
...@@ -4611,7 +4623,7 @@ definitions: ...@@ -4611,7 +4623,7 @@ definitions:
lcmCoordinations: lcmCoordinations:
description: > description: >
Information about LCM coordination actions (see clause 12.5.4.3) Information about LCM coordination actions (see clause 12)
related to this LCM operation occurrence. related to this LCM operation occurrence.
type: array type: array
items: items:
...@@ -4623,15 +4635,14 @@ definitions: ...@@ -4623,15 +4635,14 @@ definitions:
- endpointType - endpointType
properties: properties:
id: id:
description: > description: >
Identifier of this coordination action. For a terminated coordination action, Identifier of this coordination action. For a terminated coordination action,
this attribute refers to the "id" attribute in the LcmCoord data structure this attribute refers to the "id" attribute in the LcmCoord data structure
(see clause 12.5.2.3). For a timed-out or ongoing coordination action, this (see clause 12.5.2.3). For a timed-out or ongoing coordination action, this
attribute refers to the {coordinationId} URI variable in the "Location" header attribute refers to the {coordinationId} URI variable in the "Location" header
of the "202 Accepted" HTTP response to the POST request that has initiated the of the "202 Accepted" HTTP response to the POST request that has initiated the
coordination action (see clause 12.4.2.3.1). coordination action (see clause 12.4.2.3.1).
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
coordinationActionName: coordinationActionName:
description: > description: >
Indicator of the actual coordination action. Indicator of the actual coordination action.
...@@ -4646,12 +4657,13 @@ definitions: ...@@ -4646,12 +4657,13 @@ definitions:
startTime: startTime:
description: > description: >
The time when the coordination action has been started. The time when the NFVO has received the confirmation that the coordination action has been started.
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
endTime: endTime:
description: > description: >
The end time of the coordination action. Shall be present for a coordination The time when the NFVO has received the confirmation that the coordination action has finished or
action that has finished or timed out (see note 2) and shall be absent if the has been cancelled, or the time when a coordination action has timed out. Shall be present for a
coordination action that has finished or timed out (see note 2) and shall be absent if the
coordination is ongoing. coordination is ongoing.
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
endpointType: endpointType:
...@@ -4662,6 +4674,12 @@ definitions: ...@@ -4662,6 +4674,12 @@ definitions:
type: string type: string
enum: enum:
- MGMT - MGMT
delay:
description: >
The end of the delay period.
This attribute shall be present if the last known HTTP response related to this coordination has
contained a "Retry-After" header, and shall be absent otherwise.
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
warnings: warnings:
description: > description: >
Warning messages that were generated while the operation was executing. Warning messages that were generated while the operation was executing.
...@@ -4672,7 +4690,39 @@ definitions: ...@@ -4672,7 +4690,39 @@ definitions:
type: array type: array
items: items:
type: string type: string
rejectedLcmCoordinations:
description: >
Information about LCM coordination actions (see clause 12) that were rejected by 503 error which means
they can be tried again after a delay. See note 3.
type: array
items:
type: object
required:
- coordinationActionName
- rejectionTime
- endpointType
- delay
properties:
coordinationActionName:
description: >
Indicator of the actual coordination action.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
rejectionTime:
description: >
The time when the NFVO has received the 503 response that rejects the actual coordination.
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
endpointType:
description: >
The endpoint type used by this coordination action.
Valid values:
- MGMT: coordination with other operation supporting management systems (e.g. OSS/BSS)
type: string
enum:
- MGMT
delay:
description: >
The end of the delay period, as calculated from the startTime and "Retry-After" header.
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
_links: _links:
description: > description: >
Links to resources related to this resource. Links to resources related to this resource.
......
...@@ -194,7 +194,62 @@ paths: ...@@ -194,7 +194,62 @@ paths:
$ref: ../responses/SOL005_resp.yaml#/components/responses/500 $ref: ../responses/SOL005_resp.yaml#/components/responses/500
"503": "503":
$ref: ../responses/SOL005_resp.yaml#/components/responses/503 $ref: ../responses/SOL005_resp.yaml#/components/responses/503
/URI_is_provided_by_the_client_when_creating_the_subscription-NsLcmCapacityShortageNotification:
parameters:
- $ref: ../components/SOL005_params.yaml#/components/parameters/Version
- $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization
get:
description: |
The GET method allows the API producer to test the notification endpoint that is provided by the API
consumer, e.g. during subscription. See clause 6.4.18.3.1.
parameters:
- $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
responses:
"204":
$ref: '#/components/responses/NsLcmCapacityShortageNotification.Get'
"400":
$ref: ../responses/SOL005_resp.yaml#/components/responses/400
"401":
$ref: ../responses/SOL005_resp.yaml#/components/responses/401
"403":
$ref: ../responses/SOL005_resp.yaml#/components/responses/403
"405":
$ref: ../responses/SOL005_resp.yaml#/components/responses/405
"406":
$ref: ../responses/SOL005_resp.yaml#/components/responses/406
"500":
$ref: ../responses/SOL005_resp.yaml#/components/responses/500
"503":
$ref: ../responses/SOL005_resp.yaml#/components/responses/503
post:
description: |
The POST method delivers a notification from the API producer to an API consumer. The API consumer shall
have previously created an "Individual subscription" resource with a matching filter.
See clause 6.4.18.3.1.
parameters:
- $ref: ../components/SOL005_params.yaml#/components/parameters/Accept
- $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType
requestBody:
$ref: '#/components/requestBodies/NsLcmCapacityShortageNotificationRequest'
responses:
"204":
$ref: '#/components/responses/NsLcmCapacityShortageNotification.Post'
"400":
$ref: ../responses/SOL005_resp.yaml#/components/responses/400
"401":
$ref: ../responses/SOL005_resp.yaml#/components/responses/401
"403":
$ref: ../responses/SOL005_resp.yaml#/components/responses/403
"405":
$ref: ../responses/SOL005_resp.yaml#/components/responses/405
"406":
$ref: ../responses/SOL005_resp.yaml#/components/responses/406
"500":
$ref: ../responses/SOL005_resp.yaml#/components/responses/500
"503":
$ref: ../responses/SOL005_resp.yaml#/components/responses/503
components: components:
requestBodies: requestBodies:
NsLcmOperationOccurrenceNotificationRequest: NsLcmOperationOccurrenceNotificationRequest:
...@@ -223,7 +278,16 @@ components: ...@@ -223,7 +278,16 @@ components:
schema: schema:
$ref: ./definitions/SOL005NSLifecycleManagementNotification_def.yaml#/definitions/NsIdentifierDeletionNotification $ref: ./definitions/SOL005NSLifecycleManagementNotification_def.yaml#/definitions/NsIdentifierDeletionNotification
required: true required: true
NsLcmCapacityShortageNotificationRequest:
description: |
A notification about lifecycle capacity shortage triggered when there is a shortage condition.
content:
application/json:
schema:
$ref: ./definitions/SOL005NSLifecycleManagementNotification_def.yaml#/definitions/NsLcmCapacityShortageNotification
required: true
responses: responses:
NsLcmOperationOccurrenceNotification.Get: NsLcmOperationOccurrenceNotification.Get:
description: | description: |
...@@ -337,6 +401,50 @@ components: ...@@ -337,6 +401,50 @@ components:
content: {} content: {}
NsIdentifierDeletionNotification.Post: NsIdentifierDeletionNotification.Post:
description: |
204 No Content
Shall be returned when the notification has been delivered successfully.
headers:
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
content: {}
NsLcmCapacityShortageNotification.Get:
description: |
204 No Content
Shall be returned when the notification endpoint has been tested successfully. The response body shall be empty.
headers:
Version:
description: |
Version of the API used in the response.
style: simple
explode: false
schema:
type: string
WWW-Authenticate:
description: |
Challenge if the corresponding HTTP request has not provided authorization, or error details if the
corresponding HTTP request has provided an invalid authorization token.
style: simple
explode: false
schema:
type: string
content: {}
NsLcmCapacityShortageNotification.Post:
description: | description: |
204 No Content 204 No Content
Shall be returned when the notification has been delivered successfully. Shall be returned when the notification has been delivered successfully.
......
...@@ -227,6 +227,211 @@ definitions: ...@@ -227,6 +227,211 @@ definitions:
Links to resources related to this notification. Links to resources related to this notification.
$ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnLinks" $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnLinks"
NsLcmCapacityShortageNotification:
description: >
This type represents an NS LCM capacity shortage notification, which informs the receiver about resource shortage
conditions during the execution of NS LCM operations. The notifications are triggered by the NFVO when a capacity
shortage condition occurs during the execution of an NS LCM operation, which fails due to the resource shortage,
or which succeeds despite the resource shortage because the NFVO has reduced the resource consumption of other
NSs by requesting these NSs to be scaled in or terminated.
The notification shall comply with the provisions defined in Table 6.5.2.19-1. The support of the notification
is mandatory.
This notification shall be triggered by the NFVO when there is a capacity shortage condition during the execution
of an NS LCM operation which will cause the LCM operation to be not successfully completed, or which will trigger
the automatic executing of an LCM operation to reduce the resource consumption of one or more NS instances to
resolve a resource shortage situation. The shortage conditions include:
• Necessary resources could not be allocated during an LCM operation because of resource shortage which causes
the LCM operation to fail.
• An LCM operation on an NS instance with higher priority pre-empted an LCM operation on NS instance with lower
priority because of resource shortage.
• An LCM operation on an NS instance with higher priority pre-empted an existing NS instance. Resources were
de-allocated from the lower priority NS instance to allow the LCM operation on a higher priority NS instance.
• The resource capacity shortage situation has ended, and it can be expected that an LCM operation that had
failed could succeed now if retried.
NOTE: ETSI GS NFV-IFA 013 [x] defines further shortage situations.
These are not supported by the present version of the present document.
This notification shall also be triggered by the NFVO when a shortage condition has ended that has previously
led to NS LCM operation occurrences failing. The notification shall be sent to all API consumers (OSS/BSS)
that have subscribed to notifications related to capacity shortage and meeting the filter conditions of all
pre-empted (low priority) and all pre-empting (high priority NS instance(s)). See ETSI GS NFV-IFA 010 [2],
Annex D.2 for the use cases.
The notification about the result of an unsuccessful LCM operation occurrence shall include appropriate
information about the resource shortage when the cause for failure is a resource shortage.
The notification where a pre-emption occurred due to e.g. a higher priority LCM operation during resource
shortage shall include appropriate information about the pre-emption.
NOTE: Not all operation occurrences that are in "FAILED_TEMP" have been pre-empted by a resource shortage.
When the operation occurrences were pre-empted, the NS instances affected by the resource shortage end
(“status“ = "LCM_SHORTAGE_END") which are pointed by "affectedNsId" in the list of "affectedOpOccs" structure
can have the operations retried again (which needs a request by the OSS/BSS).
NOTE 1: The present version of the present document supports only the resource shortage status enumeration
values “LCM_RESOURCES_NOT_AVAILABLE” and “LCM_SHORTAGE_END” which represent a subset of the trigger conditions
defined in clause 8.3.5.2 of ETSI GS NFV-IFA 013 [x].
type: object
required:
- id
- notificationType
- subscriptionId
- timestamp
- status
properties:
id:
description: >
Identifier of this notification. If a notification is sent multiple times due to multiple subscriptions,
the "id" attribute of all these notifications shall have the same value.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
notificationType:
description: >
Discriminator for the different notification types. Shall be set to "NsLcmCapacityShortageNotification"
for this notification type.
type: string
enum:
- NsLcmCapacityShortageNotification
subscriptionId:
description: >
Identifier of the subscription that this notification relates to.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
timestamp:
description: >
Date-time of the generation of the notification.
$ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime"
preemptingNsLcmOpOccId:
description: >
Identifier of the LCM operation occurrence that has triggered a pre-emption.
Shall be absent when the instantiation of a lower priority NS instance has failed because all
resources are allocated to higher priority NS instance(s). In this case the current instantiate operation
is represented in “affectedCondition” with the value “PRE_EMPTED“.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
highPrioNsInstanceId:
description: >
Identifier of the higher priority NS instance affected by the lifecycle operation represented by the
"preemptingNsLcmOpOccId" attribute.
Shall be present if "preemptingNsLcmOpOccId" is present and shall be absent otherwise.
$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
status:
description: >
Indicates the situation of capacity shortage.
Permitted values:
- LCM_RESOURCES_NOT_AVAILABLE: the lifecycle operation identified by the nsLcmOpOccId attribute could not
be completed because necessary resources were not available.
- LCM_SHORTAGE_END: the shortage situation which has caused the lifecycle management operation identified
by the nsLcmOpOccId attribute to fail has ended.
type: string
enum:
- LCM_RESOURCES_NOT_AVAILABLE
- LCM_SHORTAGE_END
shortageType:
description: >
Indicates whether this notification reports about a resource shortage or NFV-MANO capacity or performance shortage.
Permitted values:
- RESOURCE_SHORTAGE: the notification reports a resource shortage.
Shall be present when a resources shortage situation has been identified starts and the notification is
sent with “status“ = “LCM_RESOURCES_NOT_AVAILABLE“ and shall be absent otherwise.
type: string
enum:
- RESOURCE_SHORTAGE
affectedOpOccs:
description: >
List of NS LCM operation occurrence(s) that were affected by the resource shortage.
type: array
items:
type: object
required: