From 9cf6345ad151f883fa43028223ceb00bcfbd869d Mon Sep 17 00:00:00 2001 From: hammadzf Date: Mon, 24 Nov 2025 15:12:16 +0100 Subject: [PATCH 1/4] add sequence diagrams --- GS_NFV-SOL_026.md | 173 +++++++++++++++++++++- media/image25.png | Bin 0 -> 11777 bytes media/image26.png | Bin 0 -> 9328 bytes media/image27.png | Bin 0 -> 13349 bytes media/image28.png | Bin 0 -> 13104 bytes media/image29.png | Bin 0 -> 13117 bytes media/image30.png | Bin 0 -> 11666 bytes media/image31.png | Bin 0 -> 7602 bytes uml/Clause9/async-perf-report.txt | 19 +++ uml/Clause9/create-pm-object.txt | 19 +++ uml/Clause9/delete-pm-object.txt | 22 +++ uml/Clause9/modify-pm-object.txt | 22 +++ uml/Clause9/query-performance-reports.txt | 21 +++ uml/Clause9/query-pm-objects.txt | 21 +++ uml/Clause9/replace-pm-object.txt | 22 +++ 15 files changed, 314 insertions(+), 5 deletions(-) create mode 100644 media/image25.png create mode 100644 media/image26.png create mode 100644 media/image27.png create mode 100644 media/image28.png create mode 100644 media/image29.png create mode 100644 media/image30.png create mode 100644 media/image31.png create mode 100644 uml/Clause9/async-perf-report.txt create mode 100644 uml/Clause9/create-pm-object.txt create mode 100644 uml/Clause9/delete-pm-object.txt create mode 100644 uml/Clause9/modify-pm-object.txt create mode 100644 uml/Clause9/query-performance-reports.txt create mode 100644 uml/Clause9/query-pm-objects.txt create mode 100644 uml/Clause9/replace-pm-object.txt diff --git a/GS_NFV-SOL_026.md b/GS_NFV-SOL_026.md index 239f369..9cd539d 100644 --- a/GS_NFV-SOL_026.md +++ b/GS_NFV-SOL_026.md @@ -454,7 +454,7 @@ This clause describes a sequence for modifying an individual Computer System res **Figure 6.4.4-1: Flow of Computer System modification** -The modification of an individual Computer System resource, as illustrated in Figure 6.4.41, consists of the following steps. +The modification of an individual Computer System resource, as illustrated in Figure 6.4.4-1, consists of the following steps. **Precondition:** The individual Computer System resource has been previously created. @@ -883,7 +883,7 @@ This clause describes a sequence for modifying an individual topology object. **Figure 8.4.4-1: Flow of topology object modification** -The modification of a topology object, as illustrated in Figure 8.4.41, consists of the following steps. +The modification of a topology object, as illustrated in Figure 8.4.4-1, consists of the following steps. **Precondition:** The individual topology object has been previously created. @@ -1174,7 +1174,7 @@ Figures 9.3-1, 9.3-2, 9.3-3 and 9.3-4 show resource structures of the Redfish&re Table 9.3-1 lists the API resources, and the applicable HTTP methods for each resource endpoint. -The HTTP methods marked as "M" (mandatory) in the "Cat" column of table 9.3-1 shall be supported by the PIM. The HTTP methods marked as "O" (optional) in the "Cat" column may be optionally supported by the PIM. +The HTTP methods marked as "M" (mandatory) in the "Cat" column of table 9.3-1 shall be supported by the PIM. The HTTP methods marked as "O" (optional) in the "Cat" column may be optionally supported by the PIM. The HTTP methods marked as "CM" (conditional mandatory) shall be supported by the PIM depending on the corresponding condition. **Table 9.3-1: API Resources and HTTP methods of physical resource performance management service interface** @@ -1226,13 +1226,176 @@ The HTTP methods marked as "M" (mandatory) in the "Cat" column of table 9.3-1 sh | | |DELETE |M |Delete an "Individual Subscription" resource. | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ |Notification endpoint |{NotificationTargetURI} |POST |M |Send a notification related to | -| | | | |a subscribed event (see note). | +| | | | |a subscribed event (see note 1). | +| | | | |Can also be used to send a performance | +| | | | |report asynchronously (see note 2). | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ -|NOTE: Notification endpoint resource and the corresponding NotficiationTargetURI | +|Individual Task Monitor |/redfish/v1/TaskService\ |GET |CM |Enable API consumer to monitor the | +| |/TaskMonitors/{TaskMonitorId} | | |progress of an asynchronous operation | +| |(see note 3) | | |as well as receive the result of the requested | +| | | | |operation once the corresponding task has been completed. | +| | | | |This resource endpoint shall be supported | +| | | | |if the API producer supports asynchronous operations. | ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|NOTE 1: Notification endpoint resource and the corresponding NotficiationTargetURI | |is used by the API producer to send notifications to the API consumer. | |This resource is not produced by the API producer. | +|NOTE 2: See clause 9.4.8 for the flow related to the API consumers receiving | +|performance reports asynchronously as notifications. . | +|NOTE 3: The URI of the task monitor is provided in the Location header | +|of the HTTP response to the API consumer when the API producer returns a "202 Accepted" response. | +---------------------------------------------------------------------------------------------------------------------------------------------------+ +## 9.4 Sequence diagrams (informative) + +### 9.4.1 Introduction + +The sequence diagrams provided in the subsequent sub-clauses are generalized to indicate management of a generic performance management (PM) related object, which refers to either PmJob or Threshold specified in clause 5 of the present document. These diagrams and their description contain placeholders such as <PM object collection URI>, <PM object URI> and <PM object>, which correspond to the appropriate resource URIs and PM-related objects specified in clauses 9.3 and 5.4 respectively. + +Sequence diagrams related to retrieval of performance reports do not contain generic placeholders. Specific resource URIs and object names are used in those sequence diagrams. + +Flows related to task monitoring, subscription management and notifications are described in Annex A of the present document. + +### 9.4.2 Creation of a PM object + +This clause describes a sequence for creating an individual resource corresponding to a PM object. + +![Figure 9.4.2-1: Flow of PM object creation](media/image25.png) + +**Figure 9.4.2-1: Flow of PM object creation** + +The creation of a PM object, as illustrated in Figure 9.4.2-1, consists of the following steps. + +**Precondition:** None. + +1. The API consumer sends a POST request to the <PM object collection URI> including a valid <PM object> representation in the message content body. +1. If the PIM supports asynchronous operations and creation of the PM object resource requires some time to process, the PIM returns a "202 Accepted" response. The response also contains the URI of the associated Task Monitor in the Location header. The response body can optionally contain representation of the corresponding Task resource created by the PIM for this asynchronous operation. +1. The PIM creates an individual PM object. +1. The PIM returns a "201 Created" response to the API consumer and includes in the message content body a representation of the created PM object. The response also contains the URI of the newly created PM object in the Location header. + +**Postcondition:** Upon successful completion of the synchronous operation or of the corresponding task in case of asynchronous operation, the individual PM object has been created. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.3 Querying information about PM objects + +This clause describes the sequences for querying information about multiple and individual PM objects. + +![Figure 9.4.3-1: Flow of querying information about PM objects](media/image26.png) + +**Figure 9.4.3-1: Flow of querying information about PM objects** + +The querying of information about one or more PM objects, as illustrated in Figure 9.4.3-1, consists of the following steps. + +**Precondition:** One or more individual PM objects have previously been created. + +1. If the API consumer intends to get information about multiple PM objects, it sends a GET request to the <PM object collection URI>. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of a <PM object collection>, containing information about all the individual PM objects that have been created. +1. If the API consumer intends to get information about an individual PM object, it sends a GET request to the <PM object URI>. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of the individual PM object. + +**Postcondition:** None. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.4 Modifying a PM object + +This clause describes a sequence for modifying an individual PM object. + +![Figure 9.4.4-1: Flow of PM object modification](media/image27.png) + +**Figure 9.4.4-1: Flow of PM object modification** + +The modification of a PM object, as illustrated in Figure 9.4.4-1, consists of the following steps. + +**Precondition:** The individual PM object has been previously created. + +1. The API consumer sends a PATCH request to the <PM object URI>, including data structure in the message content body representing the modifiable properties to be modified in the individual PM object. +1. If the PIM supports asynchronous operations and modification of the PM object requires some time to process, the PIM returns a "202 Accepted" response. The response also contains the URI of the associated Task Monitor in the Location header. The response body can optionally contain representation of the corresponding Task resource created by the PIM for this asynchronous operation. +1. The PIM modifies the individual PM object. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of the modified PM object. Alternatively, the PIM can also return a "204 No Content" response to the API consumer indicating successful operation. + +**Postcondition:** Upon successful completion of the synchronous operation or of the corresponding task in case of asynchronous operation, the individual PM object has been modified. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.5 Replacing a PM object + +This clause describes a sequence for replacing an individual PM object. + +![Figure 9.4.5-1: Flow of PM object replacement](media/image28.png) + +**Figure 9.4.5-1: Flow of PM object replacement** + +The replacement of an individual PM object, as illustrated in Figure 9.4.5-1, consists of the following steps. + +**Precondition:** The individual PM object has been previously created. + +1. The API consumer sends a PUT request to the <PM object URI> including a valid representation of the individual PM object to be replaced in the message content body. +1. If the PIM supports asynchronous operations and replacement of the PM object requires some time to process, the PIM returns a "202 Accepted" response. The response also contains the URI of the associated Task Monitor in the Location header. The response body can optionally contain representation of the corresponding Task resource created by the PIM for this asynchronous operation. +1. The PIM replaces the individual PM object. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of the replaced PM object. Alternatively, the PIM can also return a "204 No Content" response to the API consumer indicating successful operation. + +**Postcondition:** Upon successful completion of the synchronous operation or of the corresponding task in case of asynchronous operation, the individual PM object has been replaced. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.6 Deleting a PM object + +This clause describes a sequence for deleting an individual PM object. + +![Figure 9.4.6-1: Flow of PM object deletion](media/image29.png) + +**Figure 9.4.6-1: Flow of PM object deletion** + +The deletion of an individual PM object, as illustrated in Figure 9.4.6-1, consists of the following steps. + +**Precondition:** The individual PM object has been previously created. + +1. The API consumer sends a DELETE request to the <PM object URI>. +1. If the PIM supports asynchronous operations and deletion of the PM object requires some time to process, the PIM returns a "202 Accepted" response. The response also contains the URI of the associated Task Monitor in the Location header. The response body can optionally contain representation of the corresponding Task resource created by the PIM for this asynchronous operation. +1. The PIM deletes the individual PM object. +1. The PIM returns a "204 No Content " response to the API consumer indicating that the PM object has been successfully deleted. Alternatively, the PIM can also return a "200 OK" response to the API consumer including a representation of the deleted PM object in the message content body. + +**Postcondition:** Upon successful completion of the synchronous operation or of the corresponding task in case of asynchronous operation, the individual PM object has been deleted. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.7 Retrieving performance reports + +This clause describes the sequence for querying information about multiple and individual performance reports. + +![Figure 9.4.7-1: Flow of querying information about performance reports](media/image30.png) + +**Figure 9.4.7-1: Flow of querying information about performance reports** + +The querying of information about one or more performance reports, as illustrated in Figure 9.4.7-1, consists of the following steps. + +**Precondition:** One or more individual performance reports have previously been generated by the PIM. + +1. If the API consumer intends to get information about multiple performance reports, it sends a GET request to the performance reports URI. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of a collection of performance reports, containing information about all the individual performance reports that have been generated. +1. If the API consumer intends to get information about an individual performance report, it sends a GET request to the URI representing individual performance report. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of the individual performance report. + +**Postcondition:** None. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.8 Receiving performance reports asynchronoulsy + +This clause describes the sequence for receiving performance reports asynchrnously as notifications. + +![Figure 9.4.8-1: Flow of receiving performance reports as notifications](media/image31.png) + +**Figure 9.4.8-1: Flow of receiving performance reports as notifications** + +The procedure consists of the following steps as illustrated in figure 9.4.8-1. + +**Precondition:** The API consumer has previously created a subscription containing a PmJob to receive performance reports asynchronously. + +1. When generating a performance report according to the configured PmJob (*MetricReportDefinition*) as part of the created subscription, an event of type *MetricReport* gets triggered. As a result of this, the PIM generates a notification that includes the performance report and sends it in the body of a POST request to the notification target URI which the API consumer had registered as part of the subscription request. + # 10 Physical resource fault management service interface Editor's Note: This clause will profile operations of physical resource fault management service interface against relevant solution(s). diff --git a/media/image25.png b/media/image25.png new file mode 100644 index 0000000000000000000000000000000000000000..1d167d83316faa37ee374756aca32b3ebcf3ea1a GIT binary patch literal 11777 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

*ux1 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 literal 0 HcmV?d00001 diff --git a/media/image27.png b/media/image27.png new file mode 100644 index 0000000000000000000000000000000000000000..b28f63125c5ed7bdb34d7b421e8cd11f7f5a40c6 GIT binary patch literal 13349 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 DsZ>oH literal 0 HcmV?d00001 diff --git a/media/image29.png b/media/image29.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9881070f774fa5b923f4f3ad6e2c57f5faa9b7 GIT binary patch literal 13117 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 literal 0 HcmV?d00001 diff --git a/media/image31.png b/media/image31.png new file mode 100644 index 0000000000000000000000000000000000000000..bee7288269a9291a5a0f0c87622dcc1fd7f738f8 GIT binary patch literal 7602 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 literal 0 HcmV?d00001 diff --git a/uml/Clause9/async-perf-report.txt b/uml/Clause9/async-perf-report.txt new file mode 100644 index 0000000..318d973 --- /dev/null +++ b/uml/Clause9/async-perf-report.txt @@ -0,0 +1,19 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 +participant "API consumer" as cli +participant "PIM" as srv + +note over cli, srv +Precondition: The API consumer has previously created a subscription +containing a PmJob to receive performance reports asynchronously. +end note +note over srv +Performance report is generated +according to the configured PmJob +end note +autonumber +cli <- srv: POST {NotificationTargetURI} (Event) +autonumber stop + +@enduml diff --git a/uml/Clause9/create-pm-object.txt b/uml/Clause9/create-pm-object.txt new file mode 100644 index 0000000..7a4f0fd --- /dev/null +++ b/uml/Clause9/create-pm-object.txt @@ -0,0 +1,19 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + autonumber + cli -> srv: POST () +alt Asynchronous Operation + cli <- srv: 202 Accepted +else Synchronous Operation + srv -> srv: Creates individual\nPM object + cli <- srv: 201 Created () + autonumber stop +end + note over cli, srv + Postcondition: Upon successful completion of the synchronous operation or of the corresponding task + in case of asynchronous operation, the individual PM object has been created. + end note +@enduml \ No newline at end of file diff --git a/uml/Clause9/delete-pm-object.txt b/uml/Clause9/delete-pm-object.txt new file mode 100644 index 0000000..ce94f7b --- /dev/null +++ b/uml/Clause9/delete-pm-object.txt @@ -0,0 +1,22 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + note over cli, srv + Precondition: The individual PM object has been previously created. + end note + autonumber + cli -> srv: DELETE +alt Asynchronous Operation + cli <- srv: 202 Accepted +else Synchronous Operation + srv -> srv: Deletes individual\nPM object + cli <- srv: 204 No Content / 200 OK () + autonumber stop +end + note over cli, srv + Postcondition: Upon successful completion of the synchronous operation or of the corresponding task in + case of asynchronous operation, the individual PM object has been deleted. + end note +@enduml \ No newline at end of file diff --git a/uml/Clause9/modify-pm-object.txt b/uml/Clause9/modify-pm-object.txt new file mode 100644 index 0000000..f07ba71 --- /dev/null +++ b/uml/Clause9/modify-pm-object.txt @@ -0,0 +1,22 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + note over cli, srv + Precondition: The individual PM object has been previously created. + end note + autonumber + cli -> srv: PATCH (PatchSet) +alt Asynchronous Operation + cli <- srv: 202 Accepted +else Synchronous Operation + srv -> srv: Modifies individual\nPM object + cli <- srv: 200 OK () / 204 No Content + autonumber stop +end + note over cli, srv + Postcondition: Upon successful completion of the synchronous operation or of the corresponding task + in case of asynchronous operation, the individual PM object has been modified. + end note +@enduml \ No newline at end of file diff --git a/uml/Clause9/query-performance-reports.txt b/uml/Clause9/query-performance-reports.txt new file mode 100644 index 0000000..e3d871d --- /dev/null +++ b/uml/Clause9/query-performance-reports.txt @@ -0,0 +1,21 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + + note over cli, srv + Precondition: One or more individual performance reports have been created. + end note + + alt Query information about multiple performance reports + autonumber + cli -> srv: GET .../redfish/v1/TelemetryService/MetricReports + srv -> cli: 200 OK (MetricReportCollection) + else Query information about individual performance report + cli -> srv: GET .../redfish/v1/TelemetryService/MetricReports/{MetricReportId} + srv -> cli: 200 OK (MetricReport) + autonumber stop + +end +@enduml diff --git a/uml/Clause9/query-pm-objects.txt b/uml/Clause9/query-pm-objects.txt new file mode 100644 index 0000000..a283689 --- /dev/null +++ b/uml/Clause9/query-pm-objects.txt @@ -0,0 +1,21 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + + note over cli, srv + Precondition: One or more individual PM objects have been created. + end note + + alt Query information about multiple PM objects + autonumber + cli -> srv: GET + srv -> cli: 200 OK () + else Query information about individual PM object + cli -> srv: GET + srv -> cli: 200 OK () + autonumber stop + +end +@enduml diff --git a/uml/Clause9/replace-pm-object.txt b/uml/Clause9/replace-pm-object.txt new file mode 100644 index 0000000..400b006 --- /dev/null +++ b/uml/Clause9/replace-pm-object.txt @@ -0,0 +1,22 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + note over cli, srv + Precondition: The individual PM object has been previously created. + end note + autonumber + cli -> srv: PUT () +alt Asynchronous Operation + cli <- srv: 202 Accepted +else Synchronous Operation + srv -> srv: Replaces individual\nPM object + cli <- srv: 200 OK () / 204 No Content + autonumber stop +end + note over cli, srv + Postcondition: Upon successful completion of the synchronous operation or of the corresponding + task in case of asynchronous operation, the individual PM object has been replaced. + end note +@enduml \ No newline at end of file -- GitLab From 8d782dec702e29ce9b2f58c17ed614b7511252aa Mon Sep 17 00:00:00 2001 From: Hammad Zafar Date: Thu, 27 Nov 2025 10:10:53 +0000 Subject: [PATCH 2/4] add postcondition and error handling fields in notification related flows --- GS_NFV-SOL_026.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/GS_NFV-SOL_026.md b/GS_NFV-SOL_026.md index 9cd539d..2e1aa7c 100644 --- a/GS_NFV-SOL_026.md +++ b/GS_NFV-SOL_026.md @@ -1382,7 +1382,7 @@ The querying of information about one or more performance reports, as illustrate **Error handling:** In case of failure, appropriate error information is provided in the response. -### 9.4.8 Receiving performance reports asynchronoulsy +### 9.4.8 Receiving performance reports asynchronously This clause describes the sequence for receiving performance reports asynchrnously as notifications. @@ -1396,6 +1396,10 @@ The procedure consists of the following steps as illustrated in figure 9.4.8-1. 1. When generating a performance report according to the configured PmJob (*MetricReportDefinition*) as part of the created subscription, an event of type *MetricReport* gets triggered. As a result of this, the PIM generates a notification that includes the performance report and sends it in the body of a POST request to the notification target URI which the API consumer had registered as part of the subscription request. +**Postcondition:** None. + +**Error handling:** None. + # 10 Physical resource fault management service interface Editor's Note: This clause will profile operations of physical resource fault management service interface against relevant solution(s). @@ -1459,6 +1463,10 @@ The procedure consists of the following steps as illustrated in figure A.3-1. 1. If an event occurs that matches the eventing criteria which are part of the subscription, the PIM generates a notification that includes information about the event and sends it in the body of a POST request to the notification target URI which the API consumer had registered as part of the subscription request. +**Postcondition:** None. + +**Error handling:** None. + Editor's Note: To further check in Redfish interface specs and potentially with DMTF Redfish experts about the standard response (if any) from API consumer when it receives a notification from Redfish event service. ## A.4 Flow of monitoring tasks related to asynchronous operations (polling method) -- GitLab From 7e02485f81875cc3181a61d1ee715e9f83319c6f Mon Sep 17 00:00:00 2001 From: hammadzf Date: Mon, 24 Nov 2025 15:12:16 +0100 Subject: [PATCH 3/4] add sequence diagrams --- GS_NFV-SOL_026.md | 173 +++++++++++++++++++++- media/image25.png | Bin 0 -> 11777 bytes media/image26.png | Bin 0 -> 9328 bytes media/image27.png | Bin 0 -> 13349 bytes media/image28.png | Bin 0 -> 13104 bytes media/image29.png | Bin 0 -> 13117 bytes media/image30.png | Bin 0 -> 11666 bytes media/image31.png | Bin 0 -> 7602 bytes uml/Clause9/async-perf-report.txt | 19 +++ uml/Clause9/create-pm-object.txt | 19 +++ uml/Clause9/delete-pm-object.txt | 22 +++ uml/Clause9/modify-pm-object.txt | 22 +++ uml/Clause9/query-performance-reports.txt | 21 +++ uml/Clause9/query-pm-objects.txt | 21 +++ uml/Clause9/replace-pm-object.txt | 22 +++ 15 files changed, 314 insertions(+), 5 deletions(-) create mode 100644 media/image25.png create mode 100644 media/image26.png create mode 100644 media/image27.png create mode 100644 media/image28.png create mode 100644 media/image29.png create mode 100644 media/image30.png create mode 100644 media/image31.png create mode 100644 uml/Clause9/async-perf-report.txt create mode 100644 uml/Clause9/create-pm-object.txt create mode 100644 uml/Clause9/delete-pm-object.txt create mode 100644 uml/Clause9/modify-pm-object.txt create mode 100644 uml/Clause9/query-performance-reports.txt create mode 100644 uml/Clause9/query-pm-objects.txt create mode 100644 uml/Clause9/replace-pm-object.txt diff --git a/GS_NFV-SOL_026.md b/GS_NFV-SOL_026.md index 9e6dec0..b1cffb3 100644 --- a/GS_NFV-SOL_026.md +++ b/GS_NFV-SOL_026.md @@ -454,7 +454,7 @@ This clause describes a sequence for modifying an individual Computer System res **Figure 6.4.4-1: Flow of Computer System modification** -The modification of an individual Computer System resource, as illustrated in Figure 6.4.41, consists of the following steps. +The modification of an individual Computer System resource, as illustrated in Figure 6.4.4-1, consists of the following steps. **Precondition:** The individual Computer System resource has been previously created. @@ -883,7 +883,7 @@ This clause describes a sequence for modifying an individual topology object. **Figure 8.4.4-1: Flow of topology object modification** -The modification of a topology object, as illustrated in Figure 8.4.41, consists of the following steps. +The modification of a topology object, as illustrated in Figure 8.4.4-1, consists of the following steps. **Precondition:** The individual topology object has been previously created. @@ -1174,7 +1174,7 @@ Figures 9.3-1, 9.3-2, 9.3-3 and 9.3-4 show resource structures of the Redfish&re Table 9.3-1 lists the API resources, and the applicable HTTP methods for each resource endpoint. -The HTTP methods marked as "M" (mandatory) in the "Cat" column of table 9.3-1 shall be supported by the PIM. The HTTP methods marked as "O" (optional) in the "Cat" column may be optionally supported by the PIM. +The HTTP methods marked as "M" (mandatory) in the "Cat" column of table 9.3-1 shall be supported by the PIM. The HTTP methods marked as "O" (optional) in the "Cat" column may be optionally supported by the PIM. The HTTP methods marked as "CM" (conditional mandatory) shall be supported by the PIM depending on the corresponding condition. **Table 9.3-1: API Resources and HTTP methods of physical resource performance management service interface** @@ -1226,13 +1226,176 @@ The HTTP methods marked as "M" (mandatory) in the "Cat" column of table 9.3-1 sh | | |DELETE |M |Delete an "Individual Subscription" resource. | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ |Notification endpoint |{NotificationTargetURI} |POST |M |Send a notification related to | -| | | | |a subscribed event (see note). | +| | | | |a subscribed event (see note 1). | +| | | | |Can also be used to send a performance | +| | | | |report asynchronously (see note 2). | +-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ -|NOTE: Notification endpoint resource and the corresponding NotficiationTargetURI | +|Individual Task Monitor |/redfish/v1/TaskService\ |GET |CM |Enable API consumer to monitor the | +| |/TaskMonitors/{TaskMonitorId} | | |progress of an asynchronous operation | +| |(see note 3) | | |as well as receive the result of the requested | +| | | | |operation once the corresponding task has been completed. | +| | | | |This resource endpoint shall be supported | +| | | | |if the API producer supports asynchronous operations. | ++-------------------------+---------------------------------+-----------------+----------+----------------------------------------------------------+ +|NOTE 1: Notification endpoint resource and the corresponding NotficiationTargetURI | |is used by the API producer to send notifications to the API consumer. | |This resource is not produced by the API producer. | +|NOTE 2: See clause 9.4.8 for the flow related to the API consumers receiving | +|performance reports asynchronously as notifications. . | +|NOTE 3: The URI of the task monitor is provided in the Location header | +|of the HTTP response to the API consumer when the API producer returns a "202 Accepted" response. | +---------------------------------------------------------------------------------------------------------------------------------------------------+ +## 9.4 Sequence diagrams (informative) + +### 9.4.1 Introduction + +The sequence diagrams provided in the subsequent sub-clauses are generalized to indicate management of a generic performance management (PM) related object, which refers to either PmJob or Threshold specified in clause 5 of the present document. These diagrams and their description contain placeholders such as <PM object collection URI>, <PM object URI> and <PM object>, which correspond to the appropriate resource URIs and PM-related objects specified in clauses 9.3 and 5.4 respectively. + +Sequence diagrams related to retrieval of performance reports do not contain generic placeholders. Specific resource URIs and object names are used in those sequence diagrams. + +Flows related to task monitoring, subscription management and notifications are described in Annex A of the present document. + +### 9.4.2 Creation of a PM object + +This clause describes a sequence for creating an individual resource corresponding to a PM object. + +![Figure 9.4.2-1: Flow of PM object creation](media/image25.png) + +**Figure 9.4.2-1: Flow of PM object creation** + +The creation of a PM object, as illustrated in Figure 9.4.2-1, consists of the following steps. + +**Precondition:** None. + +1. The API consumer sends a POST request to the <PM object collection URI> including a valid <PM object> representation in the message content body. +1. If the PIM supports asynchronous operations and creation of the PM object resource requires some time to process, the PIM returns a "202 Accepted" response. The response also contains the URI of the associated Task Monitor in the Location header. The response body can optionally contain representation of the corresponding Task resource created by the PIM for this asynchronous operation. +1. The PIM creates an individual PM object. +1. The PIM returns a "201 Created" response to the API consumer and includes in the message content body a representation of the created PM object. The response also contains the URI of the newly created PM object in the Location header. + +**Postcondition:** Upon successful completion of the synchronous operation or of the corresponding task in case of asynchronous operation, the individual PM object has been created. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.3 Querying information about PM objects + +This clause describes the sequences for querying information about multiple and individual PM objects. + +![Figure 9.4.3-1: Flow of querying information about PM objects](media/image26.png) + +**Figure 9.4.3-1: Flow of querying information about PM objects** + +The querying of information about one or more PM objects, as illustrated in Figure 9.4.3-1, consists of the following steps. + +**Precondition:** One or more individual PM objects have previously been created. + +1. If the API consumer intends to get information about multiple PM objects, it sends a GET request to the <PM object collection URI>. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of a <PM object collection>, containing information about all the individual PM objects that have been created. +1. If the API consumer intends to get information about an individual PM object, it sends a GET request to the <PM object URI>. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of the individual PM object. + +**Postcondition:** None. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.4 Modifying a PM object + +This clause describes a sequence for modifying an individual PM object. + +![Figure 9.4.4-1: Flow of PM object modification](media/image27.png) + +**Figure 9.4.4-1: Flow of PM object modification** + +The modification of a PM object, as illustrated in Figure 9.4.4-1, consists of the following steps. + +**Precondition:** The individual PM object has been previously created. + +1. The API consumer sends a PATCH request to the <PM object URI>, including data structure in the message content body representing the modifiable properties to be modified in the individual PM object. +1. If the PIM supports asynchronous operations and modification of the PM object requires some time to process, the PIM returns a "202 Accepted" response. The response also contains the URI of the associated Task Monitor in the Location header. The response body can optionally contain representation of the corresponding Task resource created by the PIM for this asynchronous operation. +1. The PIM modifies the individual PM object. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of the modified PM object. Alternatively, the PIM can also return a "204 No Content" response to the API consumer indicating successful operation. + +**Postcondition:** Upon successful completion of the synchronous operation or of the corresponding task in case of asynchronous operation, the individual PM object has been modified. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.5 Replacing a PM object + +This clause describes a sequence for replacing an individual PM object. + +![Figure 9.4.5-1: Flow of PM object replacement](media/image28.png) + +**Figure 9.4.5-1: Flow of PM object replacement** + +The replacement of an individual PM object, as illustrated in Figure 9.4.5-1, consists of the following steps. + +**Precondition:** The individual PM object has been previously created. + +1. The API consumer sends a PUT request to the <PM object URI> including a valid representation of the individual PM object to be replaced in the message content body. +1. If the PIM supports asynchronous operations and replacement of the PM object requires some time to process, the PIM returns a "202 Accepted" response. The response also contains the URI of the associated Task Monitor in the Location header. The response body can optionally contain representation of the corresponding Task resource created by the PIM for this asynchronous operation. +1. The PIM replaces the individual PM object. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of the replaced PM object. Alternatively, the PIM can also return a "204 No Content" response to the API consumer indicating successful operation. + +**Postcondition:** Upon successful completion of the synchronous operation or of the corresponding task in case of asynchronous operation, the individual PM object has been replaced. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.6 Deleting a PM object + +This clause describes a sequence for deleting an individual PM object. + +![Figure 9.4.6-1: Flow of PM object deletion](media/image29.png) + +**Figure 9.4.6-1: Flow of PM object deletion** + +The deletion of an individual PM object, as illustrated in Figure 9.4.6-1, consists of the following steps. + +**Precondition:** The individual PM object has been previously created. + +1. The API consumer sends a DELETE request to the <PM object URI>. +1. If the PIM supports asynchronous operations and deletion of the PM object requires some time to process, the PIM returns a "202 Accepted" response. The response also contains the URI of the associated Task Monitor in the Location header. The response body can optionally contain representation of the corresponding Task resource created by the PIM for this asynchronous operation. +1. The PIM deletes the individual PM object. +1. The PIM returns a "204 No Content " response to the API consumer indicating that the PM object has been successfully deleted. Alternatively, the PIM can also return a "200 OK" response to the API consumer including a representation of the deleted PM object in the message content body. + +**Postcondition:** Upon successful completion of the synchronous operation or of the corresponding task in case of asynchronous operation, the individual PM object has been deleted. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.7 Retrieving performance reports + +This clause describes the sequence for querying information about multiple and individual performance reports. + +![Figure 9.4.7-1: Flow of querying information about performance reports](media/image30.png) + +**Figure 9.4.7-1: Flow of querying information about performance reports** + +The querying of information about one or more performance reports, as illustrated in Figure 9.4.7-1, consists of the following steps. + +**Precondition:** One or more individual performance reports have previously been generated by the PIM. + +1. If the API consumer intends to get information about multiple performance reports, it sends a GET request to the performance reports URI. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of a collection of performance reports, containing information about all the individual performance reports that have been generated. +1. If the API consumer intends to get information about an individual performance report, it sends a GET request to the URI representing individual performance report. +1. The PIM returns a "200 OK" response to the API consumer and includes in the message content body a representation of the individual performance report. + +**Postcondition:** None. + +**Error handling:** In case of failure, appropriate error information is provided in the response. + +### 9.4.8 Receiving performance reports asynchronoulsy + +This clause describes the sequence for receiving performance reports asynchrnously as notifications. + +![Figure 9.4.8-1: Flow of receiving performance reports as notifications](media/image31.png) + +**Figure 9.4.8-1: Flow of receiving performance reports as notifications** + +The procedure consists of the following steps as illustrated in figure 9.4.8-1. + +**Precondition:** The API consumer has previously created a subscription containing a PmJob to receive performance reports asynchronously. + +1. When generating a performance report according to the configured PmJob (*MetricReportDefinition*) as part of the created subscription, an event of type *MetricReport* gets triggered. As a result of this, the PIM generates a notification that includes the performance report and sends it in the body of a POST request to the notification target URI which the API consumer had registered as part of the subscription request. + ## 9.5 Resources ### 9.5.1 Introduction diff --git a/media/image25.png b/media/image25.png new file mode 100644 index 0000000000000000000000000000000000000000..1d167d83316faa37ee374756aca32b3ebcf3ea1a GIT binary patch literal 11777 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

*ux1 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 literal 0 HcmV?d00001 diff --git a/media/image27.png b/media/image27.png new file mode 100644 index 0000000000000000000000000000000000000000..b28f63125c5ed7bdb34d7b421e8cd11f7f5a40c6 GIT binary patch literal 13349 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 DsZ>oH literal 0 HcmV?d00001 diff --git a/media/image29.png b/media/image29.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9881070f774fa5b923f4f3ad6e2c57f5faa9b7 GIT binary patch literal 13117 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 literal 0 HcmV?d00001 diff --git a/media/image31.png b/media/image31.png new file mode 100644 index 0000000000000000000000000000000000000000..bee7288269a9291a5a0f0c87622dcc1fd7f738f8 GIT binary patch literal 7602 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 literal 0 HcmV?d00001 diff --git a/uml/Clause9/async-perf-report.txt b/uml/Clause9/async-perf-report.txt new file mode 100644 index 0000000..318d973 --- /dev/null +++ b/uml/Clause9/async-perf-report.txt @@ -0,0 +1,19 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 +participant "API consumer" as cli +participant "PIM" as srv + +note over cli, srv +Precondition: The API consumer has previously created a subscription +containing a PmJob to receive performance reports asynchronously. +end note +note over srv +Performance report is generated +according to the configured PmJob +end note +autonumber +cli <- srv: POST {NotificationTargetURI} (Event) +autonumber stop + +@enduml diff --git a/uml/Clause9/create-pm-object.txt b/uml/Clause9/create-pm-object.txt new file mode 100644 index 0000000..7a4f0fd --- /dev/null +++ b/uml/Clause9/create-pm-object.txt @@ -0,0 +1,19 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + autonumber + cli -> srv: POST () +alt Asynchronous Operation + cli <- srv: 202 Accepted +else Synchronous Operation + srv -> srv: Creates individual\nPM object + cli <- srv: 201 Created () + autonumber stop +end + note over cli, srv + Postcondition: Upon successful completion of the synchronous operation or of the corresponding task + in case of asynchronous operation, the individual PM object has been created. + end note +@enduml \ No newline at end of file diff --git a/uml/Clause9/delete-pm-object.txt b/uml/Clause9/delete-pm-object.txt new file mode 100644 index 0000000..ce94f7b --- /dev/null +++ b/uml/Clause9/delete-pm-object.txt @@ -0,0 +1,22 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + note over cli, srv + Precondition: The individual PM object has been previously created. + end note + autonumber + cli -> srv: DELETE +alt Asynchronous Operation + cli <- srv: 202 Accepted +else Synchronous Operation + srv -> srv: Deletes individual\nPM object + cli <- srv: 204 No Content / 200 OK () + autonumber stop +end + note over cli, srv + Postcondition: Upon successful completion of the synchronous operation or of the corresponding task in + case of asynchronous operation, the individual PM object has been deleted. + end note +@enduml \ No newline at end of file diff --git a/uml/Clause9/modify-pm-object.txt b/uml/Clause9/modify-pm-object.txt new file mode 100644 index 0000000..f07ba71 --- /dev/null +++ b/uml/Clause9/modify-pm-object.txt @@ -0,0 +1,22 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + note over cli, srv + Precondition: The individual PM object has been previously created. + end note + autonumber + cli -> srv: PATCH (PatchSet) +alt Asynchronous Operation + cli <- srv: 202 Accepted +else Synchronous Operation + srv -> srv: Modifies individual\nPM object + cli <- srv: 200 OK () / 204 No Content + autonumber stop +end + note over cli, srv + Postcondition: Upon successful completion of the synchronous operation or of the corresponding task + in case of asynchronous operation, the individual PM object has been modified. + end note +@enduml \ No newline at end of file diff --git a/uml/Clause9/query-performance-reports.txt b/uml/Clause9/query-performance-reports.txt new file mode 100644 index 0000000..e3d871d --- /dev/null +++ b/uml/Clause9/query-performance-reports.txt @@ -0,0 +1,21 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + + note over cli, srv + Precondition: One or more individual performance reports have been created. + end note + + alt Query information about multiple performance reports + autonumber + cli -> srv: GET .../redfish/v1/TelemetryService/MetricReports + srv -> cli: 200 OK (MetricReportCollection) + else Query information about individual performance report + cli -> srv: GET .../redfish/v1/TelemetryService/MetricReports/{MetricReportId} + srv -> cli: 200 OK (MetricReport) + autonumber stop + +end +@enduml diff --git a/uml/Clause9/query-pm-objects.txt b/uml/Clause9/query-pm-objects.txt new file mode 100644 index 0000000..a283689 --- /dev/null +++ b/uml/Clause9/query-pm-objects.txt @@ -0,0 +1,21 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + + note over cli, srv + Precondition: One or more individual PM objects have been created. + end note + + alt Query information about multiple PM objects + autonumber + cli -> srv: GET + srv -> cli: 200 OK () + else Query information about individual PM object + cli -> srv: GET + srv -> cli: 200 OK () + autonumber stop + +end +@enduml diff --git a/uml/Clause9/replace-pm-object.txt b/uml/Clause9/replace-pm-object.txt new file mode 100644 index 0000000..400b006 --- /dev/null +++ b/uml/Clause9/replace-pm-object.txt @@ -0,0 +1,22 @@ +@startuml +skinparam defaultFontName "Arial" +skinparam defaultFontSize 11 + participant "API consumer" as cli + participant "PIM" as srv + note over cli, srv + Precondition: The individual PM object has been previously created. + end note + autonumber + cli -> srv: PUT () +alt Asynchronous Operation + cli <- srv: 202 Accepted +else Synchronous Operation + srv -> srv: Replaces individual\nPM object + cli <- srv: 200 OK () / 204 No Content + autonumber stop +end + note over cli, srv + Postcondition: Upon successful completion of the synchronous operation or of the corresponding + task in case of asynchronous operation, the individual PM object has been replaced. + end note +@enduml \ No newline at end of file -- GitLab From 370c231c50438b0f64e336b5eb7941086f90e8a1 Mon Sep 17 00:00:00 2001 From: Hammad Zafar Date: Thu, 27 Nov 2025 10:10:53 +0000 Subject: [PATCH 4/4] add postcondition and error handling fields in notification related flows --- GS_NFV-SOL_026.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/GS_NFV-SOL_026.md b/GS_NFV-SOL_026.md index b1cffb3..7950ff1 100644 --- a/GS_NFV-SOL_026.md +++ b/GS_NFV-SOL_026.md @@ -1382,7 +1382,7 @@ The querying of information about one or more performance reports, as illustrate **Error handling:** In case of failure, appropriate error information is provided in the response. -### 9.4.8 Receiving performance reports asynchronoulsy +### 9.4.8 Receiving performance reports asynchronously This clause describes the sequence for receiving performance reports asynchrnously as notifications. @@ -1396,6 +1396,7 @@ The procedure consists of the following steps as illustrated in figure 9.4.8-1. 1. When generating a performance report according to the configured PmJob (*MetricReportDefinition*) as part of the created subscription, an event of type *MetricReport* gets triggered. As a result of this, the PIM generates a notification that includes the performance report and sends it in the body of a POST request to the notification target URI which the API consumer had registered as part of the subscription request. +<<<<<<< HEAD ## 9.5 Resources ### 9.5.1 Introduction @@ -1622,6 +1623,11 @@ The URI query parameters, request and response bodies, and response codes of the ## 9.6 Data model The request and response data structures of the physical resource performance management service interface are defined in the Redfish® data model specification [\[3\]](#_ref_3). +======= +**Postcondition:** None. + +**Error handling:** None. +>>>>>>> 8d782de (add postcondition and error handling fields in notification related flows) # 10 Physical resource fault management service interface @@ -1686,6 +1692,10 @@ The procedure consists of the following steps as illustrated in figure A.3-1. 1. If an event occurs that matches the eventing criteria which are part of the subscription, the PIM generates a notification that includes information about the event and sends it in the body of a POST request to the notification target URI which the API consumer had registered as part of the subscription request. +**Postcondition:** None. + +**Error handling:** None. + Editor's Note: To further check in Redfish interface specs and potentially with DMTF Redfish experts about the standard response (if any) from API consumer when it receives a notification from Redfish event service. ## A.4 Flow of monitoring tasks related to asynchronous operations (polling method) -- GitLab