diff --git a/SOL002/VNFLifecycleManagement-API/ApiVersion.robot b/SOL002/VNFLifecycleManagement-API/ApiVersion.robot index fa6aa2231ea9d470c42a8f687bde48ae4be45aa4..dea0eaab69c1a61101da3b34cb64973f0fa46a66 100644 --- a/SOL002/VNFLifecycleManagement-API/ApiVersion.robot +++ b/SOL002/VNFLifecycleManagement-API/ApiVersion.robot @@ -11,7 +11,7 @@ POST API Version - Method not implemented ... Test title: POST API version - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 [5] v5.2.1 + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 [5] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -23,7 +23,7 @@ GET API Version ... Test title: GET API Version ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 [5] v5.2.1 + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 [5] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -36,7 +36,7 @@ PUT API Version - Method not implemented ... Test title: PUT API Version - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 [5] v5.2.1 + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 [5] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -48,7 +48,7 @@ PATCH API Version - Method not implemented ... Test title: PATCH API Version - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 [5] v5.2.1 + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 [5] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -60,7 +60,7 @@ DELETE API Version - Method not implemented ... Test title: DELETE API Version - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 [5] v5.2.1 + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 [5] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -72,7 +72,7 @@ POST API Version with apiMajorVerion - Method not implemented ... Test title: POST API version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 [5] v5.2.1 + ... Reference: Clause 9.3.3.3.1 - ETSI GS NFV-SOL 013 [5] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -84,7 +84,7 @@ GET API Version with apiMajorVerion ... Test title: GET API Version with apiMajorVerion ... Test objective: The objective is to test that GET method successfully return ApiVersionInformation ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 [5] v5.2.1 + ... Reference: Clause 9.3.3.3.2 - ETSI GS NFV-SOL 013 [5] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -97,7 +97,7 @@ PUT API Version with apiMajorVerion - Method not implemented ... Test title: PUT API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 [5] v5.2.1 + ... Reference: Clause 9.3.3.3.3 - ETSI GS NFV-SOL 013 [5] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -109,7 +109,7 @@ PATCH API Version with apiMajorVerion - Method not implemented ... Test title: PATCH API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 [5] v5.2.1 + ... Reference: Clause 9.3.3.3.4 - ETSI GS NFV-SOL 013 [5] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -121,7 +121,7 @@ DELETE API Version with apiMajorVerion - Method not implemented ... Test title: DELETE API Version with apiMajorVerion - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 [5] v5.2.1 + ... Reference: Clause 9.3.3.3.5 - ETSI GS NFV-SOL 013 [5] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/CancelOperationTask.robot b/SOL002/VNFLifecycleManagement-API/CancelOperationTask.robot index 390b83662c6cc0f348668ed0a4d0b7dbb0694afe..b65810db3804e4bb3de2c89523e9eae2e94bea33 100644 --- a/SOL002/VNFLifecycleManagement-API/CancelOperationTask.robot +++ b/SOL002/VNFLifecycleManagement-API/CancelOperationTask.robot @@ -14,7 +14,7 @@ Post Cancel operation task ... Test title: POST Cancel operation task ... Test objective: The POST method initiates cancelling an ongoing VNF lifecycle operation while it is being executed or rolled back, i.e. the "VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. ... Pre-conditions: the "VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. - ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: the resource is in FAILED_TEMP state @@ -27,7 +27,7 @@ Post Cancel operation task Conflict ... Test title: POST Cancel operation task Conflict ... Test objective: The POST method is NOT cancelling an ongoing VNF lifecycle operation due to the fact that the VNF instance resource is not in STARTING, PROCESSING or ROLLING_BACK state ... Pre-conditions: operation is not in STARTING, PROCESSING or ROLLING_BACK state - ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -41,7 +41,7 @@ Post Cancel operation task Not Found ... Test title: POST Cancel operation task ... Test objective: The objective is to test that POST method cannot cancel a VNF lifecycle operation because the resource is not found ... Pre-conditions: - ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -54,7 +54,7 @@ GET Cancel operation task - Method not implemented ... Test title: GET Cancel operation task - Method not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.17.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -66,7 +66,7 @@ PUT Cancel operation task - Method not implemented ... Test title: PUT Cancel operation task - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.17.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -78,7 +78,7 @@ PATCH Cancel operation task - Method not implemented ... Test title: PATCH Cancel operation task - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.17.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -90,7 +90,7 @@ DELETE Cancel operation task - Method not implemented ... Test title: DELETE Cancel operation task - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.17.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -101,7 +101,7 @@ Post Cancel operation task with permitted authorization scope ... Test title: POST Cancel operation task with permitted authorization scope ... Test objective: The POST method initiates cancelling an ongoing VNF lifecycle operation while it is being executed or rolled back, i.e. the "VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state with permitted authorization scope ... Pre-conditions: the "VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. - ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: the resource is in FAILED_TEMP state @@ -113,7 +113,7 @@ Post Cancel operation task with not permitted authorization scope ... Test title: POST Cancel operation task with not permitted authorization scope ... Test objective: The POST method initiates cancelling an ongoing VNF lifecycle operation while it is being executed or rolled back, i.e. the "VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state with not permitted authorization scope ... Pre-conditions: the "VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. - ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: the resource is in FAILED_TEMP state @@ -126,7 +126,7 @@ Post Cancel operation task - STARTING ... Test title: POST Cancel operation task ... Test objective: The POST method initiates cancelling an ongoing VNF lifecycle operation while it is being executed, i.e. the "VNF LCM operation occurrence" is in "STARTING" state. ... Pre-conditions: the "VNF LCM operation occurrence" is in "STARTING" state. - ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: the resource is in ROLLED_BACK state @@ -139,7 +139,7 @@ Cancel operation task - Unauthorized ... Test title: Post Cancel operation task - Unauthorized ... Test objective: The objective is to cancel operation task without authorization ... Pre-conditions: The "VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state - ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.17.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/ChangeCurrentVNFPackageTask.robot b/SOL002/VNFLifecycleManagement-API/ChangeCurrentVNFPackageTask.robot index 3ab18f78a443003a9bcfa08f334f80f3e5158403..45a54bb809e7aa5fc2c90e6800baba16455f804d 100644 --- a/SOL002/VNFLifecycleManagement-API/ChangeCurrentVNFPackageTask.robot +++ b/SOL002/VNFLifecycleManagement-API/ChangeCurrentVNFPackageTask.robot @@ -13,7 +13,7 @@ POST Change current VNF Package Task ... Test title: POST Change current VNF Package Task ... Test objective: The objective is to test that the POST method changes the current VNF package on which the VNF instance is based. ... Pre-conditions: none - ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -28,7 +28,7 @@ POST Change current VNF Package Task - Conflict ... Test title: POST Change current VNF Package Task - Conflict ... Test objective: The objective is to test that the POST method cannot change the current VNF package task when another lifecycle management operation is ongoing. ... Pre-conditions: none - ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: There is another lifecycle management operation ongoing. ... Post-Conditions: none @@ -41,7 +41,7 @@ GET Change current VNF Package Task - Method not implemented ... Test title: GET Change current VNF Package Task - Method not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11a.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11a.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -53,7 +53,7 @@ PUT Change current VNF Package Task - Method not implemented ... Test title: PUT Change current VNF Package Task - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11a.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11a.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -65,7 +65,7 @@ PATCH Change current VNF Package Task - Method not implemented ... Test title: PATCH Change current VNF Package Task - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11a.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11a.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -77,7 +77,7 @@ DELETE Change current VNF Package Task - Method not implemented ... Test title: DELETE Change current VNF Package Task - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11a.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11a.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -88,7 +88,7 @@ POST Change current VNF Package Task with permitted authorization scope ... Test title: POST Change current VNF Package Task with permitted authorization scope ... Test objective: The objective is to test that the POST method changes the current VNF package on which the VNF instance is based with permitted authorization scope. ... Pre-conditions: none - ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -102,7 +102,7 @@ POST Change current VNF Package Task with not permitted authorization scope ... Test title: POST Change current VNF Package Task with not permitted authorization scope ... Test objective: The objective is to test that the POST method changes the current VNF package on which the VNF instance is based with not permitted authorization scope. ... Pre-conditions: none - ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -115,7 +115,7 @@ POST Change current VNF Package Task - VNF instance not found ... Test title: POST Change current VNF Package Task - VNF instance not found ... Test objective: The objective is to test that POST method can not trigger a Change current VNF Package Task due to VNF instance not found ... Pre-conditions: none - ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -128,7 +128,7 @@ POST Change current VNF Package Task - Unauthorized ... Test title: POST Change current VNF Package Task - Unauthorized ... Test objective: The objective is to test that POST method cannot trigger a Change current VNF Package Task without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11a.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/ChangeExternalVNFConnectivityTask.robot b/SOL002/VNFLifecycleManagement-API/ChangeExternalVNFConnectivityTask.robot index 03805bb9500575bf8fd3ec5fce185fee33ccfe02..31624ffb2bab4fac63c96e59ace65f5609eecd5b 100644 --- a/SOL002/VNFLifecycleManagement-API/ChangeExternalVNFConnectivityTask.robot +++ b/SOL002/VNFLifecycleManagement-API/ChangeExternalVNFConnectivityTask.robot @@ -13,7 +13,7 @@ POST Change external VNF connectivity ... Test title: POST Change external VNF connectivity ... Test objective: The objective is to test that POST method triggers a change in VNF external connectivity ... Pre-conditions: none - ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -27,7 +27,7 @@ GET Change external VNF connectivity - Method not implemented ... Test title: GET Change external VNF connectivity - Method not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -39,7 +39,7 @@ PUT Change external VNF connectivity - Method not implemented ... Test title: PUT Change external VNF connectivity - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -51,7 +51,7 @@ PATCH Change external VNF connectivity - Method not implemented ... Test title: PATCH Change external VNF connectivity - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -63,7 +63,7 @@ DELETE Change external VNF connectivity - Method not implemented ... Test title: DELETE Change external VNF connectivity - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -75,7 +75,7 @@ POST Change external VNF connectivity Conflict ... Test title: POST Change external VNF connectivity Conflict ... Test objective: The objective is to test that the operation cannot be executed currently, due to a conflict with the state of the VNF instance resource or that a required child attribute of the "extensions" attribue has not been set. ... Pre-conditions: none - ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -87,7 +87,7 @@ POST Change external VNF connectivity with permitted authorization scope ... Test title: POST Change external VNF connectivity with permitted authorization value ... Test objective: The objective is to test that POST method triggers a change in VNF external connectivity with the permitted authorization value ... Pre-conditions: none - ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -101,7 +101,7 @@ POST Change external VNF connectivity with not permitted authorization scope ... Test title: POST Change external VNF connectivity with not permitted authorization value ... Test objective: The objective is to test that POST method triggers a change in VNF external connectivity with not permitted authorization value ... Pre-conditions: none - ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -114,7 +114,7 @@ POST Change external VNF connectivity - VNF instance not found ... Test title: POST Change external VNF connectivity - VNF instance not found ... Test objective: The objective is to test that POST method can not trigger a change in VNF external connectivity due to VNF instance not found ... Pre-conditions: none - ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -127,7 +127,7 @@ POST Change external VNF connectivity - Unauthorized ... Test title: POST Change external VNF connectivity - Unauthorized ... Test objective: The objective is to test that POST method cannot trigger a change in VNF external connectivity without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/ChangeVNFFlavourTask.robot b/SOL002/VNFLifecycleManagement-API/ChangeVNFFlavourTask.robot index e1b21d630fd15c5086c74813581bc4f178086652..a62c58ad8bcccf137b6f040e1c5ed07d32449ab5 100644 --- a/SOL002/VNFLifecycleManagement-API/ChangeVNFFlavourTask.robot +++ b/SOL002/VNFLifecycleManagement-API/ChangeVNFFlavourTask.robot @@ -13,7 +13,7 @@ POST Change deployment flavour of a vnfInstance ... Test title: POST Change deployment flavour of a vnfInstance ... Test objective: The objective is to test that POST method trigger a change in VNF deployment flavour ... Pre-conditions: none - ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -28,7 +28,7 @@ POST Change deployment flavour of a vnfInstance Conflict (Not-Instantiated) ... Test title: POST Change deployment flavour of a vnfInstance Conflict (Not-Instantiated) ... Test objective: The objective is to test that POST method cannot trigger a change in VNF deployment flavour because of a conflict with the state of the VNF instance resource or that a required child attribute of the "extensions" attribue has not been set. ... Pre-conditions: VNF instance resource is not in NOT-INSTANTIATED state - ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -41,7 +41,7 @@ POST Change deployment flavour of a vnfInstance Not Found ... Test title: POST Change deployment flavour of a vnfInstance Not Found ... Test objective: The objective is to test that POST method cannot trigger a change in VNF deployment flavour because the VNF instance resource is not found. ... Pre-conditions: VNF instance resource is not in NOT-INSTANTIATED state - ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -54,7 +54,7 @@ GET Change deployment flavour VNFInstance - Method not implemented ... Test title: GET Change deployment flavour VNFInstance - Method not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.7.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.7.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -66,7 +66,7 @@ PUT Change deployment flavour VNFInstance - Method not implemented ... Test title: PUT Change deployment flavour VNFInstance - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.7.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.7.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -78,7 +78,7 @@ PATCH Change deployment flavour VNFInstance - Method not implemented ... Test title: PATCH Change deployment flavour VNFInstance - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.7.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.7.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -90,7 +90,7 @@ DELETE Change deployment flavour VNFInstance - Method not implemented ... Test title: DELETE Change deployment flavour VNFInstance - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.7.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.7.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -101,7 +101,7 @@ POST Change deployment flavour of a vnfInstance with permited authorization scop ... Test title: POST Change deployment flavour of a vnfInstance with permited authorization scope ... Test objective: The objective is to test that POST method trigger a change in VNF deployment flavour with permited authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -115,7 +115,7 @@ POST Change deployment flavour of a vnfInstance with not permited authorization ... Test title: POST Change deployment flavour of a vnfInstance with not permited authorization scope ... Test objective: The objective is to test that POST method trigger a change in VNF deployment flavour with not permited authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -129,7 +129,7 @@ POST Change deployment flavour of a vnfInstance - Unauthorized ... Test objective: The objective is to test that POST method trigger a change in VNF deployment flavour without authorization ... Pre-conditions: none ... Pre-conditions: none - ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.7.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/CreateVNFSnapshotTask.robot b/SOL002/VNFLifecycleManagement-API/CreateVNFSnapshotTask.robot index 04b6eefa0bf592c1511d1e9bb2b1650aa55ca91f..2531aa6204f26cb4dd9835ba9c6db8910194a0a6 100644 --- a/SOL002/VNFLifecycleManagement-API/CreateVNFSnapshotTask.robot +++ b/SOL002/VNFLifecycleManagement-API/CreateVNFSnapshotTask.robot @@ -13,7 +13,7 @@ POST Create VNF Snapshot Task ... Test title: POST Create VNF Snapshot Task ... Test objective: The objective is to test that POST method requests taking a snapshot of a VNF instance. ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -28,7 +28,7 @@ POST Create VNF Snapshot Task - NOT FOUND ... Test title: POST Create VNF Snapshot Task - NOT FOUND ... Test objective: The objective is to test that the POST method cannot request for a snapshot if the task is not supported for the VNF instance represented by the parent resource. ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: Task is not supported for the VNF instance represented by the parent resource. ... Post-Conditions: none @@ -41,7 +41,7 @@ POST Create VNF Snapshot Task - CONFLICT ... Test title: POST Create VNF Snapshot Task - CONFLICT ... Test objective: The objective is to test that the POST method cannot request for a snapshot when the VNF instance is in NOT_INSTANTIATED state. ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: VNF instance is in NOT_INSTANTIATED state. ... Post-Conditions: none @@ -54,7 +54,7 @@ POST Create VNF Snapshot Task - UNPROCESSABLE CONTENT ... Test title: POST Create VNF Snapshot Task - UNPROCESSABLE CONTENT ... Test objective: The objective is to test that the POST method cannot request for a snapshot when the provided identifier of the target "Individual VNF snapshot" resource for the VNF snapshot is invalid. ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: The identifier of the target "Individual VNF snapshot" resource for the VNF snapshot is invalid. ... Post-Conditions: none @@ -67,7 +67,7 @@ GET Create VNF Snapshot Task - Method not implemented ... Test title: GET Create VNF Snapshot Task - Method not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -79,7 +79,7 @@ PUT Create VNF Snapshot Task - Method not implemented ... Test title: PUT Create VNF Snapshot Task - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -91,7 +91,7 @@ PATCH Create VNF Snapshot Task - Method not implemented ... Test title: PATCH Create VNF Snapshot Task - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -103,7 +103,7 @@ DELETE Create VNF Snapshot Task - Method not implemented ... Test title: DELETE Create VNF Snapshot Task - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -114,7 +114,7 @@ POST Create VNF Snapshot Task with permitted authorization scope ... Test title: POST Create VNF Snapshot Task with permitted authorization scope ... Test objective: The objective is to test that POST method requests taking a snapshot of a VNF instance with permitted authorization scope. ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -128,7 +128,7 @@ POST Create VNF Snapshot Task with not permitted authorization scope ... Test title: POST Create VNF Snapshot Task with not permitted authorization scope ... Test objective: The objective is to test that POST method requests taking a snapshot of a VNF instance with not permitted authorization scope. ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -141,7 +141,7 @@ POST Create VNF Snapshot Task - Unauthorized ... Test title: POST Create VNF Snapshot Task - Unauthorized ... Test objective: The objective is to test that POST method requests taking a snapshot of a VNF instance without authorization. ... Pre-conditions: none - ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.21.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/FailOperationTask.robot b/SOL002/VNFLifecycleManagement-API/FailOperationTask.robot index d5d29fa1f4165f876a998507281d7d11de865993..26b37c979c3eee1e4149566e9624eb00763124f9 100644 --- a/SOL002/VNFLifecycleManagement-API/FailOperationTask.robot +++ b/SOL002/VNFLifecycleManagement-API/FailOperationTask.robot @@ -12,7 +12,7 @@ POST Fail operation task ... Test title: POST Fail operation task ... Test objective: The objective is to test that POST method mark as "finally failed" a VNF lifecycle operation if that operation has experienced a failure ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -26,7 +26,7 @@ POST Fail operation task Conflict (Not-FAILED_TEMP) ... Test title: POST Fail operation task Conflict (Not-FAILED_TEMP) ... Test objective: The objective is to test that POST method cannot mark as "finally failed" due to confilct with the state of LCM Operation Occurrence ... Pre-conditions: the "VNF LCM operation occurrence" resource is not in "FAILED_TEMP" state. - ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -39,7 +39,7 @@ POST Fail operation task Not Found ... Test title: POST Fail operation task Not Found ... Test objective: The objective is to test that POST method cannot mark as "finally failed" a VNF lifecycle operation because the operation is not supported ... Pre-conditions: none - ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -52,7 +52,7 @@ GET Fail operation task - Method not implemented ... Test title: GET Fail operation task- Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.16.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.16.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -64,7 +64,7 @@ PUT Fail operation task - Method not implemented ... Test title: PUT Fail operation task- Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.16.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.16.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -76,7 +76,7 @@ PATCH Fail operation task - Method not implemented ... Test title: PATCH Fail operation task - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.16.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.16.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -88,7 +88,7 @@ DELETE Fail operation task - Method not implemented ... Test title: DELETE Fail operation task- Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.16.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.16.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -99,7 +99,7 @@ POST Fail operation task with permitted authorization scope ... Test title: POST Fail operation task with permitted authorization scope with permitted authorization scope ... Test objective: The objective is to test that POST method mark as "finally failed" a VNF lifecycle operation if that operation has experienced a failure with permitted authorization scope ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -112,7 +112,7 @@ POST Fail operation task with not permitted authorization scope ... Test title: POST Fail operation task with permitted authorization scope with not permitted authorization scope ... Test objective: The objective is to test that POST method mark as "finally failed" a VNF lifecycle operation if that operation has experienced a failure with not permitted authorization scope ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -125,7 +125,7 @@ POST Fail operation task - Unauthorized ... Test title: POST Fail operation task - Unauthorized ... Test objective: The objective is to test that POST method cannot mark as "finally failed" a VNF lifecycle operation because the operation is unauthorized ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.16.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/HealVNFTask.robot b/SOL002/VNFLifecycleManagement-API/HealVNFTask.robot index 626cb8f40f2c1ab46285a6e19ea24f32b0cbe993..1edaf02c2bb6261b2301c40f3cb0e7f002f03b64 100644 --- a/SOL002/VNFLifecycleManagement-API/HealVNFTask.robot +++ b/SOL002/VNFLifecycleManagement-API/HealVNFTask.robot @@ -13,7 +13,7 @@ POST Heal a vnfInstance ... Test title: POST Heal a vnfInstance ... Test objective: The objective is to test that POST method heal a VNF instance ... Pre-conditions: none - ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -27,7 +27,7 @@ POST Heal a vnfInstance Conflict (Not-Instantiated) ... Test title: POST Heal a vnfInstance (Not-Instantiated) ... Test objective: The objective is to test that the operation cannot be executed currently, due to a conflict with the state of the VNF instance resource or that a required child attribute of the "extensions" attribue has not been set. ... Pre-conditions: the VNF instance resource is in NOT-INSTANTIATED state - ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -41,7 +41,7 @@ POST Heal a vnfInstance Not Found ... Test title: POST Heal a vnfInstance Not Found ... Test objective: The objective is to test that the operation cannot be executed because the VNF instance resource is not found. ... Pre-conditions: the VNF instance resource is not existing - ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -54,7 +54,7 @@ GET Heal VNFInstance - Method not implemented ... Test title: GET Heal a vnfInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.9.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.9.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -66,7 +66,7 @@ PUT Heal VNFInstance - Method not implemented ... Test title: PUT Heal a vnfInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.9.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.9.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -78,7 +78,7 @@ PATCH Heal VNFInstance - Method not implemented ... Test title: PATCH Heal a vnfInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.9.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.9.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -90,7 +90,7 @@ DELETE Heal VNFInstance - Method not implemented ... Test title: DELETE Heal a vnfInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.9.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.9.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -101,7 +101,7 @@ POST Heal a vnfInstance with permitted authorization scope ... Test title: POST Heal a vnfInstance with permitted authorization scope ... Test objective: The objective is to test that POST method heal a VNF instance with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -115,7 +115,7 @@ POST Heal a vnfInstance with not permitted authorization scope ... Test title: POST Heal a vnfInstance with not permitted authorization scope ... Test objective: The objective is to test that POST method heal a VNF instance with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -128,7 +128,7 @@ POST Heal a vnfInstance - Unauthorized ... Test title: POST Heal a vnfInstance - Unauthorized ... Test objective: The objective is to test that POST method cannot trigger heal without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.9.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/IndividualSubscription.robot b/SOL002/VNFLifecycleManagement-API/IndividualSubscription.robot index da4d61f67e90330481d45a29a2faeab5b5a3e8f3..f6caa28e1395288d3dceb89cd4b92a9c8c25a38b 100644 --- a/SOL002/VNFLifecycleManagement-API/IndividualSubscription.robot +++ b/SOL002/VNFLifecycleManagement-API/IndividualSubscription.robot @@ -11,7 +11,7 @@ POST Individual Subscription - Method not implemented ... Test title: POST Individual Subscription - Method not implemented ... Test objective: The objective is to test that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.19.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.19.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -23,7 +23,7 @@ GET Individual Subscription ... Test title: GET Individual Subscription ... Test objective: The objective is to test the Get individual subscription ... Pre-conditions: none - ... Reference: Clause 5.4.19.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.19.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -36,7 +36,7 @@ PUT an individual subscription - Method not implemented ... Test title: PUT Individual Subscription - Method not implemented ... Test objective: The objective is to test that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.19.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.19.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -48,7 +48,7 @@ PATCH an individual subscription - Method not implemented ... Test title: PATCH Individual Subscription - Method not implemented ... Test objective: The objective is to test that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.19.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.19.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -60,7 +60,7 @@ DELETE an individual subscription ... Test title: DELETE Individual Subscription ... Test objective: The objective is to test that the DELETE method removes an individual subscription ... Pre-conditions: none - ... Reference: Clause 5.4.19.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.19.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -71,7 +71,7 @@ GET Individual Subscription with permitted authorization scope ... Test title: GET Individual Subscription with permitted authorization scope ... Test objective: The objective is to test the Get individual subscription with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.19.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.19.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -83,7 +83,7 @@ GET Individual Subscription with not permitted authorization scope ... Test title: GET Individual Subscription with not permitted authorization scope ... Test objective: The objective is to test the Get individual subscription with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.19.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.19.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -96,7 +96,7 @@ GET Individual Subscription - Unauthorized ... Test title: GET Individual Subscription - Unauthorized ... Test objective: The objective is to test the retrieval of individual subscription without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.19.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.19.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -109,10 +109,34 @@ GET Individual Subscription - Not Found ... Test title: GET Individual Subscription - Not Found ... Test objective: The objective is to test the retrieval of individual subscription fails when subscription is not present ... Pre-conditions: none - ... Reference: Clause 5.4.19.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.19.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none GET Individual Subscription - Not Found Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails +DELETE an individual subscription - Unauthorized + [Documentation] Test ID: 6.3.5.18.10 + ... Test title: DELETE Individual Subscription - Unauthorized + ... Test objective: The objective is to test that the DELETE method removes an individual subscription without authorization fails + ... Pre-conditions: none + ... Reference: Clause 5.4.19.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + Delete Individual subscription - Unauthorized + Check HTTP Response Status Code Is 401 + Check HTTP Response Body Json Schema Is ProblemDetails +DELETE an individual subscription - Not Found + [Documentation] Test ID: 6.3.5.18.11 + ... Test title: DELETE Individual Subscription - Not Found + ... Test objective: The objective is to test that the DELETE method fails when the individual subscription is not found + ... Pre-conditions: none + ... Reference: Clause 5.4.19.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + Delete Individual subscription - Not Found + Check HTTP Response Status Code Is 404 Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/IndividualVNFInstance.robot b/SOL002/VNFLifecycleManagement-API/IndividualVNFInstance.robot index f3ab9a5dff6d8f38a3886e44c433ad1de3302714..8eb301881d08904b8e649543ae684f0d835990eb 100644 --- a/SOL002/VNFLifecycleManagement-API/IndividualVNFInstance.robot +++ b/SOL002/VNFLifecycleManagement-API/IndividualVNFInstance.robot @@ -18,7 +18,7 @@ POST Individual VNFInstance - Method not implemented ... Test title: POST Individual VNFInstance - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -30,7 +30,7 @@ GET Information about an individual VNF Instance ... Test title: GET Information about an individual VNF Instance ... Test objective: The objective is to create a new VNF instance resource ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -45,7 +45,7 @@ PUT Individual VNFInstance - Method not implemented ... Test title: PUT Individual VNFInstance - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF instance not modified @@ -57,7 +57,7 @@ PATCH Individual VNFInstance ... Test title: PATCH Individual VNFInstance ... Test objective: This method modifies an individual VNF instance resource ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF instance modified @@ -71,7 +71,7 @@ PATCH Individual VNFInstance Precondition failed ... Test title: PATCH Individual VNFInstance Precondition failed ... Test objective: The objective is to that the modification of individual VNFInstance fails because precondition given in an HTTP request header is not fulfilled. Typically, this is due to an ETag mismatch, indicating that the resource was modified by another entity. ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -84,7 +84,7 @@ PATCH Individual VNFInstance Conflict ... Test title: PATCH Individual VNFInstance Conflict ... Test objective: The objective is to verify that modification operation cannot be executed currently, due to a conflict with the state of the VNF instance resource because another LCM Operation is ongoing. ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -97,7 +97,7 @@ DELETE Individual VNFInstance ... Test title: DELETE Individual VNFInstance ... Test objective: The objective is to delete a VNF instance ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF instance deleted @@ -109,7 +109,7 @@ DELETE Individual VNFInstance Conflict ... Test title: DELETE Individual VNFInstance Conflict ... Test objective: The objective is to verify that The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. ... Pre-conditions: VNF instance resource is in INSTANTIATED state - ... Reference: Clause 5.4.3.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -121,7 +121,7 @@ GET Information about an individual VNF Instance with permitted authorization sc ... Test title: GET Information about an individual VNF Instance with permitted authorization scope ... Test objective: The objective is to create a new VNF instance resource with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -135,7 +135,7 @@ GET Information about an individual VNF Instance with permitted authorization sc ... Test title: GET Information about an individual VNF Instance with not permitted authorization scope ... Test objective: The objective is to create a new VNF instance resource with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -147,7 +147,7 @@ Get Information about an individual VNF Instance - Not Found ... Test title: Get Information about an individual VNF Instance - Not Found ... Test objective: The objective is to test that the retrieval of an individual VNF Instance fails when instance is not present. ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -160,10 +160,58 @@ Get Information about an individual VNF Instance - Unauthorized ... Test title: Get Information about an individual VNF Instance - Unauthorized ... Test objective: The objective is to Get Information about an individual VNF Instance without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.3.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.3.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none GET individual vnfInstance - Unauthorized Check HTTP Response Status Code Is 401 - Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file + Check HTTP Response Body Json Schema Is ProblemDetails +PATCH Individual VNFInstance - Unauthorized + [Documentation] Test ID: 6.3.5.2.13 + ... Test title: PATCH Individual VNFInstance - Unauthorized + ... Test objective: This method modifies an individual VNF instance resource without authorization. + ... Pre-conditions: none + ... Reference: Clause 5.4.3.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + PATCH individual vnfInstance - Unauthorized + Check HTTP Response Status Code Is 401 + Check HTTP Response Body Json Schema Is ProblemDetails +DELETE Individual VNFInstance - Unauthorized + [Documentation] Test ID: 6.3.5.2.14 + ... Test title: DELETE Individual VNFInstance - Unauthorized + ... Test objective: The objective is to delete a VNF instance without authorization. + ... Pre-conditions: none + ... Reference: Clause 5.4.3.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + DELETE individual vnfInstance - Unauthorized + Check HTTP Response Status Code Is 401 + Check HTTP Response Body Json Schema Is ProblemDetails +PATCH Individual VNFInstance - Not Found + [Documentation] Test ID: 6.3.5.2.15 + ... Test title: PATCH Individual VNFInstance - Not Found + ... Test objective: This method modifies an individual VNF instance resource that does not exist. + ... Pre-conditions: none + ... Reference: Clause 5.4.3.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + PATCH individual vnfInstance - Not Found + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails +DELETE Individual VNFInstance - Not Found + [Documentation] Test ID: 6.3.5.2.16 + ... Test title: DELETE Individual VNFInstance - Not Found + ... Test objective: The objective is to delete a VNF instance that does not exist. + ... Pre-conditions: none + ... Reference: Clause 5.4.3.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + DELETE individual vnfInstance - Not Found + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/IndividualVNFSnapshot.robot b/SOL002/VNFLifecycleManagement-API/IndividualVNFSnapshot.robot index 0ca6fd3dfd6e3396743da74d092ab56fa9ed14d8..69b440b1d15f3b40dd1c4184ff1ecb68a74944cf 100644 --- a/SOL002/VNFLifecycleManagement-API/IndividualVNFSnapshot.robot +++ b/SOL002/VNFLifecycleManagement-API/IndividualVNFSnapshot.robot @@ -8,7 +8,7 @@ POST Individual VNF Snapshot - Method not implemented ... Test title: POST Individual VNF Snapshot - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.24.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.24.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -20,7 +20,7 @@ GET Information about an individual VNF Snapshot - SUCCESSFUL ... Test title: GET Information about an individual VNF Snapshot - SUCCESSFUL ... Test objective: The objective is to GET information about an individual VNF Snapshot ... Pre-conditions: none - ... Reference: Clause 5.4.24.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.24.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -33,7 +33,7 @@ GET Information about an individual VNF Snapshot - NOT FOUND ... Test title: GET Information about an individual VNF Snapshot - NOT FOUND ... Test objective: The objective is to test that the retrieval of individual VNF Snapshot fails when using an invalid resource identifier. ... Pre-conditions: At least one individual VNF Snapshot is available in the NFV-MANO. - ... Reference: Clause 5.4.24.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.24.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_NFV-MANO ... Applicability: none ... Post-Conditions: none @@ -46,7 +46,7 @@ PUT Individual VNF Snapshot - Method not implemented ... Test title: PUT Individual VNF Snapshot - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.24.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.24.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF Snapshot not modified @@ -58,7 +58,7 @@ PATCH Individual VNF Snapshot - Method not implemented ... Test title: PATCH Individual VNF Snapshot - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.24.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.24.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -70,7 +70,7 @@ DELETE Individual VNF Snapshot ... Test title: DELETE Individual VNF Snapshot ... Test objective: The objective is to delete a VNF Snapshot ... Pre-conditions: none - ... Reference: Clause 5.4.24.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.24.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF Snapshot deleted @@ -82,7 +82,7 @@ DELETE Individual VNF Snapshot - Conflict ... Test title: DELETE Individual VNF Snapshot Conflict ... Test objective: The objective is to verify that The operation cannot be executed currently, due to a conflict with the state of the VNF Snapshot resource. ... Pre-conditions: none - ... Reference: Clause 5.4.24.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.24.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: VNF snapshot is in use by some operation such as reverting a VNF instance to a VNF snapshot or creating a VNF snapshot package. ... Post-Conditions: none @@ -94,7 +94,7 @@ GET Information about an individual VNF Snapshot with permitted authorization sc ... Test title: GET Information about an individual VNF Snapshot with permitted authorization scope - SUCCESSFUL ... Test objective: The objective is to GET information about an individual VNF Snapshot with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.24.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.24.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -106,7 +106,7 @@ GET Information about an individual VNF Snapshot with not permitted authorizatio ... Test title: GET Information about an individual VNF Snapshot with not permitted authorization scope - SUCCESSFUL ... Test objective: The objective is to GET information about an individual VNF Snapshot with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.24.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.24.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -119,10 +119,34 @@ GET Information about an individual VNF Snapshot - Unauthorized ... Test title: GET Information about an individual VNF Snapshot - Unauthorized ... Test objective: The objective is to test that the retrieval of individual VNF Snapshot cannot be executed because the request is not authorized ... Pre-conditions: none - ... Reference: Clause 5.4.24.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.24.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none GET Individual VNF Snapshot - Unauthorized Check HTTP Response Status Code Is 401 + Check HTTP Response Body Json Schema Is ProblemDetails +DELETE Individual VNF Snapshot - Unauthorized + [Documentation] Test ID: 6.3.5.26.11 + ... Test title: DELETE Individual VNF Snapshot - Unauthorized + ... Test objective: The objective is to test that the DELETE method fails when the request is not authorized. + ... Pre-conditions: none + ... Reference: Clause 5.4.24.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + DELETE individual VNF Snapshot - Unauthorized + Check HTTP Response Status Code Is 401 + Check HTTP Response Body Json Schema Is ProblemDetails +DELETE Individual VNF Snapshot - Not Found + [Documentation] Test ID: 6.3.5.26.12 + ... Test title: DELETE Individual VNF Snapshot - Not Found + ... Test objective: The objective is to test that the DELETE method fails when the VNF Snapshot is not found. + ... Pre-conditions: none + ... Reference: Clause 5.4.24.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + DELETE individual VNF Snapshot - Not Found + Check HTTP Response Status Code Is 404 Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/IndividualVnfLcmOperationOccurence.robot b/SOL002/VNFLifecycleManagement-API/IndividualVnfLcmOperationOccurence.robot index 54df23c0b6eebf874a34a5a33976618863fec9e8..27a32c3baf76af0b5b9f03cc6e775cb1453da4af 100644 --- a/SOL002/VNFLifecycleManagement-API/IndividualVnfLcmOperationOccurence.robot +++ b/SOL002/VNFLifecycleManagement-API/IndividualVnfLcmOperationOccurence.robot @@ -10,7 +10,7 @@ Post Individual VNF LCM OP occurrences - Method not implemented ... Test title: Post Individual VNF LCM OP occurrences - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.13.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.13.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -22,7 +22,7 @@ Get status information about individual VNF instances ... Test title: Get status information about individual VNF instances ... Test objective: The objective is to test that this method retrieve status information about a VNF lifecycle management operation occurrence ... Pre-conditions: none - ... Reference: Clause 5.4.13.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.13.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -36,7 +36,7 @@ PUT status information about multiple VNF instances - Method not implemented ... Test title: PUT status information about multiple VNF instances - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.13.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.13.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -48,7 +48,7 @@ PATCH status information about multiple VNF instances - Method not implemented ... Test title: PATCH status information about multiple VNF instances - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.13.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.13.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -60,7 +60,7 @@ DELETE status information about multiple VNF instances - Method not implemented ... Test title: DELETE status information about multiple VNF instances - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.13.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.13.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -72,7 +72,7 @@ Get status information about individual VNF instances with permitted authorizati ... Test title: Get status information about individual VNF instances with permitted authorization scope ... Test objective: The objective is to test that this method retrieve status information about a VNF lifecycle management operation occurrence with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.13.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.13.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -86,7 +86,7 @@ Get status information about individual VNF instances with not permitted authori ... Test title: Get status information about individual VNF instances with not permitted authorization scope ... Test objective: The objective is to test that this method retrieve status information about a VNF lifecycle management operation occurrence with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.13.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.13.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -99,7 +99,7 @@ Get Individual VNF LCM Operation occurrences - Not Found ... Test title: Get status information about individual VNF instances - Not Found ... Test objective: The objective is to test that the retrieval of VNF lifecycle management operation occurrence fails when instance is not present. ... Pre-conditions: none - ... Reference: Clause 5.4.13.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.13.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -111,7 +111,7 @@ Get Individual VNF LCM Operation occurrences - Unauthorized ... Test title: Get Individual VNF LCM Operation occurrences - Unauthorized ... Test objective: The objective is to test that the retrieval of VNF lifecycle management operation occurrence fails without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.13.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.13.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/InstantiateVNFTask.robot b/SOL002/VNFLifecycleManagement-API/InstantiateVNFTask.robot index 6111c312f1dabc29682f828ed88eaff32ba6ac65..941f65ab203d200405f970cc6bd79e5803c4e44a 100644 --- a/SOL002/VNFLifecycleManagement-API/InstantiateVNFTask.robot +++ b/SOL002/VNFLifecycleManagement-API/InstantiateVNFTask.robot @@ -15,7 +15,7 @@ POST Instantiate a vnfInstance ... Test title: POST Instantiate a vnfInstance ... Test objective: The objective is to instantiate a VNF instance ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -29,7 +29,7 @@ POST Instantiate a vnfInstance Conflict ... Test title: POST Instantiate a vnfInstance Conflict ... Test objective: The objective is to verify that the instantiation of the vnf cannot be executed currently, due to a conflict with the state of the VNF instance resource. ... Pre-conditions: VNF instance resource is in INSTANTIATED state - ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -42,7 +42,7 @@ GET Instantiate VNFInstance - Method not implemented ... Test title: GET Instantiate VNFInstance - Method not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -54,7 +54,7 @@ PUT Instantiate VNFInstance - Method not implemented ... Test title: PUT Instantiate VNFInstance - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -66,7 +66,7 @@ PATCH Instantiate VNFInstance - Method not implemented ... Test title: PATCH Instantiate VNFInstance - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -78,7 +78,7 @@ DELETE Instantiate VNFInstance - Method not implemented ... Test title: DELETE Instantiate VNFInstance - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -90,33 +90,37 @@ POST Instantiate a vnfInstance with TaretScaleLevelId ... Test title: POST Instantiate a vnfInstance with TaretScaleLevelId attribute ... Test objective: The objective is to instantiate a VNF instance ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none POST instantiate individual vnfInstance with TargetScaleLevelId + Check HTTP Response Header Contains Location + Check Operation Occurrence Id Check HTTP Response Status Code Is 202 - Check Operation Occurrence Id + POST Instantiate individual vnfInstance with instantiationLevelId [Documentation] Test ID: 6.3.5.3.8 ... Test title: POST Instantiate a vnfInstance with instantiationLevelId attribute ... Test objective: The objective is to instantiate a VNF instance ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none POST instantiate individual vnfInstance with instantiationLevelId - Check HTTP Response Status Code Is 202 + Check HTTP Response Header Contains Location Check Operation Occurrence Id + Check HTTP Response Status Code Is 202 + POST Instantiate a vnfInstance with permited authorization scope [Documentation] Test ID: 6.3.5.3.9 ... Test title: POST Instantiate a vnfInstance with permited authorization scope ... Test objective: The objective is to instantiate a VNF instance using correct OAuth scope value with permited authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -131,7 +135,7 @@ POST Instantiate a vnfInstance with not permited authorization scope ... Test title: POST Instantiate a vnfInstance with non permited authorization scope ... Test objective: The objective is to instantiate a VNF instance using incorrect OAuth scope value with not permited authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -143,7 +147,7 @@ POST Instantiate a vnfInstance with not valid authorization token ... Test title: POST Instantiate a vnfInstance with non permited authorization scope ... Test objective: The objective is to instantiate a VNF instance using incorrect OAuth scope value with not permited authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -156,7 +160,7 @@ POST Instantiate a vnfInstance - Not Found ... Test title: POST Instantiate a vnfInstance - Not Found ... Test objective: The objective is to Instantiate Individual VNFInstance when instance is not present. ... Pre-conditions: none - ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.4.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/NotificationEndpoint.robot b/SOL002/VNFLifecycleManagement-API/NotificationEndpoint.robot index 5efc67ac59ef0e2ddd78f09ff1d106437dee2843..f90fbf0e96355b920293cdbbd60b1c4a28d413b3 100644 --- a/SOL002/VNFLifecycleManagement-API/NotificationEndpoint.robot +++ b/SOL002/VNFLifecycleManagement-API/NotificationEndpoint.robot @@ -14,7 +14,7 @@ VNF LCM Operation Occurrence Notification ... Test title: VNF LCM Operation Occurrence Start Notification ... Test objective: The objective is to test that VNF LCM Operation Occurrence Notification is delivered with success to the notification consumer ... Pre-conditions: A subscription for VNF LCM Operation Occurrence notifications is available in the VNFM. - ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_Notif_Endpoint ... Applicability: none ... Post-Conditions: none @@ -26,7 +26,7 @@ VNF Identifier Creation Notification ... Test title: VNF Identifier Creation Notification ... Test objective: The objective is to test that VNF Identifier Creation Notification is delivered with success to the notification consumer ... Pre-conditions: A subscription for VNF Identifier Creation Notification is available in the VNFM. - ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_Notif_Endpoint ... Applicability: none ... Post-Conditions: none @@ -38,7 +38,7 @@ VNF Identifier Deletion Notification ... Test title: VNF Identifier Deletion Notification ... Test objective: The objective is to test that VNF Identifier Deletion Notification is delivered with success to the notification consumer ... Pre-conditions: A subscription for VNF Identifier Deletion Notification is available in the VNFM. - ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_Notif_Endpoint ... Applicability: none ... Post-Conditions: none @@ -50,7 +50,7 @@ Test the Notification Endpoint - Successful ... Test title: Test the Notification Endpoint - Successful ... Test objective: The objective is to test the Notification Endpoint provided by the notification consumer. ... Pre-conditions: A notification endpoint is provided by the API consumer upon subscription. - ... Reference: Clause 5.4.20.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.20.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_Notif_Endpoint ... Applicability: none ... Post-Conditions: none @@ -61,7 +61,7 @@ PUT Notification endpoint - Method Not Implemented ... Test title: PUT Notification endpoint - Method Not Implemented ... Test objective: The objective is to test the PUT method for Notification Endpoint provided by the consumer is not implemented. ... Pre-conditions: A notification endpoint is provided by the API consumer upon subscription. - ... Reference: Clause 5.4.20.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.20.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_Notif_Endpoint ... Applicability: none ... Post-Conditions: none @@ -73,7 +73,7 @@ PATCH Notification endpoint - Method Not Implemented ... Test title: PATCH Notification endpoint - Method Not Implemented ... Test objective: The objective is to test the PATCH method for Notification Endpoint provided by the consumer is not implemented. ... Pre-conditions: A notification endpoint is provided by the API consumer upon subscription. - ... Reference: Clause 5.4.20.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.20.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_Notif_Endpoint ... Applicability: none ... Post-Conditions: none @@ -85,13 +85,50 @@ DELETE Notification endpoint - Method Not Implemented ... Test title: DELETE Notification endpoint - Method Not Implemented ... Test objective: The objective is to test the DELETE method for Notification Endpoint provided by the consumer is not implemented. ... Pre-conditions: A notification endpoint is provided by the API consumer upon subscription. - ... Reference: Clause 5.4.20.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.20.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_Notif_Endpoint ... Applicability: none ... Post-Conditions: none DELETE notification endpoint Check HTTP Response Status Code Is 405 +Test the Notification Endpoint - Unauthorized + [Documentation] Test ID: 6.3.5.21.8 + ... Test title: Test the Notification Endpoint - Unauthorized + ... Test objective: The objective is to test the Notification Endpoint provided by the notification consumer without authorization. + ... Pre-conditions: A notification endpoint is provided by the API consumer upon subscription. + ... Reference: Clause 5.4.20.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + Get reach the notification endpoint - Unauthorized + Check HTTP Response Status Code Is 401 + Check HTTP Response Body Json Schema Is ProblemDetails +Test the Notification Endpoint - Not Found + [Documentation] Test ID: 6.3.5.21.9 + ... Test title: Test the Notification Endpoint - Not Found + ... Test objective: The objective is to test the not existing Notification Endpoint provided by the notification consumer. + ... Pre-conditions: none + ... Reference: Clause 5.4.20.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + Get reach the notification endpoint - Not Found + Check HTTP Response Status Code Is 404 + Check HTTP Response Body Json Schema Is ProblemDetails +VNF LCM Operation Occurrence Notification - Unauthorized + [Documentation] Test ID: 6.3.5.21.10 + ... Test title: VNF LCM Operation Occurrence Start Notification - Unauthorized + ... Test objective: The objective is to test that VNF LCM Operation Occurrence Notification is delivered with success to the notification consumer without authorization. + ... Pre-conditions: A subscription for VNF LCM Operation Occurrence notifications is available in the VNFM. + ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_Notif_Endpoint + ... Applicability: none + ... Post-Conditions: none + Post VNF LCM Operation Occurrence Notification - Unauthorized + Check HTTP Response Status Code Is 401 + Check HTTP Response Body Json Schema Is ProblemDetails + *** Keywords *** Check resource existence and get CallbackUri Set Headers {"Accept":"${ACCEPT}"} @@ -114,7 +151,17 @@ Post VNF LCM Operation Occurrence Notification Post ${callbackResp} ${body} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} - +Post VNF LCM Operation Occurrence Notification - Unauthorized + log Trying to perform a POST to get notification without authorization + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + ${template} = Get File jsons/VnfLcmOperationOccurrenceNotification.json + ${body}= Format String ${template} subscriptionId=${subscriptionId} vnfInstanceId=${vnfInstanceId} vnfLcmOpOccId=${vnfLcmOpOccId} + Post ${callbackResp} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} Post VNF Identifier Creation Notification log Trying to perform a POST to get notification Set Headers {"Accept":"${ACCEPT}"} diff --git a/SOL002/VNFLifecycleManagement-API/Notifications.robot b/SOL002/VNFLifecycleManagement-API/Notifications.robot index 05036a2ab36a00ffbac94388d204ff1a000ec9f4..284dde58bc226d53ded06550a0c66c583eea69ce 100644 --- a/SOL002/VNFLifecycleManagement-API/Notifications.robot +++ b/SOL002/VNFLifecycleManagement-API/Notifications.robot @@ -6,6 +6,7 @@ Library MockServerLibrary Library Process Library OperatingSystem Library Collections +Library REST http://${VNFM_HOST}:${VNFM_PORT} ssl_verify=false *** Test Cases *** VNF LCM Operation Occurrence Start Notification @@ -13,35 +14,35 @@ VNF LCM Operation Occurrence Start Notification ... Test title: VNF LCM Operation Occurrence Start Notification ... Test objective: The objective is to test the dispatch of VNF LCM Operation Occurrence Start Notification when a new VNF LCM operation is started in the VNFM, and perform a JSON schema and content validation of the delivered notification. The action that triggers the notification under test is an explicit test step, but it is not performed by the test system. ... Pre-conditions: A subscription for VNF LCM Operation Occurrence notifications is available in the VNFM. - ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none Trigger a VNF LCM operation (external action) Check VNF LCM Operation Occurrence Start Notification Http POST Request Body Json Schema Is VnfLcmOperationOccurrenceNotification Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationType attribute Is VnfLcmOperationOccurrenceNotification - Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is START + Check VNF LCM Operation Occurrence Start Notification And LCM State START VNF LCM Operation Occurrence Result Notification [Documentation] Test ID: 6.3.5.19.2 ... Test title: VNF LCM Operation Occurrence Result Notification ... Test objective: The objective is to test the dispatch of VNF LCM Operation Occurrence Result Notification when a VNF LCM operation is completed in the VNFM, and perform a JSON schema and content validation of the delivered notification. The action that triggers the notification under test is an explicit test step, but it is not performed by the test system. ... Pre-conditions: An VNF LCM operation is in progress, and a subscription for VNF LCM Operation Occurrence notifications is available in the VNFM. - ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none Trigger the completion of an VNF LCM operation (external action) Check VNF LCM Operation Occurrence Result Notification Http POST Request Body Json Schema Is VnfLcmOperationOccurrenceNotification Check VNF LCM Operation Occurrence Result Notification Http POST Request Body notificationType attribute Is VnfLcmOperationOccurrenceNotification - Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationStatus attribute Is RESULT + Check VNF LCM Operation Occurrence Result Notification And LCM State RESULT VNF Identifier Creation Notification [Documentation] Test ID: 6.3.5.19.3 ... Test title: VNF Identifier Creation Notification ... Test objective: The objective is to test the dispatch of VNF Identifier Creation Notification when a new VNF instance resource is created in the VNFM, and perform a JSON schema and content validation of the delivered notification. The action that triggers the notification under test is an explicit test step, but it is not performed by the test system. ... Pre-conditions: A subscription for VNF identifier creation notifications is available in the VNFM. - ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.20.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -54,7 +55,7 @@ VNF Identifier Deletion Notification ... Test title: VNF Identifier Deletion Notification ... Test objective: The objective is to test the dispatch of VNF Identifier Deletion Notification when a VNF instance resource is deleted in the VNFM, and perform a JSON schema and content validation of the delivered notification. The action that triggers the notification under test is an explicit test step, but it is not performed by the test system. ... Pre-conditions: A VNF instance resource is created, and a subscription for VNF identifier creation notifications is available in the VNFM. - ... Reference: Clause 6.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 6.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -87,14 +88,11 @@ Check VNF LCM Operation Occurrence Start Notification Http POST Request Body Jso Check VNF LCM Operation Occurrence Start Notification Http POST Request Body notificationType attribute Is [Arguments] ${type} Configure Notification VNF LCM Operation Occurrence Start Handler ${callback_endpoint_fwd} ${type} START - Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} - Clear Requests ${callback_endpoint} - Clear Requests ${callback_endpoint_fwd} - + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} Configure Notification VNF LCM Operation Occurrence Start Handler [Arguments] ${endpoint} ${type} ${status} ${json}= evaluate {} - set to dictionary ${json} notificationType ${type} changeType ${status} + set to dictionary ${json} notificationType ${type} notificationStatus ${status} ${BODY}= evaluate json.dumps(${json}) json Log Creating mock request and response to handle status notification &{req}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} @@ -110,14 +108,11 @@ Check VNF LCM Operation Occurrence Result Notification Http POST Request Body Js Check VNF LCM Operation Occurrence Result Notification Http POST Request Body notificationType attribute Is [Arguments] ${type} Configure Notification VNF LCM Operation Occurrence Result Handler ${callback_endpoint_fwd} ${type} RESULT - Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} - Clear Requests ${callback_endpoint} - Clear Requests ${callback_endpoint_fwd} - + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} Configure Notification VNF LCM Operation Occurrence Result Handler [Arguments] ${endpoint} ${type} ${status} ${json}= evaluate {} - set to dictionary ${json} notificationType ${type} changeType ${status} + set to dictionary ${json} notificationType ${type} notificationStatus ${status} ${BODY}= evaluate json.dumps(${json}) json Log Creating mock request and response to handle status notification &{req}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY} @@ -133,10 +128,7 @@ Check VNF Identifier Creation Notification Http POST Request Body Json Schema Is Check VNF Identifier Creation Notification Http POST Request Body notificationType attribute Is [Arguments] ${type} Configure Notification VNF Identifier Creation Handler ${callback_endpoint_fwd} ${type} - Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} - Clear Requests ${callback_endpoint} - Clear Requests ${callback_endpoint_fwd} - + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} Configure Notification VNF Identifier Creation Handler [Arguments] ${endpoint} ${type} ${json}= evaluate {} @@ -156,7 +148,7 @@ Check VNF Identifier Deletion Notification Http POST Request Body Json Schema Is Check VNF Identifier Deletion Notification Http POST Request Body notificationType attribute Is [Arguments] ${type} Configure Notification VNF Identifier Deletion Handler ${callback_endpoint_fwd} ${type} - Wait Until Keyword Succeeds ${total_polling_time} ${polling_interval} Verify Mock Expectation ${notification_request} + Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request} Clear Requests ${callback_endpoint} Clear Requests ${callback_endpoint_fwd} @@ -193,3 +185,124 @@ Create Sessions Wait For Process handle=mockInstance timeout=5s on_timeout=continue Create Mock Session ${callback_uri}:${callback_port} +Check VNF LCM Operation Occurrence Start Notification And LCM State + [Arguments] ${expected_status} + ${requests}= Retrieve Requests ${callback_endpoint_fwd} + Should Not Be Empty ${requests} msg=No notification received at callback endpoint! + + ${request_type}= Evaluate type(${requests}) + ${last_request}= Run Keyword If "${request_type}" == "" + ... Get From List ${requests} -1 + ... ELSE + ... Set Variable ${requests} + + ${body}= Get From Dictionary ${last_request} body + ${body_text}= Get From Dictionary ${body} string + ${notification}= Evaluate json.loads(r'''${body_text}''') json + Should Not Be Empty ${notification} + # Validate notification content + Dictionary Should Contain Key ${notification} notificationType + Dictionary Should Contain Key ${notification} notificationStatus + Dictionary Should Contain Key ${notification} vnfInstanceId + Dictionary Should Contain Key ${notification} vnfLcmOpOccId + + Should Be Equal As Strings + ... ${notification['notificationType']} + ... VnfLcmOperationOccurrenceNotification + + Should Be Equal As Strings + ... ${notification['notificationStatus']} + ... ${expected_status} + + ${vnfInstanceId}= Get From Dictionary ${notification} vnfInstanceId + ${vnfLcmOpOccId}= Get From Dictionary ${notification} vnfLcmOpOccId + + Set Headers {"Accept": "${ACCEPT_JSON}"} + + Run Keyword If ${AUTH_USAGE} == 1 + ... Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + + # Validate VNF Instance + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId} + Integer response status 200 + + # Validate LCM operation occurrence + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Integer response status 200 + + ${response_body}= Output response body + + ${lcm_state}= Get From Dictionary ${response_body} operationState + ${returned_id}= Get From Dictionary ${response_body} id + + Should Be Equal As Strings ${returned_id} ${vnfLcmOpOccId} + + @{allowed_states}= Create List STARTING PROCESSING + + List Should Contain Value + ... ${allowed_states} + ... ${lcm_state} +Check VNF LCM Operation Occurrence Result Notification And LCM State + [Arguments] ${expected_status} + ${requests}= Retrieve Requests ${callback_endpoint_fwd} + Should Not Be Empty ${requests} msg=No notification received at callback endpoint! + + ${request_type}= Evaluate type(${requests}) + Log Request type: ${request_type} + + # Handle both single request and list of requests + ${last_request}= Run Keyword If "${request_type}" == "" + ... Get From List ${requests} -1 + ... ELSE + ... Set Variable ${requests} + + ${body}= Get From Dictionary ${last_request} body + ${body_text}= Get From Dictionary ${body} string + ${notification}= Evaluate json.loads(r'''${body_text}''') json + + # 2. Content Validation of Notification + Dictionary Should Contain Key ${notification} notificationType + Dictionary Should Contain Key ${notification} notificationStatus + Dictionary Should Contain Key ${notification} vnfInstanceId + Dictionary Should Contain Key ${notification} vnfLcmOpOccId + + Should Be Equal As Strings ${notification['notificationType']} VnfLcmOperationOccurrenceNotification + Should Be Equal As Strings ${notification['notificationStatus']} ${expected_status} + ... msg=Expected notificationStatus=RESULT but got ${notification['notificationStatus']} + + ${vnfInstanceId}= Get From Dictionary ${notification} vnfInstanceId + ${vnfLcmOpOccId}= Get From Dictionary ${notification} vnfLcmOpOccId + + # Post-condition Verification + Set Headers {"Accept": "${ACCEPT_JSON}"} + Run Keyword If ${AUTH_USAGE} == 1 + ... Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + + # Validate VNF Instance + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId} + Integer response status 200 + Log VNF Instance ${vnfInstanceId} validated successfully + + # Validate LCM Operation Occurrence + GET ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_lcm_op_occs/${vnfLcmOpOccId} + Integer response status 200 + + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} + ${lcm_state}= Get From Dictionary ${response['body']} operationState + + # ID Consistency Check + ${returned_id}= Get From Dictionary ${response['body']} id + Should Be Equal As Strings ${returned_id} ${vnfLcmOpOccId} + ... msg=ID mismatch! LCM Op Occ ID in notification (${vnfLcmOpOccId}) does not match resource ID (${returned_id}) + + Log LCM operationState = ${lcm_state} + + # Allowed states for RESULT notification + @{allowed_states}= Create List COMPLETED FAILED FAILED_TEMP ROLLING_BACK ROLLED_BACK + List Should Contain Value ${allowed_states} ${lcm_state} + ... msg=Unexpected operationState '${lcm_state}' after RESULT notification + + Clear Requests ${callback_endpoint} + Clear Requests ${callback_endpoint_fwd} + diff --git a/SOL002/VNFLifecycleManagement-API/OperateVNFTask.robot b/SOL002/VNFLifecycleManagement-API/OperateVNFTask.robot index eadf25edbdfe3d3f4f9be29d49ce7184a8e8a295..288df7fc0b758a0b1229eee24f62239c11a36ad8 100644 --- a/SOL002/VNFLifecycleManagement-API/OperateVNFTask.robot +++ b/SOL002/VNFLifecycleManagement-API/OperateVNFTask.robot @@ -13,7 +13,7 @@ POST Operate a vnfInstance ... Test title: POST Operate a vnfInstance ... Test objective: The objective is to test that POST method operate a VNF instance ... Pre-conditions: none - ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -28,7 +28,7 @@ POST Operate a vnfInstance Conflict (Not-Instantiated) ... Test title: POST Operate a vnfInstance Conflict (Not-Instantiated) ... Test objective: The objective is to test that the operation cannot be executed currently, due to a conflict with the state of the VNF instance resource or that a required child attribute of the "extensions" attribue has not been set. ... Pre-conditions: the VNF instance resource is in NOT_INSTANTIATED state - ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -41,7 +41,7 @@ POST Operate a vnfInstance Not Found ... Test title: POST Operate a vnfInstance Not Found ... Test objective: The objective is to test that the operation cannot be executed currently, because the resource is not existing ... Pre-conditions: the VNF instance resource is in not existing - ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -54,7 +54,7 @@ GET Operate VNFInstance - Method not implemented ... Test title: GET Operate VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.10.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.10.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -66,7 +66,7 @@ PUT Operate VNFInstance - Method not implemented ... Test title: PUT Operate VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.10.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.10.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -78,7 +78,7 @@ PATCH Operate VNFInstance - Method not implemented ... Test title: PATCH Operate VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.10.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.10.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -90,7 +90,7 @@ DELETE Operate VNFInstance - Method not implemented ... Test title: DELETE Operate VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.10.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.10.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -101,7 +101,7 @@ POST Operate a vnfInstance with permitted authorization scope ... Test title: POST Operate a vnfInstance with permitted authorization scope ... Test objective: The objective is to test that POST method operate a VNF instance with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -115,7 +115,7 @@ POST Operate a vnfInstance with not permitted authorization scope ... Test title: POST Operate a vnfInstance with not permitted authorization scope ... Test objective: The objective is to test that POST method operate a VNF instance with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -128,7 +128,7 @@ POST Operate a vnfInstance - Unauthorized ... Test title: POST Operate a vnfInstance - Unauthorized ... Test objective: The objective is to test that POST method cannot trigger operate without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.10.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/RetryOperationTask.robot b/SOL002/VNFLifecycleManagement-API/RetryOperationTask.robot index 28768db4a51128d2b5620941a663296782efddb4..1ca8e99240ad423b41796e6f35bf5ea5b24df3de 100644 --- a/SOL002/VNFLifecycleManagement-API/RetryOperationTask.robot +++ b/SOL002/VNFLifecycleManagement-API/RetryOperationTask.robot @@ -14,7 +14,7 @@ POST Retry operation task ... Test title: POST Retry operation task ... Test objective: The objective is to test that the POST method initiates retrying a VNF lifecycle operation if that operation has experienced a temporary failure ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -27,7 +27,7 @@ POST Retry operation task Conflict (Not-FAILED_TEMP) ... Test title: POST Retry operation task Conflict (Not-FAILED_TEMP) ... Test objective: The objective is to test that the retry operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. (i.e. the VNF instance resource is not in FAILED_TEMP state) ... Pre-conditions: the "VNF LCM operation occurrence" resource is not in "FAILED_TEMP" state. - ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -40,7 +40,7 @@ POST Retry operation task Not Found ... Test title: POST Retry operation task Not Found ... Test objective: The objective is to test that the retry operation cannot be executed because the operation is not supported ... Pre-conditions: - ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -53,7 +53,7 @@ GET Retry operation task - Method not implemented ... Test title: GET Retry operation task- Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.14.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.14.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -65,7 +65,7 @@ PUT Retry operation task - Method not implemented ... Test title: PUT Retry operation task- Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.14.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.14.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -77,7 +77,7 @@ PATCH Retry operation task - Method not implemented ... Test title: PATCH Retry operation task- Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.14.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.14.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -89,7 +89,7 @@ DELETE Retry operation task - Method not implemented ... Test title: DELETE Retry operation task- Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.14.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.14.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -100,7 +100,7 @@ POST Retry operation task with permitted authorization scope ... Test title: POST Retry operation task with permitted authorization scope ... Test objective: The objective is to test that the POST method initiates retrying a VNF lifecycle operation if that operation has experienced a temporary failure with permitted authorization scope ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -112,7 +112,7 @@ POST Retry operation task with not permitted authorization scope ... Test title: POST Retry operation task with not permitted authorization scope ... Test objective: The objective is to test that the POST method initiates retrying a VNF lifecycle operation if that operation has experienced a temporary failure with not permitted authorization scope ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -125,7 +125,7 @@ POST Retry operation task - Unauthorized ... Test title: POST Retry operation task - Unauthorized ... Test objective: The objective is to test that the retry operation cannot be executed because the request is not authorized ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.14.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/RevertToVNFSnapshotTask.robot b/SOL002/VNFLifecycleManagement-API/RevertToVNFSnapshotTask.robot index 8f6203011475d6fa720d2fcdf851aaf1a8dcf61b..903e7ff985d464d887cc41988a28caa9d6084940 100644 --- a/SOL002/VNFLifecycleManagement-API/RevertToVNFSnapshotTask.robot +++ b/SOL002/VNFLifecycleManagement-API/RevertToVNFSnapshotTask.robot @@ -13,7 +13,7 @@ POST Revert to VNF Snapshot Task ... Test title: POST Revert to VNF Snapshot Task ... Test objective: The objective is to test that POST method requests reverting a VNF/VNFC instance to a VNF/VNFC snapshot. ... Pre-conditions: none - ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -28,7 +28,7 @@ POST Revert to VNF Snapshot Task - NOT FOUND ... Test title: POST Revert to VNF Snapshot Task - NOT FOUND ... Test objective: The objective is to test that the POST method cannot request reverting to a snapshot if the task is not supported for the VNF instance represented by the parent resource. ... Pre-conditions: none - ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: Task is not supported for the VNF instance represented by the parent resource. ... Post-Conditions: none @@ -41,7 +41,7 @@ POST Revert to VNF Snapshot Task - CONFLICT ... Test title: POST Revert to VNF Snapshot Task - CONFLICT ... Test objective: The objective is to test that the POST method cannot request reverting to a snapshot when the VNF instance is in NOT_INSTANTIATED state. ... Pre-conditions: none - ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: VNF instance is in NOT_INSTANTIATED state. ... Post-Conditions: none @@ -54,7 +54,7 @@ GET Revert to VNF Snapshot Task - Method not implemented ... Test title: GET Revert to VNF Snapshot Task - Method not implemented ... Test objective: The objective is to test that GET method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.22.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.22.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -66,7 +66,7 @@ PUT Revert to VNF Snapshot Task - Method not implemented ... Test title: PUT Revert to VNF Snapshot Task - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.22.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.22.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -78,7 +78,7 @@ PATCH Revert to VNF Snapshot Task - Method not implemented ... Test title: PATCH Revert to VNF Snapshot Task - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.22.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.22.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -90,7 +90,7 @@ DELETE Revert to VNF Snapshot Task - Method not implemented ... Test title: DELETE Revert to sVNF Snapshot Task - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.22.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.22.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -101,7 +101,7 @@ POST Revert to VNF Snapshot Task with permitted authorization scope ... Test title: POST Revert to VNF Snapshot Task with permitted authorization scope. ... Test objective: The objective is to test that POST method requests reverting a VNF/VNFC instance to a VNF/VNFC snapshot with permitted authorization scope. ... Pre-conditions: none - ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -115,7 +115,7 @@ POST Revert to VNF Snapshot Task with not permitted authorization scope ... Test title: POST Revert to VNF Snapshot Task with not permitted authorization scope. ... Test objective: The objective is to test that POST method requests reverting a VNF/VNFC instance to a VNF/VNFC snapshot with not permitted authorization scope. ... Pre-conditions: none - ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -128,7 +128,7 @@ POST Revert to VNF Snapshot Task - Unauthorized ... Test title: POST Revert to VNF Snapshot Task - Unauthorized ... Test objective: The objective is to test that POST method requests reverting a VNF/VNFC instance to a VNF/VNFC snapshot without authorization. ... Pre-conditions: none - ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.22.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null diff --git a/SOL002/VNFLifecycleManagement-API/RollbackOperationTask.robot b/SOL002/VNFLifecycleManagement-API/RollbackOperationTask.robot index 074d5a7de805872af5bfee6b33be6649e427e97b..4264229453cce9af878f72cd55f6189938d313a1 100644 --- a/SOL002/VNFLifecycleManagement-API/RollbackOperationTask.robot +++ b/SOL002/VNFLifecycleManagement-API/RollbackOperationTask.robot @@ -14,7 +14,7 @@ POST Rollback operation task ... Test title: POST Rollback operation task ... Test objective: The objective is to test that POST method initiates rollback a VNF lifecycle operation if that operation has experienced a temporary failure ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -27,7 +27,7 @@ POST Rollback operation task Conflict (Not-FAILED_TEMP) ... Test title: POST Rollback operation task Conflict (Not-FAILED_TEMP) ... Test objective: The objective is to test that POST method The POST method initiates rollback a VNF lifecycle operation if that operation has experienced a temporary failure ... Pre-conditions: the "VNF LCM operation occurrence" resource is not in "FAILED_TEMP" state. - ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -40,7 +40,7 @@ POST Rollback operation task Not Found ... Test title: POST Rollback operation task Not Found ... Test objective: The objective is to test that the retry operation cannot be executed because the operation is not supported ... Pre-conditions: none - ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -53,7 +53,7 @@ GET Rollback operation task - Method not implemented ... Test title: GET Rollback operation task - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.15.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.15.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -65,7 +65,7 @@ PUT Rollback operation task - Method not implemented ... Test title: PUT Rollback operation task - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.15.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.15.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -77,7 +77,7 @@ PATCH Rollback operation task - Method not implemented ... Test title: PATCH Rollback operation task - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.15.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.15.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -89,7 +89,7 @@ DELETE Rollback operation task - Method not implemented ... Test title: DELETE Rollback operation task - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.15.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.15.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -100,7 +100,7 @@ POST Rollback operation task with permitted authorization value ... Test title: POST Rollback operation task with permitted authorization value. ... Test objective: The objective is to test that POST method initiates rollback a VNF lifecycle operation if that operation has experienced a temporary failure with permitted authorization scope ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -112,7 +112,7 @@ POST Rollback operation task with not permitted authorization value ... Test title: POST Rollback operation task with not permitted authorization value. ... Test objective: The objective is to test that POST method initiates rollback a VNF lifecycle operation if that operation has experienced a temporary failure with not permitted authorization scope ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -125,7 +125,7 @@ POST Rollback operation task - Unauthorized ... Test title: POST Rollback operation task - Unauthorized ... Test objective: The objective is to test that the rollback operation cannot be executed because the request is not authorized ... Pre-conditions: the "VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. - ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.15.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/ScaleVNFTask.robot b/SOL002/VNFLifecycleManagement-API/ScaleVNFTask.robot index 7607041e25905e73ceb98d1ced7fd2c5566536e8..9a346c09186e29535a24927944fa1d2e4e6e36fb 100644 --- a/SOL002/VNFLifecycleManagement-API/ScaleVNFTask.robot +++ b/SOL002/VNFLifecycleManagement-API/ScaleVNFTask.robot @@ -13,7 +13,7 @@ POST Scale a vnfInstance ... Test title: POST Scale a vnfInstance ... Test objective: The objective is to scale a VNF instance ... Pre-conditions: none - ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -27,7 +27,7 @@ POST Scale a vnfInstance Conflict (Not-Instantiated) ... Test title: POST Scale a vnfInstance Conflict (Not-Instantiated) ... Test objective: The objective is to verify that the operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. ... Pre-conditions: VNF instance resource is in NOT-INSTANTIATED state - ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -40,7 +40,7 @@ POST Scale a vnfInstance Not Found ... Test title: POST Scale a vnfInstance Not Found ... Test objective: The objective is to verify that the operation cannot be executed currently, due to a conflict with the state of the VNF instance resource. ... Pre-conditions: none - ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -53,7 +53,7 @@ GET Scale VNFInstance - Method not implemented ... Test title: GET Scale VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.5.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -65,7 +65,7 @@ PUT Scale VNFInstance - Method not implemented ... Test title: PUT Scale VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.5.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.5.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -77,7 +77,7 @@ PATCH Scale VNFInstance - Method not implemented ... Test title: PATCH Scale VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.5.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.5.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -89,7 +89,7 @@ DELETE Scale VNFInstance - Method not implemented ... Test title: DELETE Scale VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.5.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.5.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -101,7 +101,7 @@ POST Scale a vnfInstance with permited authorization scope ... Test title: POST Scale a vnfInstance with permited authorization scope ... Test objective: The objective is to scale a VNF instance with permited authorization scope with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -116,7 +116,7 @@ POST Scale a vnfInstance with not permited authorization scope ... Test title: POST Scale a vnfInstance with not permited authorization scope ... Test objective: The objective is to scale a VNF instance with not permited authorization scope with not permited authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -129,7 +129,7 @@ POST Scale a vnfInstance - Unauthorized ... Test title: Post Scale a vnfInstance - Unauthorized ... Test objective: The objective is to scale a VNF instance without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.5.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/ScaleVNFToLevelTask.robot b/SOL002/VNFLifecycleManagement-API/ScaleVNFToLevelTask.robot index 0939c4baa1509fec82b300a5103a5e46e1c82299..a6015c1cd1af10913e653158553f8a9256ea33c7 100644 --- a/SOL002/VNFLifecycleManagement-API/ScaleVNFToLevelTask.robot +++ b/SOL002/VNFLifecycleManagement-API/ScaleVNFToLevelTask.robot @@ -12,7 +12,7 @@ POST Scale a vnfInstance to level with Attribute instantiationLevelId ... Test title: POST Scale a vnfInstance to level with instantiationLevelId attribute ... Test objective: The objective is to scale a VNF instance to a target level. ... Pre-conditions: none - ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -27,7 +27,7 @@ POST Scale a vnfInstance to level Conflict (Not-Instantiated) ... Test title: POST Scale a vnfInstance to level Conflict (Not-Instantiated) ... Test objective: The objective is to verify that the operation cannot be executed currently, due to a conflict with the state of the VNF instance resource or that a required child attribute of the "extensions" attribue has not been set. ... Pre-conditions: VNF instance resource is in NOT-INSTANTIATED state - ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -40,7 +40,7 @@ POST Scale a vnfInstance Not Found ... Test title: POST Scale a vnfInstance Not Found ... Test objective: The objective is to verify that the VNF Scale operation fails when the VNF instance resource is not present ... Pre-conditions: VNF instance resource is in NOT-INSTANTIATED state - ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -53,7 +53,7 @@ GET Scale to level VNFInstance - Method not implemented ... Test title: GET Scale to level VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.6.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.6.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -65,7 +65,7 @@ PUT Scale to level VNFInstance - Method not implemented ... Test title: PUT Scale to level VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.6.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.6.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -77,7 +77,7 @@ PATCH Scale to level VNFInstance - Method not implemented ... Test title: PATCH Scale to level VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.6.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.6.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -89,7 +89,7 @@ DELETE Scale to level VNFInstance - Method not implemented ... Test title: DELETE Scale to level VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.6.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.6.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -101,7 +101,7 @@ POST Scale a vnfInstance to level with Attribute instantiationLevelId and permit ... Test title: POST Scale a vnfInstance to level with instantiationLevelId attribute and permitted authorization scope ... Test objective: The objective is to scale a VNF instance to a target level using OAuth token with permitted scope ... Pre-conditions: none - ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -116,7 +116,7 @@ POST Scale a vnfInstance to level with Attribute instantiationLevelId and not pe ... Test title: POST Scale a vnfInstance to level with instantiationLevelId attribute and not permitted authorization scope ... Test objective: The objective is to scale a VNF instance to a target level using OAuth token with not permitted scope ... Pre-conditions: none - ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -129,13 +129,26 @@ POST Scale a vnfInstance to level with Attribute instantiationLevelId - Unauthor ... Test title: POST Scale a vnfInstance to level with Attribute instantiationLevelId - Unauthorized ... Test objective: The objective is to scale a VNF instance to a target level using without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none POST Scale a vnfInstance to level with Attribute instantiationLevelId - Unauthorized Check HTTP Response Status Code Is 401 Check HTTP Response Body Json Schema Is ProblemDetails +POST Scale a vnfInstance to level with attribute powerProfileId + [Documentation] Test ID: 6.3.5.5.11 + ... Test title: POST Scale a vnfInstance to level with powerProfileId attribute + ... Test objective: The objective is to scale a VNF instance to a target level. + ... Pre-conditions: none + ... Reference: Clause 5.4.6.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + POST Scale vnfInstance to level with attribute powerProfileId + Check HTTP Response Status Code Is 202 + Check HTTP Response Header Contains Location + Check Operation Occurrence Resource Available *** Keywords *** Check resource existence Set Headers {"Accept":"${ACCEPT}"} diff --git a/SOL002/VNFLifecycleManagement-API/Subscriptions.robot b/SOL002/VNFLifecycleManagement-API/Subscriptions.robot index cad7891c5ae7bce267cdb7f749149478d9bd0a9a..067022b3e1e9f590759aa2b57d537039ae432a9d 100644 --- a/SOL002/VNFLifecycleManagement-API/Subscriptions.robot +++ b/SOL002/VNFLifecycleManagement-API/Subscriptions.robot @@ -15,7 +15,7 @@ POST Create a new subscription ... Test title: POST Create a new subscription ... Test objective: The POST method creates a new subscription ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -29,7 +29,7 @@ POST Create a new Subscription - DUPLICATION ... Test title: POST Create a new subscription - DUPLICATION ... Test objective: The POST method creates a new subscription even if an existing subscription to same content exist ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: SUT should support duplication of subscription creation ... Post-Conditions: in response header Location shall not be null @@ -44,7 +44,7 @@ POST Create a new Subscription - NO-DUPLICATION ... Test title: POST Create a new subscription - NO-DUPLICATION ... Test objective: The POST method creates a new subscription even if an existing subscription to same content exist ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: SUT should not support duplication of subscription creation ... Post-Conditions: in response header Location shall not be null @@ -60,7 +60,7 @@ GET Subscriptions ... Test title: GET Subscriptions ... Test objective: The objective is Get the list of active subscriptions ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -73,7 +73,7 @@ GET Subscription - Filter ... Test title: GET Subscriptions - Filter ... Test objective: The objective is Get the list of active subscriptions using a "filter" ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -86,7 +86,7 @@ GET subscriptions - Bad Request Invalid attribute-based filtering parameters ... Test title: GET subscriptions - Bad Request Invalid attribute-based filtering parameters ... Test objective: The objective is Get the list of active subscriptions using a filter ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -99,7 +99,7 @@ GET subscriptions - Bad Request Invalid attribute-based filtering parameters ... Test title: GET subscriptions with all_fields attribute selector ... Test objective: The objective is Get the list of active subscriptions ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -112,7 +112,7 @@ GET subscriptions with exclude_default attribute selector ... Test title: GET subscriptions with exclude_default attribute selector ... Test objective: The objective is Get the list of active subscriptions ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -125,7 +125,7 @@ GET subscriptions with fields attribute selector ... Test title: GET subscriptions with fields attribute selector ... Test objective: The objective is Get the list of active subscriptions ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -138,7 +138,7 @@ GET subscriptions with exclude_fields attribute selector ... Test title: GET subscriptions with exclude_fields attribute selector ... Test objective: The objective is Get the list of active subscriptions ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -151,7 +151,7 @@ PUT subscriptions - Method not implemented ... Test title: PUT subscriptions - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -163,7 +163,7 @@ PATCH subscriptions - Method not implemented ... Test title: PATCH subscriptions - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -175,7 +175,7 @@ DELETE subscriptions - Method not implemented ... Test title: DELETE subscriptions - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: check that resources are not deleted @@ -188,7 +188,7 @@ POST Create a new Subscription - Unprocessable Content ... Test title: POST Create a new Subscription - Unprocessable Content ... Test objective: The objective is to test that content type of the message content is supported and the message content of a request contains syntactically correct data but the data cannot be processed. ... re-conditions: none - ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -201,7 +201,7 @@ GET information about multiple subscriptions to get Paged Response ... Test title: GET information about multiple subscriptions to get Paged Response ... Test objective: The objective is to retrieve information about the subscriptions to get paged response ... Pre-conditions: - ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: ... Post-Conditions: @@ -214,7 +214,7 @@ GET information about multiple subscriptions for Bad Request Response too big ... Test title: GET information about multiple subscriptions for Bad Request Response too big ... Test objective: The objective is to test that GET method fail retrieving status information about subscriptions when Response is too big, and perform the JSON schema validation of the failed operation HTTP response ... Pre-conditions: - ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: ... Post-Conditions: @@ -226,7 +226,7 @@ POST Create a new subscription with permitted authorization scope ... Test title: POST Create a new subscription with permitted authorization scope ... Test objective: The POST method creates a new subscription with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -240,7 +240,7 @@ POST Create a new subscription with not permitted authorization scope ... Test title: POST Create a new subscription with not permitted authorization scope ... Test objective: The POST method creates a new subscription with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -253,7 +253,7 @@ POST Create a new subscription - Unauthorized ... Test title: POST Create a new subscription - Unauthorized ... Test objective: The POST method creates a new subscription without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.18.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: in response header Location shall not be null @@ -261,4 +261,15 @@ POST Create a new subscription - Unauthorized Check HTTP Response Status Code Is 401 Check HTTP Response Body Json Schema Is ProblemDetails - +GET Subscriptions - Unauthorized + [Documentation] Test ID: 6.3.5.17.20 + ... Test title: GET Subscriptions - Unauthorized + ... Test objective: The objective is to Get the list of active subscriptions without authorization + ... Pre-conditions: none + ... Reference: Clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + Get subscriptions - Unauthorized + Check HTTP Response Status Code Is 401 + Check HTTP Response Body Json Schema Is ProblemDetails diff --git a/SOL002/VNFLifecycleManagement-API/TerminateVNFTask.robot b/SOL002/VNFLifecycleManagement-API/TerminateVNFTask.robot index 56cd751fee8ae79fd3d3d2a857212563728c274f..12ce3660a7e126d28b39bd074ed2a9429257ddd5 100644 --- a/SOL002/VNFLifecycleManagement-API/TerminateVNFTask.robot +++ b/SOL002/VNFLifecycleManagement-API/TerminateVNFTask.robot @@ -13,7 +13,7 @@ POST Terminate a vnfInstance ... Test title: POST Terminate a vnfInstance ... Test objective: The objective is to test that POST method terminate a VNF instance ... Pre-conditions: none - ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -28,7 +28,7 @@ POST Terminate a vnfInstance Conflict (Not-Instantiated) ... Test title: POST Terminate a vnfInstance Conflict (Not-Instantiated) ... Test objective: The objective is to test that the operation cannot be executed currently, due to a conflict with the state of the VNF instance resource or that a required child attribute of the "extensions" attribue has not been set. ... Pre-conditions: VNF instance resource is in NOT_INSTANTIATED state - ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -41,7 +41,7 @@ GET Terminate VNFInstance - Method not implemented ... Test title: GET Terminate VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.8.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.8.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -53,7 +53,7 @@ PUT Terminate VNFInstance - Method not implemented ... Test title: PUT Terminate VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.8.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.8.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -65,7 +65,7 @@ PATCH Terminate VNFInstance - Method not implemented ... Test title: PATCH Terminate VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.8.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.8.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -77,7 +77,7 @@ DELETE Terminate VNFInstance - Method not implemented ... Test title: DELETE Terminate VNFInstance - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.8.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.8.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -88,7 +88,7 @@ POST Terminate a vnfInstance with permited authorization scope ... Test title: POST Terminate a vnfInstance with permited authorization scope ... Test objective: The objective is to test that POST method terminate a VNF instance with permited authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -102,7 +102,7 @@ POST Terminate a vnfInstance with not permited authorization scope ... Test title: POST Terminate a vnfInstance with not permited authorization scope ... Test objective: The objective is to test that POST method terminate a VNF instance with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -115,7 +115,7 @@ POST Terminate a vnfInstance Not Found ... Test title: POST Terminate a vnfInstance Not Found ... Test objective: The objective is to test that POST method cannot trigger terminate because the VNF instance resource is not found. ... Pre-conditions: none - ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -128,7 +128,7 @@ POST Terminate a vnfInstance - Unauthorized ... Test title: POST Terminate a vnfInstance - Unauthorized ... Test objective: The objective is to test that POST method cannot trigger terminate without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.8.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/VNFInstances.robot b/SOL002/VNFLifecycleManagement-API/VNFInstances.robot index 3b51a645185d1bd35344e12b4d1d81ad8061e808..34d8d5ff0b48e77a0831de3313190e04ff5ebfb2 100644 --- a/SOL002/VNFLifecycleManagement-API/VNFInstances.robot +++ b/SOL002/VNFLifecycleManagement-API/VNFInstances.robot @@ -12,7 +12,7 @@ POST Create a new vnfInstance ... Test title: POST Create a new vnfInstance ... Test objective: The objective is to create a new VNF instance resource ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF instance created @@ -28,7 +28,7 @@ GET information about multiple VNF instances ... Test title: GET information about multiple VNF instances ... Test objective: The objective is to get information about multiples VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -42,7 +42,7 @@ GET information about multiple VNF instances Bad Request Invalid attribute-based ... Test title: GET information about multiple VNF instances Bad Request Invalid attribute-based filtering parameters ... Test objective: The objective is to get information about multiples VNF instances with Invalid attribute-based filtering parameters ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -55,7 +55,7 @@ GET information about multiple VNF instances Bad Request Invalid attribute selec ... Test title: GET information about multiple VNF instances Bad Request Invalid attribute selector ... Test objective: The objective is to get information about multiples VNF instances with Invalid attribute-based filtering parameters ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -68,7 +68,7 @@ GET information about multiple VNF instances with "all_fields" attribute selecto ... Test title: GET information about multiple VNF instances with "all_fields" attribute selector ... Test objective: The objective is to query information about multiple VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -81,7 +81,7 @@ GET information about multiple VNF instances with "exclude_default" attribute se ... Test title: GET information about multiple VNF instances with "exclude_default" attribute selector ... Test objective: The objective is to query information about multiple VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -94,7 +94,7 @@ GET information about multiple VNF instances with "fields" attribute selector ... Test title: GET information about multiple VNF instances with "fields" attribute selector ... Test objective: The objective is to query information about multiple VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -107,7 +107,7 @@ GET information about multiple VNF instances with "exclude_fields" attribute sel ... Test title: GET information about multiple VNF instances with "exclude_fields" attribute selector ... Test objective: The objective is to query information about multiple VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -120,7 +120,7 @@ PUT VNFInstances - Method not implemented ... Test title: PUT VNFInstances - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -132,7 +132,7 @@ PATCH VNFInstances - Method not implemented ... Test title: PATCH VNFInstances - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -144,7 +144,7 @@ DELETE VNFInstances - Method not implemented ... Test title: DELETE VNFInstances - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF instance not deleted @@ -156,7 +156,7 @@ GET information about multiple VNF instances with "exclude_default" and "fields" ... Test title: GET information about multiple VNF instances with "exclude_default" and "fields" attribute selector ... Test objective: The objective is to query information about multiple VNF instances ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -169,7 +169,7 @@ POST Create a new vnfInstance - UNPROCESSABLE CONTENT ... Test title: POST Create a new vnfInstance - UNPROCESSABLE CONTENT ... Test objective: The objective is to test that a new VNF instance resource is not created when ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: vnfdId of the referenced VNF package is not in ENABLED state or does not exist. ... Post-Conditions: VNF instance created @@ -181,7 +181,7 @@ POST Create a new vnfInstance with permitted authorization scope ... Test title: POST Create a new vnfInstance with permitted authorization scope ... Test objective: The objective is to create a new VNF instance resource with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF instance created @@ -196,7 +196,7 @@ POST Create a new vnfInstance with not permitted authorization scope ... Test title: POST Create a new vnfInstance with not permitted authorization scope ... Test objective: The objective is to create a new VNF instance resource with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF instance created @@ -208,7 +208,7 @@ GET information about multiple VNF instances - Bad Request Response too big ... Test title: GET information about multiple VNF instances - Bad Request Response too big ... Test objective: The objective is to test that GET method fail retrieving information about multiple VNF instances because Response is too big. ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -221,7 +221,7 @@ GET information about multiple VNF instances to get Paged Response ... Test title: GET information about multiple VNF instances to get Paged Response ... Test objective: The objective is to query information about multiple VNF instances to get Paged Response. ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: The VNFM supports response paging for the subscriptions resources ... Post-Conditions: none @@ -234,7 +234,7 @@ GET information about multiple VNF instances as a Paged Response with nextpage_o ... Test title: GET information about multiple VNF instances as a Paged Response with nextpage_opauque_marker parameter ... Test objective: The objective is to query information about multiple VNF instances as a Paged Response and retrieve the next page using the nextpage_opaque_marker parameter ... Pre-conditions: A request for retrieving multiple VNF instances as a paged response has been successfully issued (Test ID 6.3.5.2.17) - ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: The VNFM supports response paging for the VNF instance resources ... Post-Conditions: none @@ -246,10 +246,22 @@ POST Create a new vnfInstance - Unauthorized ... Test title: POST Create a new vnfInstance - Unauthorized ... Test objective: The objective is to Create a new vnfInstance without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.2.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none POST Create a new vnfInstance - Unauthorized Check HTTP Response Status Code Is 401 + Check HTTP Response Body Json Schema Is ProblemDetails +GET information about multiple VNF instances + [Documentation] Test ID: 6.3.5.1.19 + ... Test title: GET information about multiple VNF instances - Unauthorized + ... Test objective: The objective is to get information about multiples VNF instances without authorization. + ... Pre-conditions: none + ... Reference: Clause 5.4.2.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + GET multiple vnfInstances - Unauthorized + Check HTTP Response Status Code Is 401 Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/VNFSelectDeployableModules.robot b/SOL002/VNFLifecycleManagement-API/VNFSelectDeployableModules.robot index 59026e9d3d9999b3ac680e295c55fe987ad71f32..ff7e683a2dab793c316db8139e193a95c1316d42 100644 --- a/SOL002/VNFLifecycleManagement-API/VNFSelectDeployableModules.robot +++ b/SOL002/VNFLifecycleManagement-API/VNFSelectDeployableModules.robot @@ -12,7 +12,7 @@ POST Select VNF Deployable Module ... Test title: POST Select VNF Deployable Module ... Test objective: The objective is to select VNF Deployable Module ... Pre-conditions: The VNF instance resource is in INSTANTIATED state - ... Reference: Clause 5.4.11b.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11b.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -27,7 +27,7 @@ POST Select VNF Deployable Module Not Found ... Test title: POST Select VNF Deployable Module Not Found ... Test objective: The objective is to test that the POST Select VNF Deployable Module fails when the resource is not present. ... Pre-conditions: none - ... Reference: Clause 5.4.11b.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11b.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -40,7 +40,7 @@ POST Select VNF Deployable Module with conflict (Not Instantiated) ... Test title: POST Operate a vnfInstance Conflict (Not-Instantiated) ... Test objective: The objective is to test that the operation fails when there is a conflict with the resource state. ... Pre-conditions: the VNF instance resource is in NOT-INSTANTIATED state - ... Reference: Clause 5.4.11b.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11b.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -53,7 +53,7 @@ GET Select VNF Deployable Module - Method not implemented ... Test title: GET Select VNF Deployable Module - Method not implemented ... Test objective: The objective is to verify that the method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11b.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11b.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -65,7 +65,7 @@ PUT Select VNF Deployable Module - Method not implemented ... Test title: PUT Select VNF Deployable Module - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11b.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11b.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -77,7 +77,7 @@ PATCH Select VNF Deployable Module - Method Not implemented ... Test title: PATCH Select VNF Deployable Module - Method Not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11b.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11b.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -89,7 +89,7 @@ DELETE Select VNF Deployable Module - Method Not implemented ... Test title: DELETE Select VNF Deployable Module - Method Not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.11b.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11b.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none @@ -100,7 +100,7 @@ POST Select VNF Deployable Module - Unauthorized ... Test title: POST Select VNF Deployable Module - Unauthorized ... Test objective: The objective is to test that POST method cannot trigger a Select VNF Deployable Module without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.11b.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.11b.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VNFM ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/VNFSnapshots.robot b/SOL002/VNFLifecycleManagement-API/VNFSnapshots.robot index d7a8c7f25ce9cc60f86b00f281e477bb742fe9ba..b18a9da7957b8d4d384cb4cb0e89b81c5ccfe63f 100644 --- a/SOL002/VNFLifecycleManagement-API/VNFSnapshots.robot +++ b/SOL002/VNFLifecycleManagement-API/VNFSnapshots.robot @@ -8,7 +8,7 @@ POST Create a new VNF Snapshot ... Test title: POST Create a new VNF Snapshot ... Test objective: The objective is to create a new VNF snapshot ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF snapshot is created @@ -24,7 +24,7 @@ GET information about multiple VNF Snapshots ... Test title: GET information about multiple VNF Snapshots ... Test objective: The objective is to get information about multiples VNF snapshots ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -37,7 +37,7 @@ GET information about multiple VNF Snapshots Bad Request Invalid attribute-based ... Test title: GET information about multiple VNF Snapshots Bad Request Invalid attribute-based filtering parameters ... Test objective: The objective is to get information about multiples VNF Snapshots with Invalid attribute-based filtering parameters ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -50,7 +50,7 @@ GET information about multiple VNF Snapshots Bad Request Invalid attribute selec ... Test title: GET information about multiple VNF Snapshots Bad Request Invalid attribute selector ... Test objective: The objective is to get information about multiples VNF Snapshots with Invalid attribute-based filtering parameters ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -63,7 +63,7 @@ GET information about multiple VNF Snapshots with "all_fields" attribute selecto ... Test title: GET information about multiple VNF Snapshots with "all_fields" attribute selector ... Test objective: The objective is to query information about multiple VNF Snapshots ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -76,7 +76,7 @@ GET information about multiple VNF Snapshots with "exclude_default" attribute se ... Test title: GET information about multiple VNF Snapshots with "exclude_default" attribute selector ... Test objective: The objective is to query information about multiple VNF Snapshots ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -89,7 +89,7 @@ GET information about multiple VNF Snapshots with "fields" attribute selector ... Test title: GET information about multiple VNF Snapshots with "fields" attribute selector ... Test objective: The objective is to query information about multiple VNF Snapshots ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -102,7 +102,7 @@ GET information about multiple VNF Snapshots with "exclude_default" and "fields" ... Test title: GET information about multiple VNF Snapshots with "exclude_default" and "fields" attribute selector ... Test objective: The objective is to query information about multiple VNF Snapshots ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -115,7 +115,7 @@ GET information about multiple VNF Snapshots with "exclude_fields" attribute sel ... Test title: GET information about multiple VNF Snapshots with "exclude_fields" attribute selector ... Test objective: The objective is to query information about multiple VNF Snapshots ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -128,7 +128,7 @@ GET VNF Snapshots - Bad Request Response too Big ... Test title: GET VNF Snapshots - Bad Request Response too Big ... Test objective: The objective is test that the retrieval of existing VNF Snapshots list fails because response is too big, and perform the JSON schema validation of the failed operation HTTP response. ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: VNFM does not support paged response. ... Post-Conditions: none @@ -141,7 +141,7 @@ GET VNF Snapshots as Paged Response ... Test title: GET VNF Snapshots as Paged Response ... Test objective: The objective is to test that GET method retrieves the list of existing VNF Snapshots as paged response. ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: VNFM supports paged response. ... Post-Conditions: none @@ -154,7 +154,7 @@ PUT VNF Snapshots - Method not implemented ... Test title: PUT VNF Snapshots - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -166,7 +166,7 @@ PATCH VNF Snapshots - Method not implemented ... Test title: PATCH VNF Snapshots - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -178,7 +178,7 @@ DELETE VNF Snapshots - Method not implemented ... Test title: DELETE VNF Snapshots - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF instance not deleted @@ -189,7 +189,7 @@ POST Create a new VNF Snapshot with permitted authorization scope ... Test title: POST Create a new VNF Snapshot with permitted authorization scope ... Test objective: The objective is to create a new VNF snapshot with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: VNF snapshot is created @@ -204,7 +204,7 @@ POST Create a new VNF Snapshot with not permitted authorization scope ... Test title: POST Create a new VNF Snapshot with not permitted authorization scope ... Test objective: The objective is to create a new VNF snapshot with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -217,10 +217,22 @@ POST Create a new VNF Snapshot - Unauthorized ... Test title: POST Create a new VNF Snapshot - Unauthorized ... Test objective: The objective is to create a new VNF snapshot without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.23.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.23.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none POST Create a new VNF Snapshot - Unauthorized Check HTTP Response Status Code Is 401 + Check HTTP Response Body Json Schema Is ProblemDetails +GET information about multiple VNF Snapshots - Unauthorized + [Documentation] Test ID: 6.3.5.25.18 + ... Test title: GET information about multiple VNF Snapshots - Unauthorized + ... Test objective: The objective is to get information about multiples VNF snapshots without authorization. + ... Pre-conditions: none + ... Reference: Clause 5.4.23.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 + ... Config ID: Config_prod_VE + ... Applicability: none + ... Post-Conditions: none + GET multiple VNF Snapshots - Unauthorized + Check HTTP Response Status Code Is 401 Check HTTP Response Body Json Schema Is ProblemDetails \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot b/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot index 178a3e016d431a875ace71a2792266e32f7360f3..94f65583e4cd639891f42760124d040c65779a93 100644 --- a/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot +++ b/SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot @@ -275,6 +275,14 @@ POST Create a new vnfInstance - Unauthorized Set Headers {"Content-Type": "${CONTENT_TYPE}"} ${body}= Get File jsons/createVnfRequest.json Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} +GET multiple vnfInstances - Unauthorized + Log Queries information about multiple VNF instances without authorization. + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} POST Create a new VNF Snapshot @@ -298,7 +306,14 @@ GET multiple VNF Snapshots Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshots ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} - +GET multiple VNF Snapshots - Unauthorized + Log Queries information about multiple VNF snapshots without authorization. + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Get ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshots + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} GET multiple VNF Snapshots with bad attribute Log Query VNF The GET method queries information about multiple VNF snapshots. Set Headers {"Accept":"${ACCEPT}"} @@ -451,14 +466,44 @@ PATCH individual vnfInstance Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId} ${body} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} - +PATCH individual vnfInstance - Unauthorized + log Trying to modify an individual VNF instance without authorization + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + Set Headers {"If-Match": "${original_etag}"} + ${body}= Get File jsons/VnfInfoModificationRequest.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} +PATCH individual vnfInstance - Not Found + log Trying to modify an individual VNF instance that does not exist + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Set Headers {"Content-Type": "${CONTENT_TYPE_PATCH}"} + Set Headers {"If-Match": "${original_etag}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${body}= Get File jsons/VnfInfoModificationRequest.json + Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${NOT_EXISTANT_VNF_INSTANCE_ID} ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} DELETE individual vnfInstance log Trying to delete an individual VNF instance Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} Delete ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} - +DELETE individual vnfInstance - Unauthorized + log Trying to delete an individual VNF instance without authorization + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} +DELETE individual vnfInstance - Not Found + log Trying to delete an individual VNF instance that does not exist + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${NOT_EXISTANT_VNF_INSTANCE_ID} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} POST individual VNF Snapshot log Trying to perform a POST. This method should not be implemented Set Headers {"Accept":"${ACCEPT}"} @@ -515,10 +560,26 @@ DELETE individual VNF Snapshot Set Headers {"Version": "${API_VERSION}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} - Patch ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshots/${vnfSnapshotInfoId} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshots/${vnfSnapshotInfoId} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} - +DELETE individual VNF Snapshot - Unauthorized + log Trying to DELETE an individual VNF Snapshot without authorization. + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshots/${vnfSnapshotInfoId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} +DELETE individual VNF Snapshot - Not Found + log Trying to DELETE an individual VNF Snapshot that does not exist + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_snapshots/${invalidVnfSnapshotInfoId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} DELETE individual VNF Snapshot - CONFLICT log Trying to DELETE an individual VNF Snapshot that is already in use by another operation Set Headers {"Accept":"${ACCEPT}"} @@ -653,7 +714,18 @@ POST Scale vnfInstance to level with instantiationLevelId Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/scale_to_level ${body} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} - + +POST Scale vnfInstance to level with attribute powerProfileId + Log Trying to scale a vnf Instance to level + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + ${template}= Get File jsons/scaleVnfToLevelRequestWithPowerProfileId.json + ${body}= Format String ${template} powerProfileId=${powerProfileId} + Post ${apiRoot}/${apiName}/${apiMajorVersion}/vnf_instances/${vnfInstanceId}/scale_to_level ${body} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} GET Scale vnfInstance to level log Trying to perform a GET. This method should not be implemented Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} @@ -1478,6 +1550,15 @@ Get subscriptions Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} +Get subscriptions - Unauthorized + Log Trying to get the list of active subscriptions without authorization + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Set Headers {"Content-Type": "${CONTENT_TYPE}"} + Log Execute Query and validate response + Get ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} Get subscriptions - filter Log Get the list of active subscriptions using a filter Set Headers {"Accept":"${ACCEPT}"} @@ -1597,6 +1678,21 @@ Delete Individual subscription Delete ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} +Delete Individual subscription - Unauthorized + log Try to delete an individual subscription without authorization + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${subscriptionId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} +Delete Individual subscription - Not Found + log Try to delete an individual subscription + Set Headers {"Accept":"${ACCEPT}"} + Set Headers {"Version": "${API_VERSION}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + Delete ${apiRoot}/${apiName}/${apiMajorVersion}/subscriptions/${NOT_EXISTANT_SubscriptionId} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} Put Notification subscription log Trying to perform a PUT. This method should not be implemented Put ${callback_endpoint} @@ -2811,6 +2907,21 @@ GET reach the notification endpoint GET ${callbackResp} ${outputResponse}= Output response Set Global Variable ${response} ${outputResponse} +GET reach the notification endpoint - Unauthorized + Log Trying to reach the notification endpoint using GET method without authorization. + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Version": "${API_VERSION}"} + GET ${callbackResp} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} +GET reach the notification endpoint - Not Found + Log Trying to reach the not existing notification endpoint using GET method. + Set Headers {"Accept": "${ACCEPT_JSON}"} + Set Headers {"Version": "${API_VERSION}"} + Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"} + GET ${invalid_callbackResp} + ${outputResponse}= Output response + Set Global Variable ${response} ${outputResponse} PUT notification endpoint Log Trying to perform a PUT. This method should not be implemented. Set Headers {"Accept": "${ACCEPT_JSON}"} diff --git a/SOL002/VNFLifecycleManagement-API/VnfLcmOperationOccurences.robot b/SOL002/VNFLifecycleManagement-API/VnfLcmOperationOccurences.robot index b760c336201169e700900c2942fae7e6dd312c5d..d704b2edc620a3c3d76eb6c0769ca4c9ea980673 100644 --- a/SOL002/VNFLifecycleManagement-API/VnfLcmOperationOccurences.robot +++ b/SOL002/VNFLifecycleManagement-API/VnfLcmOperationOccurences.robot @@ -13,7 +13,7 @@ POST VNF LCM operation occurrences - Method not implemented ... Test title: POST VNF LCM operation occurrences - Method not implemented ... Test objective: The objective is to test that POST method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.1 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.1 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -25,7 +25,7 @@ GET status information about multiple VNF LCM operation occurrences ... Test title: GET status information about multiple VNF LCM operation occurrences ... Test objective: The objective is to test that GET method retrieve Query status information about multiple VNF lifecycle management operation occurrences. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -39,7 +39,7 @@ GET status information about multiple VNF LCM operation occurrences Bad Request ... Test title: GET status information about multiple VNF LCM operation occurrences Bad Request Invalid attribute-based filtering parameters ... Test objective: The objective is to test that GET method fail retrieving status information about multiple VNF lifecycle management operation occurrences because attribute is invalid. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -52,7 +52,7 @@ GET status information about multiple VNF LCM Operation occurrences Bad Request ... Test title: GET status information about multiple VNF LCM Operation occurrences Bad Request Invalid attribute selector ... Test objective: The objective is to test that GET method fail retrieving status information about multiple VNF lifecycle management operation occurrences because attribute is invalid. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -65,7 +65,7 @@ GET status information about multiple VNF LCM Operation occurrences with "all_fi ... Test title: GET status information about multiple VNF LCM Operation OCC with "all_fields" ... Test objective: The objective is to test that GET method retrieve Query status information about multiple VNF lifecycle management operation occurrences. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -78,7 +78,7 @@ GET status information about multiple VNF LCM Operation occurrences with "exlude ... Test title: GET status information about multiple VNF LCM Operation OCC with "exclude_default" ... Test objective: The objective is to test that GET method retrieve Query status information about multiple VNF lifecycle management operation occurrences. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -91,7 +91,7 @@ GET status information about multiple VNF LCM Operation occurrences with "fields ... Test title: GET status information about multiple VNF LCM Operation OCC with "fields" ... Test objective: The objective is to test that GET method retrieve Query status information about multiple VNF lifecycle management operation occurrences. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -104,7 +104,7 @@ GET status information about multiple VNF LCM Operation occurrences with "exclud ... Test title: GET status information about multiple VNF LCM Operation OCC with "exclude_fields" ... Test objective: The objective is to test that GET method retrieve Query status information about multiple VNF lifecycle management operation occurrences. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -117,7 +117,7 @@ PUT status information about multiple VNF LCM operation occurrences - Method not ... Test title: PUT status information about multiple VNF LCM operation occurrences - Method not implemented ... Test objective: The objective is to test that PUT method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.3 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.3 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -129,7 +129,7 @@ PATCH status information about multiple VNF LCM operation occurrences - Method n ... Test title: PATCH status information about multiple VNF LCM operation occurrences - Method not implemented ... Test objective: The objective is to test that PATCH method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.4 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.4 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -141,7 +141,7 @@ DELETE status information about multiple VNF LCM operation occurrences - Method ... Test title: DELETE status information about multiple VNF LCM operation occurrences - Method not implemented ... Test objective: The objective is to test that DELETE method is not implemented ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.5 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.5 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -153,7 +153,7 @@ GET status information about multiple VNF LCM operation occurances to get Paged ... Test title: GET status information about multiple VNF LCM operation occurances to get Paged Response ... Test objective: The objective is to test that GET method retrieve Query status information about multiple VNF lifecycle management operation occurrences to get paged response. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -166,7 +166,7 @@ GET status information about multiple VNF LCM Operation occurrences Bad Request ... Test title: GET status information about multiple VNF LCM Operation occurrences Bad Request Response too big ... Test objective: The objective is to test that GET method fail retrieving status information about multiple VNF lifecycle management operation occurrences because Response is too big. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -179,7 +179,7 @@ GET status information about multiple VNF LCM Operation occurrences with "exlude ... Test title: GET status information about multiple VNF LCM Operation OCC with "exclude_default" and "fields" ... Test objective: The objective is to test that GET method retrieve Query status information about multiple VNF lifecycle management operation occurrences. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -191,7 +191,7 @@ GET status information about multiple VNF LCM operation occurrences with permitt ... Test title: GET status information about multiple VNF LCM operation occurrences with permitted authorization scope ... Test objective: The objective is to test that GET method retrieve Query status information about multiple VNF lifecycle management operation occurrences with permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -204,7 +204,7 @@ GET status information about multiple VNF LCM operation occurrences with not per ... Test title: GET status information about multiple VNF LCM operation occurrences with not permitted authorization scope ... Test objective: The objective is to test that GET method retrieve Query status information about multiple VNF lifecycle management operation occurrences with not permitted authorization scope ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -216,7 +216,7 @@ GET information about multiple VNF instances - Bad Request Response too big ... Test title: GET information about multiple VNF instances - Bad Request Response too big ... Test objective: The objective is to test that GET method fail retrieving information about multiple VNF LCM operation occurrences because Response is too big. ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none @@ -229,7 +229,7 @@ GET status information about multiple VNF LCM operation occurrences - Unauthoriz ... Test title: GET status information about multiple VNF LCM operation occurrences - Unauthorized ... Test objective: The objective is to test that GET method cannot retrieve Query status information about multiple VNF lifecycle management operation occurrences without authorization ... Pre-conditions: none - ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.2.1 + ... Reference: Clause 5.4.12.3.2 - ETSI GS NFV-SOL 002 [2] v5.3.1 ... Config ID: Config_prod_VE ... Applicability: none ... Post-Conditions: none diff --git a/SOL002/VNFLifecycleManagement-API/descriptors/SOL001/VNFD/vnfd_SOL001.yaml b/SOL002/VNFLifecycleManagement-API/descriptors/SOL001/VNFD/vnfd_SOL001.yaml index cf0457ce101d766bce69db9c47f471d899e7aaaa..eed436083fa3d809a243d44900272fe969de93c1 100644 --- a/SOL002/VNFLifecycleManagement-API/descriptors/SOL001/VNFD/vnfd_SOL001.yaml +++ b/SOL002/VNFLifecycleManagement-API/descriptors/SOL001/VNFD/vnfd_SOL001.yaml @@ -44,7 +44,7 @@ node_types: type: list entry_schema: type: string - default: [ 'etsivnfm:v5.2.1' ] + default: [ 'etsivnfm:v5.3.1' ] interfaces: Vnflcm: type: "tosca.interfaces.nfv.Vnflcm" diff --git a/SOL002/VNFLifecycleManagement-API/environment/variables.txt b/SOL002/VNFLifecycleManagement-API/environment/variables.txt index 09ee4c66680d6b59aa833dc3141186904dd6be63..1b61f9447f81ec4d41e31d500b918c9813cc688f 100644 --- a/SOL002/VNFLifecycleManagement-API/environment/variables.txt +++ b/SOL002/VNFLifecycleManagement-API/environment/variables.txt @@ -13,7 +13,7 @@ ${ACCEPT_JSON} application/json ${apiRoot} / ${apiName} vnflcm ${apiMajorVersion} v2 -${API_VERSION} 2.15.0 +${API_VERSION} 2.16.0 ${AUTH_USAGE} 1 ${OAUTH_Encryption_ALGORITHM} HS256 ${NEG_SCOPE} vnflcm:v2:invalid @@ -50,7 +50,7 @@ ${VNFM_DUPLICATION} 0 ${sub_filter} filter ${sub_filter_invalid} filter_invalid ${subscriptionId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f - +${NOT_EXISTANT_SubscriptionId} NOT_EXISTANT_SubscriptionId ${notInstantiatedVnfInstanceId} NOT_INSTANTIATED_VNF_INSTANCE_ID ${NOT_EXISTANT_VNF_INSTANCE_ID} NOT_EXISTANT_VNF_INSTANCE_ID @@ -86,7 +86,8 @@ ${flavourId} vnf flavour ${scaleVnfRequesttype} SCALE_OUT ${scaleVnfRequestAspect} Aspect -${instantiationLevelId} +${instantiationLevelId} +${powerProfileId} ${newFlavourId} 5a7d81f-e602-4afa-8e13-962fb5a7d81f @@ -99,7 +100,7 @@ ${changeStateTo} STOPPED ${vnfdIds} 6fc3539c-e602-4afa-8e13-962fb5a7d81f ${callbackResp} localhost - +${invalid_callbackResp} invalid_callback ${check_descriptors} 1 ${descriptorType} SOL006 ${check_multiple_instances} 0 diff --git a/SOL002/VNFLifecycleManagement-API/jsons/scaleVnfToLevelRequestWithPowerProfileId.json b/SOL002/VNFLifecycleManagement-API/jsons/scaleVnfToLevelRequestWithPowerProfileId.json new file mode 100644 index 0000000000000000000000000000000000000000..e926d0290312dabd18fdec01001ec7141f160f4c --- /dev/null +++ b/SOL002/VNFLifecycleManagement-API/jsons/scaleVnfToLevelRequestWithPowerProfileId.json @@ -0,0 +1,4 @@ +{{ + "powerProfileId": "{powerProfileId}", + "additionalParams": {} +}} \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/schemas/VnfLcmOperationOccurrenceNotification.schema.json b/SOL002/VNFLifecycleManagement-API/schemas/VnfLcmOperationOccurrenceNotification.schema.json index 700e00990380ece3250913bdcf3939b1b828b860..5f002702b429254221221c308eff66cb4016d118 100644 --- a/SOL002/VNFLifecycleManagement-API/schemas/VnfLcmOperationOccurrenceNotification.schema.json +++ b/SOL002/VNFLifecycleManagement-API/schemas/VnfLcmOperationOccurrenceNotification.schema.json @@ -61,7 +61,7 @@ "type": "string" }, "operation": { - "description": "The enumeration LcmOpType defines the permitted values to represent VNF lifecycle operation types in VNF lifecycle management operation occurrence resources and VNF lifecycle management operation occurrence notifications.\nValue | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation. SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation. CREATE_SNAPSHOT | Represents the \"Create VNF Snapshot\" LCM operation. REVERT_TO_SNAPSHOT | Represents the /"Revert-To VNF Snapshot\" LCM operation. CHANGE_VNFPKG | Represents the \"Change current VNF package\" LCM operation. SELECT_DEPL_MODS | Represents the \"Select VNF deployable modules\" LCM operation \n", + "description": "The enumeration LcmOpType defines the permitted values to represent VNF lifecycle operation types in VNF lifecycle management operation occurrence resources and VNF lifecycle management operation occurrence notifications.\nValue | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation. SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation. CREATE_SNAPSHOT | Represents the \"Create VNF Snapshot\" LCM operation. REVERT_TO_SNAPSHOT | Represents the \"Revert-To VNF Snapshot\" LCM operation. CHANGE_VNFPKG | Represents the \"Change current VNF package\" LCM operation. SELECT_DEPL_MODS | Represents the \"Select VNF deployable modules\" LCM operation \n", "type": "string", "enum": [ "INSTANTIATE", @@ -814,10 +814,10 @@ "type": "string" }, "cpConfig": { - "description": "Map of instance data that need to be configured on the CP instances created from the respective CPD. The key of the map which identifies the individual VnfExtCpConfig entries is of type \"IdentifierInVnf\" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). See notes 2, 3, 4, 5 and 6. In case of deleting an external CP, the list of instances to be deleted. \n", + "description": "Map of instance data that need to be configured on the CP instances created from the respective CPD. The key of the map which identifies the individual VnfExtCpConfig entries is of type \"IdentifierInVnf\" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). See notes 2, 3, 4, 5 and 6. In case of deleting an external CP, the list of instances to be deleted. \n", "type": "object", "additionalProperties": { - "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes /"netAttDefResourceId/" and /"cpProtocolData/" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", + "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes \"netAttDefResourceId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", "anyOf": [ { "required": [ @@ -838,7 +838,7 @@ "type": "object", "properties": { "parentCpConfigId": { - "description": "Value of the key that identifies the \"VnfExtCpConfig\" map entry which corresponds to the parent port of the trunk.mOnly present in \"VnfExtCpConfig\" structures that provide configuration information for a CP which represents a sub-port in a trunk, and if parent ports are supported. In case of deletion of an external CP, the identifier of the external CP instance to delete. Shall be present if this instance has already been created.\n", + "description": "Value of the key that identifies the \"VnfExtCpConfig\" map entry which corresponds to the parent port of the trunk.mOnly present in \"VnfExtCpConfig\" structures that provide configuration information for a CP which represents a sub-port in a trunk, and if parent ports are supported. In case of deletion of an external CP, the identifier of the external CP instance to delete. Shall be present if this instance has already been created.\n", "type": "string" }, "linkPortId": { @@ -1028,27 +1028,54 @@ } }, "fullyQualifiedDomainNames": { - "description": "Specifies the fully qualified domain names (FQDN) to apply to the CP.\n", - "type": "array", - "items": { - "type": "string" + "description": "Specifies the fully qualified domain names (FQDN) to apply to the CP.\n", + "type": "array", + "items": { + "type": "string" + } }, "relativeDomainNames": { - "description": "Specifies values of relative domain names to be considered when setting the fully qualified domain names.\n", - "type": "array", - "items": { - "type": "string" + "description": "Specifies values of relative domain names to be considered when setting the fully qualified domain names.\n", + "type": "array", + "items": { + "type": "string" + } } } } }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceData/" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", + "description": "Identifier of the \"NetAttDefResourceData\" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupData": { + "description": "Parameters for modifying and overriding security groups information bound to this CP. The parameters identify which \"SecurityGroupRule\" specified in the VNFD is activated/deactivated and for an activated security group rule the values of attributes defined in the VNFD that can be overridden such as \"portRangeMin\" and \"portRangeMax\". If no security group configuration is provided for a given \"SecurityGroupRule\" specified in the VNFD as part of this attribute, the VNFM shall use the configuration as specified in the VNFD.\n", + "type": "object", + "required": [ + "securityGroupRuleId" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "isActivated": { + "description": "Indicates whether the rule is to be active (true) or inactive (false). If no attribute value is provided, the Security Group Rule is activated by default.\n", + "type": "boolean" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + } + } } } } diff --git a/SOL002/VNFLifecycleManagement-API/schemas/VnfSnapshotInfo.schema.json b/SOL002/VNFLifecycleManagement-API/schemas/VnfSnapshotInfo.schema.json index be3d4b5c3a3f6b87f71e6bfee0bf42237f17b406..a6de2453e06cf3ecd4e8c994b90a51dfae1d1517 100644 --- a/SOL002/VNFLifecycleManagement-API/schemas/VnfSnapshotInfo.schema.json +++ b/SOL002/VNFLifecycleManagement-API/schemas/VnfSnapshotInfo.schema.json @@ -48,7 +48,7 @@ "type": "string" }, "vnfInstance": { - "description": "This type represents a VNF instance. * NOTE 1:\tModifying the value of this attribute shall not be performed when conflicts exist\n between the previous and the newly referred VNF package, i.e. when the new VNFD is\n changed with respect to the previous VNFD in other aspects than merely referencing\n to other VNF software images. In order to avoid misalignment of the VnfInstance with\n the current VNF's on-boarded VNF package, the values of attributes in the VnfInstance\n that have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD.\n* NOTE 2:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. * NOTE 3:\tThese attributes are sometimes also referred to as configuration parameters\n applicable to a VNF. Some of these are set prior to instantiation and cannot be modified\n if the VNF is instantiated, some are set prior to instantiation (are part of initial configuration)\n and can be modified later, and others can be set only after instantiation.\n The applicability of certain configuration may depend on the VNF and the required operation of\n the VNF at a certain point in time.\n* NOTE 4:\tUpon creation of the VnfInstance structure, the VNFM shall create and initialize all child\n attributes of \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that were declared\n in the VNFD with a defined initial value. The defined initial values can be declared in the VNFD,\n and/or, in case of \"metadata\", obtained from the \"CreateVnfRequest\" structure. Child attributes of\n \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that have no defined initial value shall\n not be created, in order to be consistent with the semantics of the JSON Merge Patch method\n (see IETF RFC 7396) that interprets null values as deletion request.\n* NOTE 5:\tIt is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case\n of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding\n to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc\n and externally-managed multi-site VL instance (refer to clause 5.5.3.5).\n* NOTE 6:\tEven though externally-managed internal VLs are also used for VNF-internal connectivity,\n they shall not be listed in the \"vnfVirtualLinkResourceInfo\" attribute as this would be redundant.\n* NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP \n packets with any VLAN tag as long as the network interface to connect to the secondary container cluster \n network has been configured appropriately. Thus, no individual extCpInfo, except the one representing the \n trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.\n* NOTE 8: For a scaling aspect whose related VNFCs have not been instantiated due to the selection of deployable \n modules, the /"scaleStatus/" indicates the scale level that would be applicable to the aspect if a VNF LCM \n operation changes the selected deployable modules and the related VNFCs are instantiated, unless the VNF \n LCM operation explicitly indicates the scale level for the aspect.\n", + "description": "This type represents a VNF instance. * NOTE 1:\tModifying the value of this attribute shall not be performed when conflicts exist\n between the previous and the newly referred VNF package, i.e. when the new VNFD is\n changed with respect to the previous VNFD in other aspects than merely referencing\n to other VNF software images. In order to avoid misalignment of the VnfInstance with\n the current VNF's on-boarded VNF package, the values of attributes in the VnfInstance\n that have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD.\n* NOTE 2:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. * NOTE 3:\tThese attributes are sometimes also referred to as configuration parameters\n applicable to a VNF. Some of these are set prior to instantiation and cannot be modified\n if the VNF is instantiated, some are set prior to instantiation (are part of initial configuration)\n and can be modified later, and others can be set only after instantiation.\n The applicability of certain configuration may depend on the VNF and the required operation of\n the VNF at a certain point in time.\n* NOTE 4:\tUpon creation of the VnfInstance structure, the VNFM shall create and initialize all child\n attributes of \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that were declared\n in the VNFD with a defined initial value. The defined initial values can be declared in the VNFD,\n and/or, in case of \"metadata\", obtained from the \"CreateVnfRequest\" structure. Child attributes of\n \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that have no defined initial value shall\n not be created, in order to be consistent with the semantics of the JSON Merge Patch method\n (see IETF RFC 7396) that interprets null values as deletion request.\n* NOTE 5:\tIt is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case\n of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding\n to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc\n and externally-managed multi-site VL instance (refer to clause 5.5.3.5).\n* NOTE 6:\tEven though externally-managed internal VLs are also used for VNF-internal connectivity,\n they shall not be listed in the \"vnfVirtualLinkResourceInfo\" attribute as this would be redundant.\n* NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP \n packets with any VLAN tag as long as the network interface to connect to the secondary container cluster \n network has been configured appropriately. Thus, no individual extCpInfo, except the one representing the \n trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.\n* NOTE 8: For a scaling aspect whose related VNFCs have not been instantiated due to the selection of deployable \n modules, the \"scaleStatus\" indicates the scale level that would be applicable to the aspect if a VNF LCM \n operation changes the selected deployable modules and the related VNFCs are instantiated, unless the VNF \n LCM operation explicitly indicates the scale level for the aspect.\n", "type": "object", "required": [ "id", @@ -401,6 +401,47 @@ "STOPPED" ] }, + "vnfPowerState": { + "description": "The power state of the VNF instance. Only present if the VNF instance\n is in a power state or a scale status (refer to attribute \"scaleStatus\")\n that has an associated power profile, as defined in the VNFD.\n", + "type": "object", + "required": [ + "powerProfileId", + "name" + ], + "properties": { + "powerProfileId": { + "description": "Identifier of the power profile, as defined in the VNFD, applied to the VNF instance.\n", + "type": "string" + }, + "name": { + "description": "Name of the power profile as provided in the VNFD.\n", + "type": "string" + }, + "powerConsumptionInfo": { + "description": "Estimated power consumption information of the resources associated with this power profile, as provided in the VNFD. VNFM exposes and can use this information to control the VNF instance to operate according to the power profile and selected power state, e.g. monitoring actual energy or power consumption of the VNF instance and compare against the estimated one.\n", + "type": "object", + "required": [ + "minPowerConsumption", + "maxPowerConsumption", + "averagePowerConsumption" + ], + "properties": { + "minPowerConsumption": { + "description": "Minimum power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + }, + "maxPowerConsumption": { + "description": "Maximum power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + }, + "averagePowerConsumption": { + "description": "Average power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + } + } + } + } + }, "scaleStatus": { "description": "Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how \"big\" the VNF has been scaled w.r.t. that aspect. This attribute shall be present if the VNF supports scaling. See clause B.2 for an explanation of VNF scaling. For an aspect that has not been deployed because the related deployableModule has not been selected, it indicates the scale level that has been requested in the instantiation or in a scaling operation, or, if none has been requested in any of them, the scale level applicable to the aspect based on the default instantiation level. See note 8.\n", "type": "array", @@ -595,6 +636,27 @@ "description": "A number defined in IETF RFC 8259.\n", "type": "number" } + }, + "cpuPowerStateRequirements": { + "description": "Requirements of virtual CPU power state configuration data for the OS container resource.\n", + "type": "object", + "required": [ + "cpuPowerStateManagementPolicy" + ], + "properties": { + "cpuPowerStateManagementPolicy": { + "description": "Indicates the policy for CPU power state management. Permitted values:\n * STATIC\n * DYNAMIC\nIn case of \"STATIC\", the virtual CPU cores are requested to be allocated to logical CPU cores according to the cpuOperationalPowerStates attribute. In case of \"DYNAMIC\", the CPU power states of virtual CPU cores can be allocated to logical CPU cores whose power states can be adjusted dynamically depending on core utilization\n* NOTE 1: In case the value of the \"cpuPowerStateManagementPolicy\" attribute is \"DYNAMIC\", dynamic adjustment of CPU power states of logical CPU cores should adhere to the range of CPU P and C states defined in the \"cpuOperationalPowerStates\" attribute.", + "type": "string", + "enum": [ + "STATIC", + "DYNAMIC" + ] + }, + "cpuOperationalPowerStates": { + "description": "Provides the lists of operational power states (i.e. P and C states) defined for the virtual CPU.\n* NOTE 2: In case the value of the \"cpuPowerStateManagementPolicy\" attribute is \"STATIC\", the cpuOperationalPowerStates attribute shall contain only one set of CPU P and C states requested for the virtual CPU. If the value of the cpuPowerStateManagementPolicy attribute is \"DYNAMIC\", multiple CPU P and C states can be defined to indicate the range of allowed P/C state values during dynamic power state management.", + "type": "object" + } + } } } } @@ -656,6 +718,27 @@ "description": "A number defined in IETF RFC 8259.\n", "type": "number" } + }, + "cpuPowerStateRequirements": { + "description": "Requirements of virtual CPU power state configuration data for the virtual compute resource.\n", + "type": "object", + "required": [ + "cpuPowerStateManagementPolicy" + ], + "properties": { + "cpuPowerStateManagementPolicy": { + "description": "Indicates the policy for CPU power state management. Permitted values:\n * STATIC\n * DYNAMIC\nIn case of \"STATIC\", the virtual CPU cores are requested to be allocated to logical CPU cores according to the cpuOperationalPowerStates attribute. In case of \"DYNAMIC\", the CPU power states of virtual CPU cores can be allocated to logical CPU cores whose power states can be adjusted dynamically depending on core utilization (see note 1).\n", + "type": "string", + "enum": [ + "STATIC", + "DYNAMIC" + ] + }, + "cpuOperationalPowerStates": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + } + } } } }, @@ -689,7 +772,7 @@ "type": "array", "minItems": 1, "items": { - "description": "This type represents information about an external CP of a VNF.\nNOTE 1:\tThe attributes \"associatedVnfcCpId\", \"associatedVipCpId\", \"associatedVirtualCpId\" and \n \"associatedVnfVirtualLinkId\" are mutually exclusive. Exactly one shall be present.\nNOTE 2:\tAn external CP instance is not associated to a link port in the cases indicated for the \n /"extLinkPorts/" attribute in clause 4.4.1.11.\nNOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network \n attachment definition resource is needed to fulfil the connectivity requirements of the external \n CP, e.g. to build a link redundant mated pair in SR-IOV cases.\nNOTE 4: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.\n", + "description": "This type represents information about an external CP of a VNF.\nNOTE 1:\tThe attributes \"associatedVnfcCpId\", \"associatedVipCpId\", \"associatedVirtualCpId\" and \n \"associatedVnfVirtualLinkId\" are mutually exclusive. Exactly one shall be present.\nNOTE 2:\tAn external CP instance is not associated to a link port in the cases indicated for the \n \"extLinkPorts\" attribute in clause 4.4.1.11.\nNOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network \n attachment definition resource is needed to fulfil the connectivity requirements of the external \n CP, e.g. to build a link redundant mated pair in SR-IOV cases.\nNOTE 4: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.\n", "type": "object", "required": [ "id", @@ -906,7 +989,7 @@ "type": "string" }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceInfo/" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 3 and 4. It shall be present if the external CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", + "description": "Identifier of the \"NetAttDefResourceInfo\" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 3 and 4. It shall be present if the external CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", @@ -920,6 +1003,47 @@ "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupInfo": { + "description": "List of active security group rules applied to this external CP instance. The attribute identifies which \"SecurityGroupRule\" specified in the VNFD are activated and the values of its attributes.\n", + "type": "object", + "required": [ + "securityGroupRuleId", + "etherType", + "protocol", + "portRangeMin", + "portRangeMax" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "description": { + "description": "Human readable description of the security group rule.\n", + "type": "string" + }, + "etherType": { + "description": "Indicates the protocol carried over the Ethernet layer. Permitted values: IPV4, IPV6.\n", + "type": "string", + "enum": [ + "IPV4", + "IPV6" + ] + }, + "protocol": { + "description": "Indicates the protocol carried over the IP layer. Permitted values: any protocol defined in the IANA protocol registry (refer to clause 9.10.1.2 ofd ETSI GS NFV-SOL 001 for further information).\n", + "type": "string" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule.\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule.\n", + "type": "integer" + } + } } } } @@ -1092,13 +1216,12 @@ } }, "fullyQualifiedDomainNames": { - "description": "Fully qualified domain names that have been configured (statically or dynamically) and been associated to the CP.\n", - "type": "array", - "items": { - "type": "string" - } - } - + "description": "Fully qualified domain names that have been configured (statically or dynamically) and been associated to the CP.\n", + "type": "array", + "items": { + "type": "string" + } + } } } }, @@ -1571,7 +1694,7 @@ "description": "Map of instance data that need to be configured on the CP instances created from the respective CPD. The key of the map which identifies the individual VnfExtCpConfig entries is of type \"IdentifierInVnf\" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). See notes 2, 3, 4, 5 and 6. In case of deleting an external CP, the list of instances to be deleted. \n", "type": "object", "additionalProperties": { - "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes /"netAttDefResourceId/" and /"cpProtocolData/" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", + "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes \"netAttDefResourceId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", "anyOf": [ { "required": [ @@ -1799,12 +1922,37 @@ } }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceData/" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", + "description": "Identifier of the \"NetAttDefResourceData\" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupData": { + "description": "Parameters for modifying and overriding security groups information bound to this CP. The parameters identify which \"SecurityGroupRule\" specified in the VNFD is activated/deactivated and for an activated security group rule the values of attributes defined in the VNFD that can be overridden such as \"portRangeMin\" and \"portRangeMax\". If no security group configuration is provided for a given \"SecurityGroupRule\" specified in the VNFD as part of this attribute, the VNFM shall use the configuration as specified in the VNFD.\n", + "type": "object", + "required": [ + "securityGroupRuleId" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "isActivated": { + "description": "Indicates whether the rule is to be active (true) or inactive (false). If no attribute value is provided, the Security Group Rule is activated by default.\n", + "type": "boolean" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + } + } } } } @@ -1948,7 +2096,7 @@ } }, "extManagedVirtualLinkInfo": { - "description": "Information about the externally managed internal VLs of the VNF instance. See notes 5 and 6.", + "description": "Information about the externally managed internal VLs of the VNF instance. See notes 5 and 6.", "type": "array", "items": { "description": "This type provides information about an externally-managed virtual link.\n NOTE: Both vnfLinkPort and vnfNetAttDefResource can be present in an ExtManagedVirtualLinkInfo to indicate that a single internal virtual link is providing connectivity for both VM-based and container-based VNFCs.\n", @@ -2535,7 +2683,7 @@ "type": "string" }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceInfo/" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 5 and 6. It shall be present if the internal CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", + "description": "Identifier of the \"NetAttDefResourceInfo\" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 5 and 6. It shall be present if the internal CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", @@ -2861,7 +3009,7 @@ "description": "Information on the MCIO(s) representing VNFC instance(s) realized by one or a set of OS containers and created from the same VDU for the VNF instance.\n", "type": "array", "items": { - "description": "This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of OS containers which have been created based on the same VDU. Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC instances realized by one or a set of OS containers and compare it to the desired state. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to FALSE the desired state is specified in the respective declarative descriptor. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to TRUE, the desired state is determined by the number of CIS-nodes in the cluster that fulfil the VDU requirements. It triggers actions toward the CIS to align the actual to the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available at any specific point in time. In addition, an MCIO controller maintains properties and runtime information on the MCIO instances which have been created based on the same VDU. The McioInfo data structure provides the runtime information on the MCIOs obtained from the MCIO controller.\nNOTE: There are different types of MCIOs. The set of VNFC instances based on the same VDU is represented \n by one MCIO, e.g. of type Deployment. Each individual VNFC instance is represented by another type \n of MCIO, e.g. a POD.\n\nRuntime information of the set of OS containers realizing an individual VNFC instance is not part of the McioInfo data structure; such runtime information is provided in the ResourceHandle data structure referenced from the VnfcResourceInfo. The McioInfo does not provide runtime information of a constituent VNFC instance created based on a specific VDU.\nNOTE 1: The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from \n the CISM. EXAMPLE: In case of MCIOs managed by Kubernetes┬«, the type of MCIO corresponds to the \n /"kind/" property of the declarative descriptor.\nNOTE 2: If the attribute additionalInfo is present, it may contain runtime information on the actual and \n desired state of the MCIO(s). \nNOTE 3: When the container infrastructure service is a Kubernetes┬« instance, the mcioId is the combined \n values from the kind and name fields of the Kubernetes resource object, separated by a slash. \n Example: \"Deployment/abcd\". \nNOTE 4: When the container infrastructure service is a Kubernetes┬« instance, the mcioName is the name \n field of the resource object. \n", + "description": "This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of OS containers which have been created based on the same VDU. Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC instances realized by one or a set of OS containers and compare it to the desired state. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to FALSE the desired state is specified in the respective declarative descriptor. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to TRUE, the desired state is determined by the number of CIS-nodes in the cluster that fulfil the VDU requirements. It triggers actions toward the CIS to align the actual to the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available at any specific point in time. In addition, an MCIO controller maintains properties and runtime information on the MCIO instances which have been created based on the same VDU. The McioInfo data structure provides the runtime information on the MCIOs obtained from the MCIO controller.\nNOTE: There are different types of MCIOs. The set of VNFC instances based on the same VDU is represented \n by one MCIO, e.g. of type Deployment. Each individual VNFC instance is represented by another type \n of MCIO, e.g. a POD.\n\nRuntime information of the set of OS containers realizing an individual VNFC instance is not part of the McioInfo data structure; such runtime information is provided in the ResourceHandle data structure referenced from the VnfcResourceInfo. The McioInfo does not provide runtime information of a constituent VNFC instance created based on a specific VDU.\nNOTE 1: The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from \n the CISM. EXAMPLE: In case of MCIOs managed by Kubernetes┬«, the type of MCIO corresponds to the \n \"kind\" property of the declarative descriptor.\nNOTE 2: If the attribute additionalInfo is present, it may contain runtime information on the actual and \n desired state of the MCIO(s). \nNOTE 3: When the container infrastructure service is a Kubernetes┬« instance, the mcioId is the combined \n values from the kind and name fields of the Kubernetes resource object, separated by a slash. \n Example: \"Deployment/abcd\". \nNOTE 4: When the container infrastructure service is a Kubernetes┬« instance, the mcioName is the name \n field of the resource object. \n", "type": "object", "required": [ "mcioId", @@ -2995,7 +3143,7 @@ } }, "metadata": { - "description": "Additional VNF-specific attributes that provide metadata describing the VNF instance. These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that invoke the VNF lifecycle management interface. They are not consumed by the VNFM, or the lifecycle management scripts.\nModifying the values of these attributes has no effect on the VNF instance, it only affects the information represented in the VnfInstance structure. Metadata that the VNF provider foresees are expected to be declared in the VNFD. (clause 6.2.35 in ETSI GS NFV-SOL 001 [12]), like information about supported protocols and data models for configuring the VNF. The declaration of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4. The VNFM shall accept requests to write metadata that are not declared in the VNFD.\nThese attributes can be initialized with default values from VNFD (see note 4) and/or with values passed in the CreateVnfRequest structure (see clause 5.5.2.3).\nThese attributes can be created, modified or removed with the PATCH method.\n", + "description": "Additional VNF-specific attributes that provide metadata describing the VNF instance. These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that invoke the VNF lifecycle management interface. They are not consumed by the VNFM, or the lifecycle management scripts.\nModifying the values of these attributes has no effect on the VNF instance, it only affects the information represented in the VnfInstance structure. Metadata that the VNF provider foresees are expected to be declared in the VNFD. (clause 6.2.35 in ETSI GS NFV-SOL 001 [12]), like information about supported protocols and data models for configuring the VNF. The declaration of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4. The VNFM shall accept requests to write metadata that are not declared in the VNFD.\nThese attributes can be initialized with default values from VNFD (see note 4) and/or with values passed in the CreateVnfRequest structure (see clause 5.5.2.3).\nThese attributes can be created, modified or removed with the PATCH method.\n", "type": "object" }, "extensions": { @@ -3179,6 +3327,194 @@ } } } + }, + "recentVnfLcmOperationLinks": { + "description": "Links to the most recent LCM operation occurrences related to this resource. See note 9.\n", + "type": "object", + "properties": { + "recentVnfLcmOperation": { + "description": "Link to the most recent LCM operation occurrence of any type that has been triggered on this VNF instance, such as Instantiate, Scale or Heal.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmInstantiation": { + "description": "Link to the most recent LCM operation occurrence of type \"INSTANTIATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmScale": { + "description": "Link to the most recent LCM operation occurrence of type \"SCALE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmScaleToLevel": { + "description": "Link to the most recent LCM operation occurrence of type \"SCALE_TO_LEVEL\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeFlavour": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_FLAVOUR\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmTerminate": { + "description": "Link to the most recent LCM operation occurrence of type \"TERMINATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmHeal": { + "description": "Link to the most recent LCM operation occurrence of type \"HEAL\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmOperate": { + "description": "Link to the most recent LCM operation occurrence of type \"OPERATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeExtConn": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_EXT_CONN\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmModifyInfo": { + "description": "Link to the most recent LCM operation occurrence of type \"MODIFY_INFO\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmCreateSnapshot": { + "description": "Link to the most recent LCM operation occurrence of type \"CREATE_SNAPSHOT\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmRevertToSnapshot": { + "description": "Link to the most recent LCM operation occurrence of type \"REVERT_TO_SNAPSHOT\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeVnfPkg": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_VNFPKG\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmSelectDplMods": { + "description": "Link to the most recent LCM operation occurrence of type \"SELECT_DEPL_MODS\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + } + } } } }, diff --git a/SOL002/VNFLifecycleManagement-API/schemas/VnfSnapshotsInfo.schema.json b/SOL002/VNFLifecycleManagement-API/schemas/VnfSnapshotsInfo.schema.json index a6794101336153ac6a5b8dad26d281ed5b5b09c0..e985fe033e245f8b0aa48ef16e050101d0bbc8b0 100644 --- a/SOL002/VNFLifecycleManagement-API/schemas/VnfSnapshotsInfo.schema.json +++ b/SOL002/VNFLifecycleManagement-API/schemas/VnfSnapshotsInfo.schema.json @@ -50,7 +50,7 @@ "type": "string" }, "vnfInstance": { - "description": "This type represents a VNF instance. * NOTE 1:\tModifying the value of this attribute shall not be performed when conflicts exist\n between the previous and the newly referred VNF package, i.e. when the new VNFD is\n changed with respect to the previous VNFD in other aspects than merely referencing\n to other VNF software images. In order to avoid misalignment of the VnfInstance with\n the current VNF's on-boarded VNF package, the values of attributes in the VnfInstance\n that have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD.\n* NOTE 2:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. * NOTE 3:\tThese attributes are sometimes also referred to as configuration parameters\n applicable to a VNF. Some of these are set prior to instantiation and cannot be modified\n if the VNF is instantiated, some are set prior to instantiation (are part of initial configuration)\n and can be modified later, and others can be set only after instantiation.\n The applicability of certain configuration may depend on the VNF and the required operation of\n the VNF at a certain point in time.\n* NOTE 4:\tUpon creation of the VnfInstance structure, the VNFM shall create and initialize all child\n attributes of \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that were declared\n in the VNFD with a defined initial value. The defined initial values can be declared in the VNFD,\n and/or, in case of \"metadata\", obtained from the \"CreateVnfRequest\" structure. Child attributes of\n \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that have no defined initial value shall\n not be created, in order to be consistent with the semantics of the JSON Merge Patch method\n (see IETF RFC 7396) that interprets null values as deletion request.\n* NOTE 5:\tIt is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case\n of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding\n to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc\n and externally-managed multi-site VL instance (refer to clause 5.5.3.5).\n* NOTE 6:\tEven though externally-managed internal VLs are also used for VNF-internal connectivity,\n they shall not be listed in the \"vnfVirtualLinkResourceInfo\" attribute as this would be redundant.\n* NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP \n packets with any VLAN tag as long as the network interface to connect to the secondary container cluster \n network has been configured appropriately. Thus, no individual extCpInfo, except the one representing the \n trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.\n* NOTE 8: For a scaling aspect whose related VNFCs have not been instantiated due to the selection of deployable \n modules, the /"scaleStatus/" indicates the scale level that would be applicable to the aspect if a VNF LCM \n operation changes the selected deployable modules and the related VNFCs are instantiated, unless the VNF \n LCM operation explicitly indicates the scale level for the aspect.\n", + "description": "This type represents a VNF instance. * NOTE 1:\tModifying the value of this attribute shall not be performed when conflicts exist\n between the previous and the newly referred VNF package, i.e. when the new VNFD is\n changed with respect to the previous VNFD in other aspects than merely referencing\n to other VNF software images. In order to avoid misalignment of the VnfInstance with\n the current VNF's on-boarded VNF package, the values of attributes in the VnfInstance\n that have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD.\n* NOTE 2:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. * NOTE 3:\tThese attributes are sometimes also referred to as configuration parameters\n applicable to a VNF. Some of these are set prior to instantiation and cannot be modified\n if the VNF is instantiated, some are set prior to instantiation (are part of initial configuration)\n and can be modified later, and others can be set only after instantiation.\n The applicability of certain configuration may depend on the VNF and the required operation of\n the VNF at a certain point in time.\n* NOTE 4:\tUpon creation of the VnfInstance structure, the VNFM shall create and initialize all child\n attributes of \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that were declared\n in the VNFD with a defined initial value. The defined initial values can be declared in the VNFD,\n and/or, in case of \"metadata\", obtained from the \"CreateVnfRequest\" structure. Child attributes of\n \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that have no defined initial value shall\n not be created, in order to be consistent with the semantics of the JSON Merge Patch method\n (see IETF RFC 7396) that interprets null values as deletion request.\n* NOTE 5:\tIt is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case\n of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding\n to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc\n and externally-managed multi-site VL instance (refer to clause 5.5.3.5).\n* NOTE 6:\tEven though externally-managed internal VLs are also used for VNF-internal connectivity,\n they shall not be listed in the \"vnfVirtualLinkResourceInfo\" attribute as this would be redundant.\n* NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP \n packets with any VLAN tag as long as the network interface to connect to the secondary container cluster \n network has been configured appropriately. Thus, no individual extCpInfo, except the one representing the \n trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.\n* NOTE 8: For a scaling aspect whose related VNFCs have not been instantiated due to the selection of deployable \n modules, the “scaleStatus” indicates the scale level that would be applicable to the aspect if a VNF LCM \n operation changes the selected deployable modules and the related VNFCs are instantiated, unless the VNF \n LCM operation explicitly indicates the scale level for the aspect.\n* NOTE 9: The recentVnfLcmOperationLinks attribute does not provide a complete historical record of LCM changes\n that a VNF instance experienced during its lifecycle. The information in this attribute should not be used to\n create a chronological order of events that cannot be inferred by looking only at the most recent operation\n occurrences due to potential gaps in timeline. This is because there can be many possible combination of\n LCM changes that a VNF may have gone through between two operation occurrences recorded in the\n recentVnfLcmOperationLinks attribute. For example, there can be many scaling related LCM changes since\n an individual VNF instance has been instantiated until the most recent scaling operation occurrence linked in\n the attribute. In another example, the most recent LCM operation occurrence related to instantiate VNF\n operation may be more recent than the one that caused the VNF instance to be terminated last time, which\n prevents the possibility to create a meaningful chronological timeline of VNF LCM events.\n", "type": "object", "required": [ "id", @@ -403,6 +403,47 @@ "STOPPED" ] }, + "vnfPowerState": { + "description": "The power state of the VNF instance. Only present if the VNF instance\n is in a power state or a scale status (refer to attribute \"scaleStatus\")\n that has an associated power profile, as defined in the VNFD.\n", + "type": "object", + "required": [ + "powerProfileId", + "name" + ], + "properties": { + "powerProfileId": { + "description": "Identifier of the power profile, as defined in the VNFD, applied to the VNF instance.\n", + "type": "string" + }, + "name": { + "description": "Name of the power profile as provided in the VNFD.\n", + "type": "string" + }, + "powerConsumptionInfo": { + "description": "Estimated power consumption information of the resources associated with this power profile, as provided in the VNFD. VNFM exposes and can use this information to control the VNF instance to operate according to the power profile and selected power state, e.g. monitoring actual energy or power consumption of the VNF instance and compare against the estimated one.\n", + "type": "object", + "required": [ + "minPowerConsumption", + "maxPowerConsumption", + "averagePowerConsumption" + ], + "properties": { + "minPowerConsumption": { + "description": "Minimum power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + }, + "maxPowerConsumption": { + "description": "Maximum power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + }, + "averagePowerConsumption": { + "description": "Average power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + } + } + } + } + }, "scaleStatus": { "description": "Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how \"big\" the VNF has been scaled w.r.t. that aspect. This attribute shall be present if the VNF supports scaling. See clause B.2 for an explanation of VNF scaling. For an aspect that has not been deployed because the related deployableModule has not been selected, it indicates the scale level that has been requested in the instantiation or in a scaling operation, or, if none has been requested in any of them, the scale level applicable to the aspect based on the default instantiation level. See note 8.\n", "type": "array", @@ -597,6 +638,27 @@ "description": "A number defined in IETF RFC 8259.\n", "type": "number" } + }, + "cpuPowerStateRequirements": { + "description": "Requirements of virtual CPU power state configuration data for the OS container resource.\n", + "type": "object", + "required": [ + "cpuPowerStateManagementPolicy" + ], + "properties": { + "cpuPowerStateManagementPolicy": { + "description": "Indicates the policy for CPU power state management. Permitted values:\n * STATIC\n * DYNAMIC\nIn case of \"STATIC\", the virtual CPU cores are requested to be allocated to logical CPU cores according to the cpuOperationalPowerStates attribute. In case of \"DYNAMIC\", the CPU power states of virtual CPU cores can be allocated to logical CPU cores whose power states can be adjusted dynamically depending on core utilization\n* NOTE 1: In case the value of the \"cpuPowerStateManagementPolicy\" attribute is \"DYNAMIC\", dynamic adjustment of CPU power states of logical CPU cores should adhere to the range of CPU P and C states defined in the \"cpuOperationalPowerStates\" attribute.", + "type": "string", + "enum": [ + "STATIC", + "DYNAMIC" + ] + }, + "cpuOperationalPowerStates": { + "description": "Provides the lists of operational power states (i.e. P and C states) defined for the virtual CPU.\n* NOTE 2: In case the value of the \"cpuPowerStateManagementPolicy\" attribute is \"STATIC\", the cpuOperationalPowerStates attribute shall contain only one set of CPU P and C states requested for the virtual CPU. If the value of the cpuPowerStateManagementPolicy attribute is \"DYNAMIC\", multiple CPU P and C states can be defined to indicate the range of allowed P/C state values during dynamic power state management.", + "type": "object" + } + } } } } @@ -658,6 +720,27 @@ "description": "A number defined in IETF RFC 8259.\n", "type": "number" } + }, + "cpuPowerStateRequirements": { + "description": "Requirements of virtual CPU power state configuration data for the virtual compute resource.\n", + "type": "object", + "required": [ + "cpuPowerStateManagementPolicy" + ], + "properties": { + "cpuPowerStateManagementPolicy": { + "description": "Indicates the policy for CPU power state management. Permitted values:\n * STATIC\n * DYNAMIC\nIn case of \"STATIC\", the virtual CPU cores are requested to be allocated to logical CPU cores according to the cpuOperationalPowerStates attribute. In case of \"DYNAMIC\", the CPU power states of virtual CPU cores can be allocated to logical CPU cores whose power states can be adjusted dynamically depending on core utilization (see note 1).\n", + "type": "string", + "enum": [ + "STATIC", + "DYNAMIC" + ] + }, + "cpuOperationalPowerStates": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + } + } } } }, @@ -691,7 +774,7 @@ "type": "array", "minItems": 1, "items": { - "description": "This type represents information about an external CP of a VNF.\nNOTE 1:\tThe attributes \"associatedVnfcCpId\", \"associatedVipCpId\", \"associatedVirtualCpId\" and \n \"associatedVnfVirtualLinkId\" are mutually exclusive. Exactly one shall be present.\nNOTE 2:\tAn external CP instance is not associated to a link port in the cases indicated for the \n /"extLinkPorts/" attribute in clause 4.4.1.11.\nNOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network \n attachment definition resource is needed to fulfil the connectivity requirements of the external \n CP, e.g. to build a link redundant mated pair in SR-IOV cases.\nNOTE 4: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.\n", + "description": "This type represents information about an external CP of a VNF.\nNOTE 1:\tThe attributes \"associatedVnfcCpId\", \"associatedVipCpId\", \"associatedVirtualCpId\" and \n \"associatedVnfVirtualLinkId\" are mutually exclusive. Exactly one shall be present.\nNOTE 2:\tAn external CP instance is not associated to a link port in the cases indicated for the \n \"extLinkPorts\" attribute in clause 4.4.1.11.\nNOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network \n attachment definition resource is needed to fulfil the connectivity requirements of the external \n CP, e.g. to build a link redundant mated pair in SR-IOV cases.\nNOTE 4: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.\n", "type": "object", "required": [ "id", @@ -908,7 +991,7 @@ "type": "string" }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceInfo/" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 3 and 4. It shall be present if the external CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", + "description": "Identifier of the \"NetAttDefResourceInfo\" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 3 and 4. It shall be present if the external CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", @@ -922,6 +1005,47 @@ "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupInfo": { + "description": "List of active security group rules applied to this external CP instance. The attribute identifies which \"SecurityGroupRule\" specified in the VNFD are activated and the values of its attributes.\n", + "type": "object", + "required": [ + "securityGroupRuleId", + "etherType", + "protocol", + "portRangeMin", + "portRangeMax" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "description": { + "description": "Human readable description of the security group rule.\n", + "type": "string" + }, + "etherType": { + "description": "Indicates the protocol carried over the Ethernet layer. Permitted values: IPV4, IPV6.\n", + "type": "string", + "enum": [ + "IPV4", + "IPV6" + ] + }, + "protocol": { + "description": "Indicates the protocol carried over the IP layer. Permitted values: any protocol defined in the IANA protocol registry (refer to clause 9.10.1.2 ofd ETSI GS NFV-SOL 001 for further information).\n", + "type": "string" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule.\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule.\n", + "type": "integer" + } + } } } } @@ -1572,7 +1696,7 @@ "description": "Map of instance data that need to be configured on the CP instances created from the respective CPD. The key of the map which identifies the individual VnfExtCpConfig entries is of type \"IdentifierInVnf\" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). See notes 2, 3, 4, 5 and 6. In case of deleting an external CP, the list of instances to be deleted. \n", "type": "object", "additionalProperties": { - "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes /"netAttDefResourceId/" and /"cpProtocolData/" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", + "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes \"netAttDefResourceId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", "anyOf": [ { "required": [ @@ -1800,12 +1924,37 @@ } }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceData/" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", + "description": "Identifier of the \"NetAttDefResourceData\" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupData": { + "description": "Parameters for modifying and overriding security groups information bound to this CP. The parameters identify which \"SecurityGroupRule\" specified in the VNFD is activated/deactivated and for an activated security group rule the values of attributes defined in the VNFD that can be overridden such as \"portRangeMin\" and \"portRangeMax\". If no security group configuration is provided for a given \"SecurityGroupRule\" specified in the VNFD as part of this attribute, the VNFM shall use the configuration as specified in the VNFD.\n", + "type": "object", + "required": [ + "securityGroupRuleId" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "isActivated": { + "description": "Indicates whether the rule is to be active (true) or inactive (false). If no attribute value is provided, the Security Group Rule is activated by default.\n", + "type": "boolean" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + } + } } } } @@ -1949,7 +2098,7 @@ } }, "extManagedVirtualLinkInfo": { - "description": "Information about the externally managed internal VLs of the VNF instance. See notes 5 and 6.\n", + "description": "Information about the externally managed internal VLs of the VNF instance. See notes 5 and 6.\n", "type": "array", "items": { "description": "This type provides information about an externally-managed virtual link.\n NOTE: Both vnfLinkPort and vnfNetAttDefResource can be present in an ExtManagedVirtualLinkInfo to indicate that a single internal virtual link is providing connectivity for both VM-based and container-based VNFCs.\n", @@ -2536,7 +2685,7 @@ "type": "string" }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceInfo/" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 5 and 6. It shall be present if the internal CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", + "description": "Identifier of the \"NetAttDefResourceInfo\" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 5 and 6. It shall be present if the internal CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", @@ -2862,7 +3011,7 @@ "description": "Information on the MCIO(s) representing VNFC instance(s) realized by one or a set of OS containers and created from the same VDU for the VNF instance.\n", "type": "array", "items": { - "description": "This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of OS containers which have been created based on the same VDU. Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC instances realized by one or a set of OS containers and compare it to the desired state. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to FALSE the desired state is specified in the respective declarative descriptor. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to TRUE, the desired state is determined by the number of CIS-nodes in the cluster that fulfil the VDU requirements. It triggers actions toward the CIS to align the actual to the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available at any specific point in time. In addition, an MCIO controller maintains properties and runtime information on the MCIO instances which have been created based on the same VDU. The McioInfo data structure provides the runtime information on the MCIOs obtained from the MCIO controller.\nNOTE: There are different types of MCIOs. The set of VNFC instances based on the same VDU is represented \n by one MCIO, e.g. of type Deployment. Each individual VNFC instance is represented by another type \n of MCIO, e.g. a POD.\n\nRuntime information of the set of OS containers realizing an individual VNFC instance is not part of the McioInfo data structure; such runtime information is provided in the ResourceHandle data structure referenced from the VnfcResourceInfo. The McioInfo does not provide runtime information of a constituent VNFC instance created based on a specific VDU.\nNOTE 1: The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from \n the CISM. EXAMPLE: In case of MCIOs managed by Kubernetes┬«, the type of MCIO corresponds to the \n /"kind/" property of the declarative descriptor.\nNOTE 2: If the attribute additionalInfo is present, it may contain runtime information on the actual and \n desired state of the MCIO(s). \nNOTE 3: When the container infrastructure service is a Kubernetes┬« instance, the mcioId is the combined \n values from the kind and name fields of the Kubernetes resource object, separated by a slash. \n Example: \"Deployment/abcd\". \nNOTE 4: When the container infrastructure service is a Kubernetes┬« instance, the mcioName is the name \n field of the resource object. \n", + "description": "This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of OS containers which have been created based on the same VDU. Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC instances realized by one or a set of OS containers and compare it to the desired state. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to FALSE the desired state is specified in the respective declarative descriptor. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to TRUE, the desired state is determined by the number of CIS-nodes in the cluster that fulfil the VDU requirements. It triggers actions toward the CIS to align the actual to the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available at any specific point in time. In addition, an MCIO controller maintains properties and runtime information on the MCIO instances which have been created based on the same VDU. The McioInfo data structure provides the runtime information on the MCIOs obtained from the MCIO controller.\nNOTE: There are different types of MCIOs. The set of VNFC instances based on the same VDU is represented \n by one MCIO, e.g. of type Deployment. Each individual VNFC instance is represented by another type \n of MCIO, e.g. a POD.\n\nRuntime information of the set of OS containers realizing an individual VNFC instance is not part of the McioInfo data structure; such runtime information is provided in the ResourceHandle data structure referenced from the VnfcResourceInfo. The McioInfo does not provide runtime information of a constituent VNFC instance created based on a specific VDU.\nNOTE 1: The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from \n the CISM. EXAMPLE: In case of MCIOs managed by Kubernetes┬«, the type of MCIO corresponds to the \n \"kind\" property of the declarative descriptor.\nNOTE 2: If the attribute additionalInfo is present, it may contain runtime information on the actual and \n desired state of the MCIO(s). \nNOTE 3: When the container infrastructure service is a Kubernetes┬« instance, the mcioId is the combined \n values from the kind and name fields of the Kubernetes resource object, separated by a slash. \n Example: \"Deployment/abcd\". \nNOTE 4: When the container infrastructure service is a Kubernetes┬« instance, the mcioName is the name \n field of the resource object. \n", "type": "object", "required": [ "mcioId", @@ -2996,7 +3145,7 @@ } }, "metadata": { - "description": "Additional VNF-specific attributes that provide metadata describing the VNF instance. These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that invoke the VNF lifecycle management interface. They are not consumed by the VNFM, or the lifecycle management scripts.\nModifying the values of these attributes has no effect on the VNF instance, it only affects the information represented in the VnfInstance structure. Metadata that the VNF provider foresees are expected to be declared in the VNFD. (clause 6.2.35 in ETSI GS NFV-SOL 001 [12]), like information about supported protocols and data models for configuring the VNF. The declaration of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4. The VNFM shall accept requests to write metadata that are not declared in the VNFD.\nThese attributes can be initialized with default values from VNFD (see note 4) and/or with values passed in the CreateVnfRequest structure (see clause 5.5.2.3).\nThese attributes can be created, modified or removed with the PATCH method.\n", + "description": "Additional VNF-specific attributes that provide metadata describing the VNF instance. These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that invoke the VNF lifecycle management interface. They are not consumed by the VNFM, or the lifecycle management scripts.\nModifying the values of these attributes has no effect on the VNF instance, it only affects the information represented in the VnfInstance structure. Metadata that the VNF provider foresees are expected to be declared in the VNFD. (clause 6.2.35 in ETSI GS NFV-SOL 001 [12]), like information about supported protocols and data models for configuring the VNF. The declaration of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4. The VNFM shall accept requests to write metadata that are not declared in the VNFD.\nThese attributes can be initialized with default values from VNFD (see note 4) and/or with values passed in the CreateVnfRequest structure (see clause 5.5.2.3).\nThese attributes can be created, modified or removed with the PATCH method.\n", "type": "object" }, "extensions": { @@ -3180,6 +3329,194 @@ } } } + }, + "recentVnfLcmOperationLinks": { + "description": "Links to the most recent LCM operation occurrences related to this resource. See note 9.\n", + "type": "object", + "properties": { + "recentVnfLcmOperation": { + "description": "Link to the most recent LCM operation occurrence of any type that has been triggered on this VNF instance, such as Instantiate, Scale or Heal.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmInstantiation": { + "description": "Link to the most recent LCM operation occurrence of type \"INSTANTIATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmScale": { + "description": "Link to the most recent LCM operation occurrence of type \"SCALE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmScaleToLevel": { + "description": "Link to the most recent LCM operation occurrence of type \"SCALE_TO_LEVEL\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeFlavour": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_FLAVOUR\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmTerminate": { + "description": "Link to the most recent LCM operation occurrence of type \"TERMINATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmHeal": { + "description": "Link to the most recent LCM operation occurrence of type \"HEAL\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmOperate": { + "description": "Link to the most recent LCM operation occurrence of type \"OPERATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeExtConn": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_EXT_CONN\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmModifyInfo": { + "description": "Link to the most recent LCM operation occurrence of type \"MODIFY_INFO\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmCreateSnapshot": { + "description": "Link to the most recent LCM operation occurrence of type \"CREATE_SNAPSHOT\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmRevertToSnapshot": { + "description": "Link to the most recent LCM operation occurrence of type \"REVERT_TO_SNAPSHOT\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeVnfPkg": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_VNFPKG\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmSelectDplMods": { + "description": "Link to the most recent LCM operation occurrence of type \"SELECT_DEPL_MODS\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + } + } } } }, diff --git a/SOL002/VNFLifecycleManagement-API/schemas/vnfInstance.schema.json b/SOL002/VNFLifecycleManagement-API/schemas/vnfInstance.schema.json index 22fd0df67a1154f99eea8c053fcc826073323c7e..0b12d11754af2a7ae63537da8f302ddb5c95dda7 100644 --- a/SOL002/VNFLifecycleManagement-API/schemas/vnfInstance.schema.json +++ b/SOL002/VNFLifecycleManagement-API/schemas/vnfInstance.schema.json @@ -1,5 +1,5 @@ { - "description": "This type represents a VNF instance. * NOTE 1:\tModifying the value of this attribute shall not be performed when conflicts exist\n between the previous and the newly referred VNF package, i.e. when the new VNFD is\n changed with respect to the previous VNFD in other aspects than merely referencing\n to other VNF software images. In order to avoid misalignment of the VnfInstance with\n the current VNF's on-boarded VNF package, the values of attributes in the VnfInstance\n that have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD.\n* NOTE 2:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. * NOTE 3:\tThese attributes are sometimes also referred to as configuration parameters\n applicable to a VNF. Some of these are set prior to instantiation and cannot be modified\n if the VNF is instantiated, some are set prior to instantiation (are part of initial configuration)\n and can be modified later, and others can be set only after instantiation.\n The applicability of certain configuration may depend on the VNF and the required operation of\n the VNF at a certain point in time.\n* NOTE 4:\tUpon creation of the VnfInstance structure, the VNFM shall create and initialize all child\n attributes of \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that were declared\n in the VNFD with a defined initial value. The defined initial values can be declared in the VNFD,\n and/or, in case of \"metadata\", obtained from the \"CreateVnfRequest\" structure. Child attributes of\n \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that have no defined initial value shall\n not be created, in order to be consistent with the semantics of the JSON Merge Patch method\n (see IETF RFC 7396) that interprets null values as deletion request.\n* NOTE 5:\tIt is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case\n of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding\n to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc\n and externally-managed multi-site VL instance (refer to clause 5.5.3.5).\n* NOTE 6:\tEven though externally-managed internal VLs are also used for VNF-internal connectivity,\n they shall not be listed in the \"vnfVirtualLinkResourceInfo\" attribute as this would be redundant.\n* NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP \n packets with any VLAN tag as long as the network interface to connect to the secondary container cluster \n network has been configured appropriately. Thus, no individual extCpInfo, except the one representing the \n trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.\n* NOTE 8: For a scaling aspect whose related VNFCs have not been instantiated due to the selection of deployable \n modules, the /"scaleStatus/" indicates the scale level that would be applicable to the aspect if a VNF LCM \n operation changes the selected deployable modules and the related VNFCs are instantiated, unless the VNF \n LCM operation explicitly indicates the scale level for the aspect.\n", + "description": "This type represents a VNF instance. * NOTE 1:\tModifying the value of this attribute shall not be performed when conflicts exist\n between the previous and the newly referred VNF package, i.e. when the new VNFD is\n changed with respect to the previous VNFD in other aspects than merely referencing\n to other VNF software images. In order to avoid misalignment of the VnfInstance with\n the current VNF's on-boarded VNF package, the values of attributes in the VnfInstance\n that have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD.\n* NOTE 2:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. * NOTE 3:\tThese attributes are sometimes also referred to as configuration parameters\n applicable to a VNF. Some of these are set prior to instantiation and cannot be modified\n if the VNF is instantiated, some are set prior to instantiation (are part of initial configuration)\n and can be modified later, and others can be set only after instantiation.\n The applicability of certain configuration may depend on the VNF and the required operation of\n the VNF at a certain point in time.\n* NOTE 4:\tUpon creation of the VnfInstance structure, the VNFM shall create and initialize all child\n attributes of \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that were declared\n in the VNFD with a defined initial value. The defined initial values can be declared in the VNFD,\n and/or, in case of \"metadata\", obtained from the \"CreateVnfRequest\" structure. Child attributes of\n \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that have no defined initial value shall\n not be created, in order to be consistent with the semantics of the JSON Merge Patch method\n (see IETF RFC 7396) that interprets null values as deletion request.\n* NOTE 5:\tIt is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case\n of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding\n to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc\n and externally-managed multi-site VL instance (refer to clause 5.5.3.5).\n* NOTE 6:\tEven though externally-managed internal VLs are also used for VNF-internal connectivity,\n they shall not be listed in the \"vnfVirtualLinkResourceInfo\" attribute as this would be redundant.\n* NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP \n packets with any VLAN tag as long as the network interface to connect to the secondary container cluster \n network has been configured appropriately. Thus, no individual extCpInfo, except the one representing the \n trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.\n* NOTE 8: For a scaling aspect whose related VNFCs have not been instantiated due to the selection of deployable \n modules, the “scaleStatus” indicates the scale level that would be applicable to the aspect if a VNF LCM \n operation changes the selected deployable modules and the related VNFCs are instantiated, unless the VNF \n LCM operation explicitly indicates the scale level for the aspect.\n* NOTE 9: The recentVnfLcmOperationLinks attribute does not provide a complete historical record of LCM changes\n that a VNF instance experienced during its lifecycle. The information in this attribute should not be used to\n create a chronological order of events that cannot be inferred by looking only at the most recent operation\n occurrences due to potential gaps in timeline. This is because there can be many possible combination of\n LCM changes that a VNF may have gone through between two operation occurrences recorded in the\n recentVnfLcmOperationLinks attribute. For example, there can be many scaling related LCM changes since\n an individual VNF instance has been instantiated until the most recent scaling operation occurrence linked in\n the attribute. In another example, the most recent LCM operation occurrence related to instantiate VNF\n operation may be more recent than the one that caused the VNF instance to be terminated last time, which\n prevents the possibility to create a meaningful chronological timeline of VNF LCM events.\n", "type": "object", "required": [ "id", @@ -352,6 +352,47 @@ "STOPPED" ] }, + "vnfPowerState": { + "description": "The power state of the VNF instance. Only present if the VNF instance\n is in a power state or a scale status (refer to attribute \"scaleStatus\")\n that has an associated power profile, as defined in the VNFD.\n", + "type": "object", + "required": [ + "powerProfileId", + "name" + ], + "properties": { + "powerProfileId": { + "description": "Identifier of the power profile, as defined in the VNFD, applied to the VNF instance.\n", + "type": "string" + }, + "name": { + "description": "Name of the power profile as provided in the VNFD.\n", + "type": "string" + }, + "powerConsumptionInfo": { + "description": "Estimated power consumption information of the resources associated with this power profile, as provided in the VNFD. VNFM exposes and can use this information to control the VNF instance to operate according to the power profile and selected power state, e.g. monitoring actual energy or power consumption of the VNF instance and compare against the estimated one.\n", + "type": "object", + "required": [ + "minPowerConsumption", + "maxPowerConsumption", + "averagePowerConsumption" + ], + "properties": { + "minPowerConsumption": { + "description": "Minimum power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + }, + "maxPowerConsumption": { + "description": "Maximum power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + }, + "averagePowerConsumption": { + "description": "Average power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + } + } + } + } + }, "scaleStatus": { "description": "Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how \"big\" the VNF has been scaled w.r.t. that aspect. This attribute shall be present if the VNF supports scaling. See clause B.2 for an explanation of VNF scaling. For an aspect that has not been deployed because the related deployableModule has not been selected, it indicates the scale level that has been requested in the instantiation or in a scaling operation, or, if none has been requested in any of them, the scale level applicable to the aspect based on the default instantiation level. See note 8.\n", "type": "array", @@ -541,6 +582,27 @@ "description": "A number defined in IETF RFC 8259.\n", "type": "number" } + }, + "cpuPowerStateRequirements": { + "description": "Requirements of virtual CPU power state configuration data for the OS container resource.\n", + "type": "object", + "required": [ + "cpuPowerStateManagementPolicy" + ], + "properties": { + "cpuPowerStateManagementPolicy": { + "description": "Indicates the policy for CPU power state management. Permitted values:\n * STATIC\n * DYNAMIC\nIn case of \"STATIC\", the virtual CPU cores are requested to be allocated to logical CPU cores according to the cpuOperationalPowerStates attribute. In case of \"DYNAMIC\", the CPU power states of virtual CPU cores can be allocated to logical CPU cores whose power states can be adjusted dynamically depending on core utilization\n* NOTE 1: In case the value of the \"cpuPowerStateManagementPolicy\" attribute is \"DYNAMIC\", dynamic adjustment of CPU power states of logical CPU cores should adhere to the range of CPU P and C states defined in the \"cpuOperationalPowerStates\" attribute.", + "type": "string", + "enum": [ + "STATIC", + "DYNAMIC" + ] + }, + "cpuOperationalPowerStates": { + "description": "Provides the lists of operational power states (i.e. P and C states) defined for the virtual CPU.\n* NOTE 2: In case the value of the \"cpuPowerStateManagementPolicy\" attribute is \"STATIC\", the cpuOperationalPowerStates attribute shall contain only one set of CPU P and C states requested for the virtual CPU. If the value of the cpuPowerStateManagementPolicy attribute is \"DYNAMIC\", multiple CPU P and C states can be defined to indicate the range of allowed P/C state values during dynamic power state management.", + "type": "object" + } + } } } } @@ -602,6 +664,27 @@ "description": "A number defined in IETF RFC 8259.\n", "type": "number" } + }, + "cpuPowerStateRequirements": { + "description": "Requirements of virtual CPU power state configuration data for the virtual compute resource.\n", + "type": "object", + "required": [ + "cpuPowerStateManagementPolicy" + ], + "properties": { + "cpuPowerStateManagementPolicy": { + "description": "Indicates the policy for CPU power state management. Permitted values:\n * STATIC\n * DYNAMIC\nIn case of \"STATIC\", the virtual CPU cores are requested to be allocated to logical CPU cores according to the cpuOperationalPowerStates attribute. In case of \"DYNAMIC\", the CPU power states of virtual CPU cores can be allocated to logical CPU cores whose power states can be adjusted dynamically depending on core utilization (see note 1).\n", + "type": "string", + "enum": [ + "STATIC", + "DYNAMIC" + ] + }, + "cpuOperationalPowerStates": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + } + } } } }, @@ -635,7 +718,7 @@ "type": "array", "minItems": 1, "items": { - "description": "This type represents information about an external CP of a VNF.\nNOTE 1:\tThe attributes \"associatedVnfcCpId\", \"associatedVipCpId\", \"associatedVirtualCpId\" and \n \"associatedVnfVirtualLinkId\" are mutually exclusive. Exactly one shall be present.\nNOTE 2:\tAn external CP instance is not associated to a link port in the cases indicated for the \n /"extLinkPorts/" attribute in clause 4.4.1.11.\nNOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network \n attachment definition resource is needed to fulfil the connectivity requirements of the external \n CP, e.g. to build a link redundant mated pair in SR-IOV cases.\nNOTE 4: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.\n", + "description": "This type represents information about an external CP of a VNF.\nNOTE 1:\tThe attributes \"associatedVnfcCpId\", \"associatedVipCpId\", \"associatedVirtualCpId\" and \n \"associatedVnfVirtualLinkId\" are mutually exclusive. Exactly one shall be present.\nNOTE 2:\tAn external CP instance is not associated to a link port in the cases indicated for the \n \"extLinkPorts\" attribute in clause 4.4.1.11.\nNOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network \n attachment definition resource is needed to fulfil the connectivity requirements of the external \n CP, e.g. to build a link redundant mated pair in SR-IOV cases.\nNOTE 4: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.\n", "type": "object", "required": [ "id", @@ -852,7 +935,7 @@ "type": "string" }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceInfo/" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 3 and 4. It shall be present if the external CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", + "description": "Identifier of the \"NetAttDefResourceInfo\" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 3 and 4. It shall be present if the external CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", @@ -866,6 +949,47 @@ "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupInfo": { + "description": "List of active security group rules applied to this external CP instance. The attribute identifies which \"SecurityGroupRule\" specified in the VNFD are activated and the values of its attributes.\n", + "type": "object", + "required": [ + "securityGroupRuleId", + "etherType", + "protocol", + "portRangeMin", + "portRangeMax" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "description": { + "description": "Human readable description of the security group rule.\n", + "type": "string" + }, + "etherType": { + "description": "Indicates the protocol carried over the Ethernet layer. Permitted values: IPV4, IPV6.\n", + "type": "string", + "enum": [ + "IPV4", + "IPV6" + ] + }, + "protocol": { + "description": "Indicates the protocol carried over the IP layer. Permitted values: any protocol defined in the IANA protocol registry (refer to clause 9.10.1.2 ofd ETSI GS NFV-SOL 001 for further information).\n", + "type": "string" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule.\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule.\n", + "type": "integer" + } + } } } } @@ -1516,7 +1640,7 @@ "description": "Map of instance data that need to be configured on the CP instances created from the respective CPD. The key of the map which identifies the individual VnfExtCpConfig entries is of type \"IdentifierInVnf\" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). See notes 2, 3, 4, 5 and 6. In case of deleting an external CP, the list of instances to be deleted. \n", "type": "object", "additionalProperties": { - "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes /"netAttDefResourceId/" and /"cpProtocolData/" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", + "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes \"netAttDefResourceId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", "anyOf": [ { "required": [ @@ -1731,25 +1855,50 @@ "type": "array", "items": { "type": "string" - } + } }, "relativeDomainNames": { "description": "Specifies values of relative domain names to be considered when setting the fully qualified domain names.\n", "type": "array", "items": { - "type": "string" + "type": "string" } } } } }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceData/" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", + "description": "Identifier of the \"NetAttDefResourceData\" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupData": { + "description": "Parameters for modifying and overriding security groups information bound to this CP. The parameters identify which \"SecurityGroupRule\" specified in the VNFD is activated/deactivated and for an activated security group rule the values of attributes defined in the VNFD that can be overridden such as \"portRangeMin\" and \"portRangeMax\". If no security group configuration is provided for a given \"SecurityGroupRule\" specified in the VNFD as part of this attribute, the VNFM shall use the configuration as specified in the VNFD.\n", + "type": "object", + "required": [ + "securityGroupRuleId" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "isActivated": { + "description": "Indicates whether the rule is to be active (true) or inactive (false). If no attribute value is provided, the Security Group Rule is activated by default.\n", + "type": "boolean" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + } + } } } } @@ -2480,7 +2629,7 @@ "type": "string" }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceInfo/" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 5 and 6. It shall be present if the internal CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", + "description": "Identifier of the \"NetAttDefResourceInfo\" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 5 and 6. It shall be present if the internal CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", @@ -2488,13 +2637,13 @@ } }, "certificateContentId": { - "description": "Identifier(s) of the \"CertificateContent\" structure that provides the information of the certificate(s) that this VNFC CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present. This attribute shall be supported when delegation mode in certificate management is applicable.\n", - "type": "array", - "items": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - } - }, + "description": "Identifier(s) of the \"CertificateContent\" structure that provides the information of the certificate(s) that this VNFC CP instance uses. Shall be present when using in delegation-mode. Otherwise shall not be present. This attribute shall be supported when delegation mode in certificate management is applicable.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" + } + }, "metadata": { "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", "type": "object" @@ -2512,7 +2661,7 @@ "items": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" - } + } } } } @@ -2806,7 +2955,7 @@ "description": "Information on the MCIO(s) representing VNFC instance(s) realized by one or a set of OS containers and created from the same VDU for the VNF instance.\n", "type": "array", "items": { - "description": "This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of OS containers which have been created based on the same VDU. Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC instances realized by one or a set of OS containers and compare it to the desired state. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to FALSE the desired state is specified in the respective declarative descriptor. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to TRUE, the desired state is determined by the number of CIS-nodes in the cluster that fulfil the VDU requirements. It triggers actions toward the CIS to align the actual to the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available at any specific point in time. In addition, an MCIO controller maintains properties and runtime information on the MCIO instances which have been created based on the same VDU. The McioInfo data structure provides the runtime information on the MCIOs obtained from the MCIO controller.\nNOTE: There are different types of MCIOs. The set of VNFC instances based on the same VDU is represented \n by one MCIO, e.g. of type Deployment. Each individual VNFC instance is represented by another type \n of MCIO, e.g. a POD.\n\nRuntime information of the set of OS containers realizing an individual VNFC instance is not part of the McioInfo data structure; such runtime information is provided in the ResourceHandle data structure referenced from the VnfcResourceInfo. The McioInfo does not provide runtime information of a constituent VNFC instance created based on a specific VDU.\nNOTE 1: The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from \n the CISM. EXAMPLE: In case of MCIOs managed by Kubernetes┬«, the type of MCIO corresponds to the \n /"kind/" property of the declarative descriptor.\nNOTE 2: If the attribute additionalInfo is present, it may contain runtime information on the actual and \n desired state of the MCIO(s). \nNOTE 3: When the container infrastructure service is a Kubernetes┬« instance, the mcioId is the combined \n values from the kind and name fields of the Kubernetes resource object, separated by a slash. \n Example: \"Deployment/abcd\". \nNOTE 4: When the container infrastructure service is a Kubernetes┬« instance, the mcioName is the name \n field of the resource object. \n", + "description": "This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of OS containers which have been created based on the same VDU. Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC instances realized by one or a set of OS containers and compare it to the desired state. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to FALSE the desired state is specified in the respective declarative descriptor. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to TRUE, the desired state is determined by the number of CIS-nodes in the cluster that fulfil the VDU requirements. It triggers actions toward the CIS to align the actual to the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available at any specific point in time. In addition, an MCIO controller maintains properties and runtime information on the MCIO instances which have been created based on the same VDU. The McioInfo data structure provides the runtime information on the MCIOs obtained from the MCIO controller.\nNOTE: There are different types of MCIOs. The set of VNFC instances based on the same VDU is represented \n by one MCIO, e.g. of type Deployment. Each individual VNFC instance is represented by another type \n of MCIO, e.g. a POD.\n\nRuntime information of the set of OS containers realizing an individual VNFC instance is not part of the McioInfo data structure; such runtime information is provided in the ResourceHandle data structure referenced from the VnfcResourceInfo. The McioInfo does not provide runtime information of a constituent VNFC instance created based on a specific VDU.\nNOTE 1: The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from \n the CISM. EXAMPLE: In case of MCIOs managed by Kubernetes┬«, the type of MCIO corresponds to the \n \"kind\" property of the declarative descriptor.\nNOTE 2: If the attribute additionalInfo is present, it may contain runtime information on the actual and \n desired state of the MCIO(s). \nNOTE 3: When the container infrastructure service is a Kubernetes┬« instance, the mcioId is the combined \n values from the kind and name fields of the Kubernetes resource object, separated by a slash. \n Example: \"Deployment/abcd\". \nNOTE 4: When the container infrastructure service is a Kubernetes┬« instance, the mcioName is the name \n field of the resource object. \n", "type": "object", "required": [ "mcioId", @@ -2940,7 +3089,7 @@ } }, "metadata": { - "description": "Additional VNF-specific attributes that provide metadata describing the VNF instance. These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that invoke the VNF lifecycle management interface. They are not consumed by the VNFM, or the lifecycle management scripts.\nModifying the values of these attributes has no effect on the VNF instance, it only affects the information represented in the VnfInstance structure. Metadata that the VNF provider foresees are expected to be declared in the VNFD. (clause 6.2.35 in ETSI GS NFV-SOL 001 [12]), like information about supported protocols and data models for configuring the VNF. The declaration of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4. The VNFM shall accept requests to write metadata that are not declared in the VNFD.\nThese attributes can be initialized with default values from VNFD (see note 4) and/or with values passed in the CreateVnfRequest structure (see clause 5.5.2.3).\nThese attributes can be created, modified or removed with the PATCH method.\n", + "description": "Additional VNF-specific attributes that provide metadata describing the VNF instance. These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that invoke the VNF lifecycle management interface. They are not consumed by the VNFM, or the lifecycle management scripts.\nModifying the values of these attributes has no effect on the VNF instance, it only affects the information represented in the VnfInstance structure. Metadata that the VNF provider foresees are expected to be declared in the VNFD. (clause 6.2.35 in ETSI GS NFV-SOL 001 [12]), like information about supported protocols and data models for configuring the VNF. The declaration of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4. The VNFM shall accept requests to write metadata that are not declared in the VNFD.\nThese attributes can be initialized with default values from VNFD (see note 4) and/or with values passed in the CreateVnfRequest structure (see clause 5.5.2.3).\nThese attributes can be created, modified or removed with the PATCH method.\n", "type": "object" }, "extensions": { @@ -3124,6 +3273,194 @@ } } } + }, + "recentVnfLcmOperationLinks": { + "description": "Links to the most recent LCM operation occurrences related to this resource. See note 9.\n", + "type": "object", + "properties": { + "recentVnfLcmOperation": { + "description": "Link to the most recent LCM operation occurrence of any type that has been triggered on this VNF instance, such as Instantiate, Scale or Heal.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmInstantiation": { + "description": "Link to the most recent LCM operation occurrence of type \"INSTANTIATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmScale": { + "description": "Link to the most recent LCM operation occurrence of type \"SCALE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmScaleToLevel": { + "description": "Link to the most recent LCM operation occurrence of type \"SCALE_TO_LEVEL\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeFlavour": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_FLAVOUR\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmTerminate": { + "description": "Link to the most recent LCM operation occurrence of type \"TERMINATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmHeal": { + "description": "Link to the most recent LCM operation occurrence of type \"HEAL\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmOperate": { + "description": "Link to the most recent LCM operation occurrence of type \"OPERATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeExtConn": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_EXT_CONN\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmModifyInfo": { + "description": "Link to the most recent LCM operation occurrence of type \"MODIFY_INFO\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmCreateSnapshot": { + "description": "Link to the most recent LCM operation occurrence of type \"CREATE_SNAPSHOT\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmRevertToSnapshot": { + "description": "Link to the most recent LCM operation occurrence of type \"REVERT_TO_SNAPSHOT\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeVnfPkg": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_VNFPKG\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmSelectDplMods": { + "description": "Link to the most recent LCM operation occurrence of type \"SELECT_DEPL_MODS\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + } + } } } } \ No newline at end of file diff --git a/SOL002/VNFLifecycleManagement-API/schemas/vnfInstances.schema.json b/SOL002/VNFLifecycleManagement-API/schemas/vnfInstances.schema.json index b8b526e57d5c198cd77a68aa9ad10e9bfa1154dc..acf9f478758de5eeb891893ebd9539a52c558864 100644 --- a/SOL002/VNFLifecycleManagement-API/schemas/vnfInstances.schema.json +++ b/SOL002/VNFLifecycleManagement-API/schemas/vnfInstances.schema.json @@ -1,7 +1,7 @@ { "type": "array", "items": { - "description": "This type represents a VNF instance. * NOTE 1:\tModifying the value of this attribute shall not be performed when conflicts exist\n between the previous and the newly referred VNF package, i.e. when the new VNFD is\n changed with respect to the previous VNFD in other aspects than merely referencing\n to other VNF software images. In order to avoid misalignment of the VnfInstance with\n the current VNF's on-boarded VNF package, the values of attributes in the VnfInstance\n that have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD.\n* NOTE 2:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. * NOTE 3:\tThese attributes are sometimes also referred to as configuration parameters\n applicable to a VNF. Some of these are set prior to instantiation and cannot be modified\n if the VNF is instantiated, some are set prior to instantiation (are part of initial configuration)\n and can be modified later, and others can be set only after instantiation.\n The applicability of certain configuration may depend on the VNF and the required operation of\n the VNF at a certain point in time.\n* NOTE 4:\tUpon creation of the VnfInstance structure, the VNFM shall create and initialize all child\n attributes of \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that were declared\n in the VNFD with a defined initial value. The defined initial values can be declared in the VNFD,\n and/or, in case of \"metadata\", obtained from the \"CreateVnfRequest\" structure. Child attributes of\n \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that have no defined initial value shall\n not be created, in order to be consistent with the semantics of the JSON Merge Patch method\n (see IETF RFC 7396) that interprets null values as deletion request.\n* NOTE 5:\tIt is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case\n of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding\n to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc\n and externally-managed multi-site VL instance (refer to clause 5.5.3.5).\n* NOTE 6:\tEven though externally-managed internal VLs are also used for VNF-internal connectivity,\n they shall not be listed in the \"vnfVirtualLinkResourceInfo\" attribute as this would be redundant.\n* NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP \n packets with any VLAN tag as long as the network interface to connect to the secondary container cluster \n network has been configured appropriately. Thus, no individual extCpInfo, except the one representing the \n trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.\n* NOTE 8: For a scaling aspect whose related VNFCs have not been instantiated due to the selection of deployable \n modules, the /"scaleStatus/" indicates the scale level that would be applicable to the aspect if a VNF LCM \n operation changes the selected deployable modules and the related VNFCs are instantiated, unless the VNF \n LCM operation explicitly indicates the scale level for the aspect.\n", + "description": "This type represents a VNF instance. * NOTE 1:\tModifying the value of this attribute shall not be performed when conflicts exist\n between the previous and the newly referred VNF package, i.e. when the new VNFD is\n changed with respect to the previous VNFD in other aspects than merely referencing\n to other VNF software images. In order to avoid misalignment of the VnfInstance with\n the current VNF's on-boarded VNF package, the values of attributes in the VnfInstance\n that have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD.\n* NOTE 2:\tETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. * NOTE 3:\tThese attributes are sometimes also referred to as configuration parameters\n applicable to a VNF. Some of these are set prior to instantiation and cannot be modified\n if the VNF is instantiated, some are set prior to instantiation (are part of initial configuration)\n and can be modified later, and others can be set only after instantiation.\n The applicability of certain configuration may depend on the VNF and the required operation of\n the VNF at a certain point in time.\n* NOTE 4:\tUpon creation of the VnfInstance structure, the VNFM shall create and initialize all child\n attributes of \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that were declared\n in the VNFD with a defined initial value. The defined initial values can be declared in the VNFD,\n and/or, in case of \"metadata\", obtained from the \"CreateVnfRequest\" structure. Child attributes of\n \"vnfConfigurableProperties\", \"metadata\" and \"extensions\" that have no defined initial value shall\n not be created, in order to be consistent with the semantics of the JSON Merge Patch method\n (see IETF RFC 7396) that interprets null values as deletion request.\n* NOTE 5:\tIt is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case\n of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding\n to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc\n and externally-managed multi-site VL instance (refer to clause 5.5.3.5).\n* NOTE 6:\tEven though externally-managed internal VLs are also used for VNF-internal connectivity,\n they shall not be listed in the \"vnfVirtualLinkResourceInfo\" attribute as this would be redundant.\n* NOTE 7: Subports need not be used for containerized VNFCs. The application container can send and receive IP \n packets with any VLAN tag as long as the network interface to connect to the secondary container cluster \n network has been configured appropriately. Thus, no individual extCpInfo, except the one representing the \n trunk, need be modelled to allow traffic tagged with a particular VLAN through the connection point.\n* NOTE 8: For a scaling aspect whose related VNFCs have not been instantiated due to the selection of deployable \n modules, the “scaleStatus” indicates the scale level that would be applicable to the aspect if a VNF LCM \n operation changes the selected deployable modules and the related VNFCs are instantiated, unless the VNF \n LCM operation explicitly indicates the scale level for the aspect.\n* NOTE 9: The recentVnfLcmOperationLinks attribute does not provide a complete historical record of LCM changes\n that a VNF instance experienced during its lifecycle. The information in this attribute should not be used to\n create a chronological order of events that cannot be inferred by looking only at the most recent operation\n occurrences due to potential gaps in timeline. This is because there can be many possible combination of\n LCM changes that a VNF may have gone through between two operation occurrences recorded in the\n recentVnfLcmOperationLinks attribute. For example, there can be many scaling related LCM changes since\n an individual VNF instance has been instantiated until the most recent scaling operation occurrence linked in\n the attribute. In another example, the most recent LCM operation occurrence related to instantiate VNF\n operation may be more recent than the one that caused the VNF instance to be terminated last time, which\n prevents the possibility to create a meaningful chronological timeline of VNF LCM events.\n", "type": "object", "required": [ "id", @@ -354,6 +354,47 @@ "STOPPED" ] }, + "vnfPowerState": { + "description": "The power state of the VNF instance. Only present if the VNF instance\n is in a power state or a scale status (refer to attribute \"scaleStatus\")\n that has an associated power profile, as defined in the VNFD.\n", + "type": "object", + "required": [ + "powerProfileId", + "name" + ], + "properties": { + "powerProfileId": { + "description": "Identifier of the power profile, as defined in the VNFD, applied to the VNF instance.\n", + "type": "string" + }, + "name": { + "description": "Name of the power profile as provided in the VNFD.\n", + "type": "string" + }, + "powerConsumptionInfo": { + "description": "Estimated power consumption information of the resources associated with this power profile, as provided in the VNFD. VNFM exposes and can use this information to control the VNF instance to operate according to the power profile and selected power state, e.g. monitoring actual energy or power consumption of the VNF instance and compare against the estimated one.\n", + "type": "object", + "required": [ + "minPowerConsumption", + "maxPowerConsumption", + "averagePowerConsumption" + ], + "properties": { + "minPowerConsumption": { + "description": "Minimum power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + }, + "maxPowerConsumption": { + "description": "Maximum power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + }, + "averagePowerConsumption": { + "description": "Average power consumption of this power profile. Unit is KW/h.\n", + "type": "integer" + } + } + } + } + }, "scaleStatus": { "description": "Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how \"big\" the VNF has been scaled w.r.t. that aspect. This attribute shall be present if the VNF supports scaling. See clause B.2 for an explanation of VNF scaling. For an aspect that has not been deployed because the related deployableModule has not been selected, it indicates the scale level that has been requested in the instantiation or in a scaling operation, or, if none has been requested in any of them, the scale level applicable to the aspect based on the default instantiation level. See note 8.\n", "type": "array", @@ -543,6 +584,27 @@ "description": "A number defined in IETF RFC 8259.\n", "type": "number" } + }, + "cpuPowerStateRequirements": { + "description": "Requirements of virtual CPU power state configuration data for the OS container resource.\n", + "type": "object", + "required": [ + "cpuPowerStateManagementPolicy" + ], + "properties": { + "cpuPowerStateManagementPolicy": { + "description": "Indicates the policy for CPU power state management. Permitted values:\n * STATIC\n * DYNAMIC\nIn case of \"STATIC\", the virtual CPU cores are requested to be allocated to logical CPU cores according to the cpuOperationalPowerStates attribute. In case of \"DYNAMIC\", the CPU power states of virtual CPU cores can be allocated to logical CPU cores whose power states can be adjusted dynamically depending on core utilization\n* NOTE 1: In case the value of the \"cpuPowerStateManagementPolicy\" attribute is \"DYNAMIC\", dynamic adjustment of CPU power states of logical CPU cores should adhere to the range of CPU P and C states defined in the \"cpuOperationalPowerStates\" attribute.", + "type": "string", + "enum": [ + "STATIC", + "DYNAMIC" + ] + }, + "cpuOperationalPowerStates": { + "description": "Provides the lists of operational power states (i.e. P and C states) defined for the virtual CPU.\n* NOTE 2: In case the value of the \"cpuPowerStateManagementPolicy\" attribute is \"STATIC\", the cpuOperationalPowerStates attribute shall contain only one set of CPU P and C states requested for the virtual CPU. If the value of the cpuPowerStateManagementPolicy attribute is \"DYNAMIC\", multiple CPU P and C states can be defined to indicate the range of allowed P/C state values during dynamic power state management.", + "type": "object" + } + } } } } @@ -604,6 +666,27 @@ "description": "A number defined in IETF RFC 8259.\n", "type": "number" } + }, + "cpuPowerStateRequirements": { + "description": "Requirements of virtual CPU power state configuration data for the virtual compute resource.\n", + "type": "object", + "required": [ + "cpuPowerStateManagementPolicy" + ], + "properties": { + "cpuPowerStateManagementPolicy": { + "description": "Indicates the policy for CPU power state management. Permitted values:\n * STATIC\n * DYNAMIC\nIn case of \"STATIC\", the virtual CPU cores are requested to be allocated to logical CPU cores according to the cpuOperationalPowerStates attribute. In case of \"DYNAMIC\", the CPU power states of virtual CPU cores can be allocated to logical CPU cores whose power states can be adjusted dynamically depending on core utilization (see note 1).\n", + "type": "string", + "enum": [ + "STATIC", + "DYNAMIC" + ] + }, + "cpuOperationalPowerStates": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + } + } } } }, @@ -637,7 +720,7 @@ "type": "array", "minItems": 1, "items": { - "description": "This type represents information about an external CP of a VNF.\nNOTE 1:\tThe attributes \"associatedVnfcCpId\", \"associatedVipCpId\", \"associatedVirtualCpId\" and \n \"associatedVnfVirtualLinkId\" are mutually exclusive. Exactly one shall be present.\nNOTE 2:\tAn external CP instance is not associated to a link port in the cases indicated for the \n /"extLinkPorts/" attribute in clause 4.4.1.11.\nNOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network \n attachment definition resource is needed to fulfil the connectivity requirements of the external \n CP, e.g. to build a link redundant mated pair in SR-IOV cases.\nNOTE 4: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.\n", + "description": "This type represents information about an external CP of a VNF.\nNOTE 1:\tThe attributes \"associatedVnfcCpId\", \"associatedVipCpId\", \"associatedVirtualCpId\" and \n \"associatedVnfVirtualLinkId\" are mutually exclusive. Exactly one shall be present.\nNOTE 2:\tAn external CP instance is not associated to a link port in the cases indicated for the \n \"extLinkPorts\" attribute in clause 4.4.1.11.\nNOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network \n attachment definition resource is needed to fulfil the connectivity requirements of the external \n CP, e.g. to build a link redundant mated pair in SR-IOV cases.\nNOTE 4: When more than one netAttDefResourceId is indicated, all shall belong to the same namespace.\n", "type": "object", "required": [ "id", @@ -854,7 +937,7 @@ "type": "string" }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceInfo/" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 3 and 4. It shall be present if the external CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", + "description": "Identifier of the \"NetAttDefResourceInfo\" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 3 and 4. It shall be present if the external CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", @@ -868,6 +951,47 @@ "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupInfo": { + "description": "List of active security group rules applied to this external CP instance. The attribute identifies which \"SecurityGroupRule\" specified in the VNFD are activated and the values of its attributes.\n", + "type": "object", + "required": [ + "securityGroupRuleId", + "etherType", + "protocol", + "portRangeMin", + "portRangeMax" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "description": { + "description": "Human readable description of the security group rule.\n", + "type": "string" + }, + "etherType": { + "description": "Indicates the protocol carried over the Ethernet layer. Permitted values: IPV4, IPV6.\n", + "type": "string", + "enum": [ + "IPV4", + "IPV6" + ] + }, + "protocol": { + "description": "Indicates the protocol carried over the IP layer. Permitted values: any protocol defined in the IANA protocol registry (refer to clause 9.10.1.2 ofd ETSI GS NFV-SOL 001 for further information).\n", + "type": "string" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule.\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule.\n", + "type": "integer" + } + } } } } @@ -1518,7 +1642,7 @@ "description": "Map of instance data that need to be configured on the CP instances created from the respective CPD. The key of the map which identifies the individual VnfExtCpConfig entries is of type \"IdentifierInVnf\" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). See notes 2, 3, 4, 5 and 6. In case of deleting an external CP, the list of instances to be deleted. \n", "type": "object", "additionalProperties": { - "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes /"netAttDefResourceId/" and /"cpProtocolData/" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", + "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes \"netAttDefResourceId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", "anyOf": [ { "required": [ @@ -1739,19 +1863,44 @@ "description": "Specifies values of relative domain names to be considered when setting the fully qualified domain names.\n", "type": "array", "items": { - "type": "string" - } + "type": "string" + } } } } }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceData/" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", + "description": "Identifier of the \"NetAttDefResourceData\" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupData": { + "description": "Parameters for modifying and overriding security groups information bound to this CP. The parameters identify which \"SecurityGroupRule\" specified in the VNFD is activated/deactivated and for an activated security group rule the values of attributes defined in the VNFD that can be overridden such as \"portRangeMin\" and \"portRangeMax\". If no security group configuration is provided for a given \"SecurityGroupRule\" specified in the VNFD as part of this attribute, the VNFM shall use the configuration as specified in the VNFD.\n", + "type": "object", + "required": [ + "securityGroupRuleId" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "isActivated": { + "description": "Indicates whether the rule is to be active (true) or inactive (false). If no attribute value is provided, the Security Group Rule is activated by default.\n", + "type": "boolean" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + } + } } } } @@ -2482,7 +2631,7 @@ "type": "string" }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceInfo/" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 5 and 6. It shall be present if the internal CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", + "description": "Identifier of the \"NetAttDefResourceInfo\" structure that provides the specification of the interface to attach the connection point to a secondary container cluster network. See notes 5 and 6. It shall be present if the internal CP is associated to a VNFC realized by one or a set of OS containers and is connected to a secondary container cluster network. It shall not be present otherwise.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", @@ -2808,7 +2957,7 @@ "description": "Information on the MCIO(s) representing VNFC instance(s) realized by one or a set of OS containers and created from the same VDU for the VNF instance.\n", "type": "array", "items": { - "description": "This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of OS containers which have been created based on the same VDU. Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC instances realized by one or a set of OS containers and compare it to the desired state. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to FALSE the desired state is specified in the respective declarative descriptor. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to TRUE, the desired state is determined by the number of CIS-nodes in the cluster that fulfil the VDU requirements. It triggers actions toward the CIS to align the actual to the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available at any specific point in time. In addition, an MCIO controller maintains properties and runtime information on the MCIO instances which have been created based on the same VDU. The McioInfo data structure provides the runtime information on the MCIOs obtained from the MCIO controller.\nNOTE: There are different types of MCIOs. The set of VNFC instances based on the same VDU is represented \n by one MCIO, e.g. of type Deployment. Each individual VNFC instance is represented by another type \n of MCIO, e.g. a POD.\n\nRuntime information of the set of OS containers realizing an individual VNFC instance is not part of the McioInfo data structure; such runtime information is provided in the ResourceHandle data structure referenced from the VnfcResourceInfo. The McioInfo does not provide runtime information of a constituent VNFC instance created based on a specific VDU.\nNOTE 1: The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from \n the CISM. EXAMPLE: In case of MCIOs managed by Kubernetes┬«, the type of MCIO corresponds to the \n /"kind/" property of the declarative descriptor.\nNOTE 2: If the attribute additionalInfo is present, it may contain runtime information on the actual and \n desired state of the MCIO(s). \nNOTE 3: When the container infrastructure service is a Kubernetes┬« instance, the mcioId is the combined \n values from the kind and name fields of the Kubernetes resource object, separated by a slash. \n Example: \"Deployment/abcd\". \nNOTE 4: When the container infrastructure service is a Kubernetes┬« instance, the mcioName is the name \n field of the resource object. \n", + "description": "This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of OS containers which have been created based on the same VDU. Within the CISM, an MCIO controller monitors the actual state of an MCIO representing the set of VNFC instances realized by one or a set of OS containers and compare it to the desired state. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to FALSE the desired state is specified in the respective declarative descriptor. For an MCIO related to a VDU that has the attribute \"isNumOfInstancesClusterBased\" set to TRUE, the desired state is determined by the number of CIS-nodes in the cluster that fulfil the VDU requirements. It triggers actions toward the CIS to align the actual to the desired state. Monitoring the actual state includes monitoring the number of MCIO instances available at any specific point in time. In addition, an MCIO controller maintains properties and runtime information on the MCIO instances which have been created based on the same VDU. The McioInfo data structure provides the runtime information on the MCIOs obtained from the MCIO controller.\nNOTE: There are different types of MCIOs. The set of VNFC instances based on the same VDU is represented \n by one MCIO, e.g. of type Deployment. Each individual VNFC instance is represented by another type \n of MCIO, e.g. a POD.\n\nRuntime information of the set of OS containers realizing an individual VNFC instance is not part of the McioInfo data structure; such runtime information is provided in the ResourceHandle data structure referenced from the VnfcResourceInfo. The McioInfo does not provide runtime information of a constituent VNFC instance created based on a specific VDU.\nNOTE 1: The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from \n the CISM. EXAMPLE: In case of MCIOs managed by Kubernetes┬«, the type of MCIO corresponds to the \n \"kind\" property of the declarative descriptor.\nNOTE 2: If the attribute additionalInfo is present, it may contain runtime information on the actual and \n desired state of the MCIO(s). \nNOTE 3: When the container infrastructure service is a Kubernetes┬« instance, the mcioId is the combined \n values from the kind and name fields of the Kubernetes resource object, separated by a slash. \n Example: \"Deployment/abcd\". \nNOTE 4: When the container infrastructure service is a Kubernetes┬« instance, the mcioName is the name \n field of the resource object. \n", "type": "object", "required": [ "mcioId", @@ -2942,7 +3091,7 @@ } }, "metadata": { - "description": "Additional VNF-specific attributes that provide metadata describing the VNF instance. These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that invoke the VNF lifecycle management interface. They are not consumed by the VNFM, or the lifecycle management scripts.\nModifying the values of these attributes has no effect on the VNF instance, it only affects the information represented in the VnfInstance structure. Metadata that the VNF provider foresees are expected to be declared in the VNFD. (clause 6.2.35 in ETSI GS NFV-SOL 001 [12]), like information about supported protocols and data models for configuring the VNF. The declaration of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4. The VNFM shall accept requests to write metadata that are not declared in the VNFD.\nThese attributes can be initialized with default values from VNFD (see note 4) and/or with values passed in the CreateVnfRequest structure (see clause 5.5.2.3).\nThese attributes can be created, modified or removed with the PATCH method.\n", + "description": "Additional VNF-specific attributes that provide metadata describing the VNF instance. These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that invoke the VNF lifecycle management interface. They are not consumed by the VNFM, or the lifecycle management scripts.\nModifying the values of these attributes has no effect on the VNF instance, it only affects the information represented in the VnfInstance structure. Metadata that the VNF provider foresees are expected to be declared in the VNFD. (clause 6.2.35 in ETSI GS NFV-SOL 001 [12]), like information about supported protocols and data models for configuring the VNF. The declaration of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4. The VNFM shall accept requests to write metadata that are not declared in the VNFD.\nThese attributes can be initialized with default values from VNFD (see note 4) and/or with values passed in the CreateVnfRequest structure (see clause 5.5.2.3).\nThese attributes can be created, modified or removed with the PATCH method.\n", "type": "object" }, "extensions": { @@ -3126,6 +3275,194 @@ } } } + }, + "recentVnfLcmOperationLinks": { + "description": "Links to the most recent LCM operation occurrences related to this resource. See note 9.\n", + "type": "object", + "properties": { + "recentVnfLcmOperation": { + "description": "Link to the most recent LCM operation occurrence of any type that has been triggered on this VNF instance, such as Instantiate, Scale or Heal.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmInstantiation": { + "description": "Link to the most recent LCM operation occurrence of type \"INSTANTIATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmScale": { + "description": "Link to the most recent LCM operation occurrence of type \"SCALE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmScaleToLevel": { + "description": "Link to the most recent LCM operation occurrence of type \"SCALE_TO_LEVEL\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeFlavour": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_FLAVOUR\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmTerminate": { + "description": "Link to the most recent LCM operation occurrence of type \"TERMINATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmHeal": { + "description": "Link to the most recent LCM operation occurrence of type \"HEAL\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmOperate": { + "description": "Link to the most recent LCM operation occurrence of type \"OPERATE\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeExtConn": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_EXT_CONN\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmModifyInfo": { + "description": "Link to the most recent LCM operation occurrence of type \"MODIFY_INFO\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmCreateSnapshot": { + "description": "Link to the most recent LCM operation occurrence of type \"CREATE_SNAPSHOT\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmRevertToSnapshot": { + "description": "Link to the most recent LCM operation occurrence of type \"REVERT_TO_SNAPSHOT\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmChangeVnfPkg": { + "description": "Link to the most recent LCM operation occurrence of type \"CHANGE_VNFPKG\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + }, + "recentVnfLcmSelectDplMods": { + "description": "Link to the most recent LCM operation occurrence of type \"SELECT_DEPL_MODS\" that has been triggered on this VNF instance.\n", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "description": "String formatted according to IETF RFC 3986.\n", + "type": "string" + } + } + } + } } } } diff --git a/SOL002/VNFLifecycleManagement-API/schemas/vnfLcmOpOcc.schema.json b/SOL002/VNFLifecycleManagement-API/schemas/vnfLcmOpOcc.schema.json index ecbdb7d2b0b38a274b6542a2e9a845363370145e..faa9cad8878a96a4639b061ba545132f80ad393e 100644 --- a/SOL002/VNFLifecycleManagement-API/schemas/vnfLcmOpOcc.schema.json +++ b/SOL002/VNFLifecycleManagement-API/schemas/vnfLcmOpOcc.schema.json @@ -61,7 +61,7 @@ "type": "string" }, "operation": { - "description": "The enumeration LcmOpType defines the permitted values to represent VNF lifecycle operation types in VNF lifecycle management operation occurrence resources and VNF lifecycle management operation occurrence notifications.\nValue | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation. SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation. CREATE_SNAPSHOT | Represents the \"Create VNF Snapshot\" LCM operation. REVERT_TO_SNAPSHOT | Represents the /"Revert-To VNF Snapshot\" LCM operation. CHANGE_VNFPKG | Represents the \"Change current VNF package\" LCM operation. SELECT_DEPL_MODS | Represents the \"Select VNF deployable modules\" LCM operation \n", + "description": "The enumeration LcmOpType defines the permitted values to represent VNF lifecycle operation types in VNF lifecycle management operation occurrence resources and VNF lifecycle management operation occurrence notifications.\nValue | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation. SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation. CREATE_SNAPSHOT | Represents the \"Create VNF Snapshot\" LCM operation. REVERT_TO_SNAPSHOT | Represents the \"Revert-To VNF Snapshot\" LCM operation. CHANGE_VNFPKG | Represents the \"Change current VNF package\" LCM operation. SELECT_DEPL_MODS | Represents the \"Select VNF deployable modules\" LCM operation \n", "type": "string", "enum": [ "INSTANTIATE", @@ -780,7 +780,7 @@ "description": "Map of instance data that need to be configured on the CP instances created from the respective CPD. The key of the map which identifies the individual VnfExtCpConfig entries is of type \"IdentifierInVnf\" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). See notes 2, 3, 4, 5 and 6. In case of deleting an external CP, the list of instances to be deleted. \n", "type": "object", "additionalProperties": { - "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes /"netAttDefResourceId/" and /"cpProtocolData/" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", + "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes \"netAttDefResourceId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", "anyOf": [ { "required": [ @@ -995,107 +995,142 @@ "type": "array", "items": { "type": "string" - }, - "relativeDomainNames": { - "description": "Specifies values of relative domain names to be considered when setting the fully qualified domain names.\n", - "type": "array", - "items": { - "type": "string" + }, + "relativeDomainNames": { + "description": "Specifies values of relative domain names to be considered when setting the fully qualified domain names.\n", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "netAttDefResourceId": { + "description": "Identifier of the \"NetAttDefResourceData\" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", + "type": "array", + "items": { + "description": "An identifier with the intention of being globally unique.\n", + "type": "string" } } } - }, + }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceData/" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", + "description": "Identifier of the \"NetAttDefResourceData\" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupData": { + "description": "Parameters for modifying and overriding security groups information bound to this CP. The parameters identify which \"SecurityGroupRule\" specified in the VNFD is activated/deactivated and for an activated security group rule the values of attributes defined in the VNFD that can be overridden such as \"portRangeMin\" and \"portRangeMax\". If no security group configuration is provided for a given \"SecurityGroupRule\" specified in the VNFD as part of this attribute, the VNFM shall use the configuration as specified in the VNFD.\n", + "type": "object", + "required": [ + "securityGroupRuleId" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "isActivated": { + "description": "Indicates whether the rule is to be active (true) or inactive (false). If no attribute value is provided, the Security Group Rule is activated by default.\n", + "type": "boolean" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + } + } } } } } - } - } - }, - "extNetAttDefResource": { - "description": "Network attachment definition resources that provide the specification of the interface to attach connection points to this VL.\n", - "type": "array", - "items": { - "description": "This type contains information related to a network attachment definition resource that provides the specification of the interface used to connect one or multiple connection points to a secondary container cluster network.\n", - "type": "object", - "required": [ - "netAttDefResourceInfoId", - "netAttDefResource" - ], - "properties": { - "netAttDefResourceInfoId": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "netAttDefResource": { + }, + "extNetAttDefResource": { + "description": "Network attachment definition resources that provide the specification of the interface to attach connection points to this VL.\n", + "type": "array", + "items": { + "description": "This type contains information related to a network attachment definition resource that provides the specification of the interface used to connect one or multiple connection points to a secondary container cluster network.\n", + "type": "object", "required": [ - "resourceId" + "netAttDefResourceInfoId", + "netAttDefResource" ], - "type": "object", - "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n* NOTE 1: The information about the VIM or CISM connection referenced by the VIM connection id is known to the\n VNFM. Moreover, the identifier of the VIM connection provides scope to the resourceId.\n\n* NOTE 2: The value set of the \"vimLevelResourceType\" attribute is within the scope of the VIM or CISM or the resource \n provider and can be used as information that complements the ResourceHandle. When the container\n infrastructure service is a Kubernetes┬« instance the vimLevelResourceType is the type of resource, as would \n correspond to the 'kind' field if the resource is declared in its own Kubernetes┬« manifest, e.g.: Pod, \n PersistentVolumeClaim, NetworkAttachmentDefinition.\n\n* NOTE 3: When the container infrastructure service is a Kubernetes┬« instance the resourceId shall be populated in the \n following way:\n - For a compute MCIO, it is the instance identifier that Kubernetes┬« assigns, which is unique cluster wide \n per resource type.\n - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, \n i.e. the value of the 'claimName' field in the Kubernetes┬« manifest, or a compound name built by \n Kubernetes┬« if the persistent volume claim is defined inline in another template instead of in its own \n manifest.\n - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of \n the 'metadata.name' field in Kubernetes┬« manifest.\n", "properties": { - "vimConnectionId": { - "description": "An identifier with the intention of being globally unique.\n", - "type": "string" - }, - "resourceProviderId": { + "netAttDefResourceInfoId": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" }, - "resourceId": { - "description": "An identifier maintained by the VIM or the CISM or other resource provider. It is expected to be unique within the VIM instance.\n", - "type": "string" - }, - "vimLevelResourceType": { - "description": "Type of the resource in the scope of the VIM or the CISM or the resource provider. See note 2.\n", - "type": "string" - }, - "vimLevelAdditionalResourceInfo": { - "description": "This type represents additional resource information which resource and resource type specific, and which is available from the VIM or the CISM or the resource provider.\n* NOTE: At least one attribute shall be present.\n", + "netAttDefResource": { + "required": [ + "resourceId" + ], "type": "object", + "description": "This type represents the information that allows addressing a virtualised resource that is used by a VNF instance. Information about the resource is available from the VIM.\n* NOTE 1: The information about the VIM or CISM connection referenced by the VIM connection id is known to the\n VNFM. Moreover, the identifier of the VIM connection provides scope to the resourceId.\n\n* NOTE 2: The value set of the \"vimLevelResourceType\" attribute is within the scope of the VIM or CISM or the resource \n provider and can be used as information that complements the ResourceHandle. When the container\n infrastructure service is a Kubernetes┬« instance the vimLevelResourceType is the type of resource, as would \n correspond to the 'kind' field if the resource is declared in its own Kubernetes┬« manifest, e.g.: Pod, \n PersistentVolumeClaim, NetworkAttachmentDefinition.\n\n* NOTE 3: When the container infrastructure service is a Kubernetes┬« instance the resourceId shall be populated in the \n following way:\n - For a compute MCIO, it is the instance identifier that Kubernetes┬« assigns, which is unique cluster wide \n per resource type.\n - For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, \n i.e. the value of the 'claimName' field in the Kubernetes┬« manifest, or a compound name built by \n Kubernetes┬« if the persistent volume claim is defined inline in another template instead of in its own \n manifest.\n - For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of \n the 'metadata.name' field in Kubernetes┬« manifest.\n", "properties": { - "hostName": { - "description": "Name of the host where the resource is allocated. It shall be present for compute resources in the scope of the CISM and shall be absent otherwise. See note.\n", + "vimConnectionId": { + "description": "An identifier with the intention of being globally unique.\n", "type": "string" }, - "persistentVolume": { - "description": "Name of the persistent volume to which the persistent volume claim representing the storage resource is bound. It may be present for storage resources in the scope of the CISM and shall be absent otherwise. See note.\n", + "resourceProviderId": { + "description": "An identifier with the intention of being globally unique.\n", "type": "string" }, - "additionalInfo": { - "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", - "type": "object" + "resourceId": { + "description": "An identifier maintained by the VIM or the CISM or other resource provider. It is expected to be unique within the VIM instance.\n", + "type": "string" + }, + "vimLevelResourceType": { + "description": "Type of the resource in the scope of the VIM or the CISM or the resource provider. See note 2.\n", + "type": "string" + }, + "vimLevelAdditionalResourceInfo": { + "description": "This type represents additional resource information which resource and resource type specific, and which is available from the VIM or the CISM or the resource provider.\n* NOTE: At least one attribute shall be present.\n", + "type": "object", + "properties": { + "hostName": { + "description": "Name of the host where the resource is allocated. It shall be present for compute resources in the scope of the CISM and shall be absent otherwise. See note.\n", + "type": "string" + }, + "persistentVolume": { + "description": "Name of the persistent volume to which the persistent volume claim representing the storage resource is bound. It may be present for storage resources in the scope of the CISM and shall be absent otherwise. See note.\n", + "type": "string" + }, + "additionalInfo": { + "description": "This type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of keyvalue pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259. In the following example, a list of key-value pairs with four keys (\"aString\", \"aNumber\", \"anArray\" and \"anObject\") is provided to illustrate that the values associated with different keys can be of different type.\n", + "type": "object" + } + } + }, + "containerNamespace": { + "description": "The value of the namespace in which the MCIO corresponding to the resource is deployed. This attribute shall be present if the resource is managed by a CISM and it shall be absent otherwise.\n", + "type": "string" } } }, - "containerNamespace": { - "description": "The value of the namespace in which the MCIO corresponding to the resource is deployed. This attribute shall be present if the resource is managed by a CISM and it shall be absent otherwise.\n", - "type": "string" + "associatedExtCpId": { + "description": "Identifier of the external CP associated to this network attachment definition resource. Shall be present when the network attachment definition resource is used for external connectivity by the VNF.\n", + "type": "array", + "items": { + "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n", + "type": "string" + } + }, + "associatedVnfcCpId": { + "description": "Identifier of the VNFC CP associated to this network attachment definition resource. May be present when the network attachment definition resource is used for internal connectivity by the VNF.\n", + "type": "array", + "items": { + "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n", + "type": "string" + } } } - }, - "associatedExtCpId": { - "description": "Identifier of the external CP associated to this network attachment definition resource. Shall be present when the network attachment definition resource is used for external connectivity by the VNF.\n", - "type": "array", - "items": { - "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n", - "type": "string" - } - }, - "associatedVnfcCpId": { - "description": "Identifier of the VNFC CP associated to this network attachment definition resource. May be present when the network attachment definition resource is used for internal connectivity by the VNF.\n", - "type": "array", - "items": { - "description": "An identifier that is unique for the respective type within a VNF instance, but may not be globally unique.\n", - "type": "string" - } } } } diff --git a/SOL002/VNFLifecycleManagement-API/schemas/vnfLcmOpOccs.schema.json b/SOL002/VNFLifecycleManagement-API/schemas/vnfLcmOpOccs.schema.json index eae1d4797355d55f0391a9f3d074df4f11705b04..88b087c73da0450f6e7e678865d7a2d6a3f215bc 100644 --- a/SOL002/VNFLifecycleManagement-API/schemas/vnfLcmOpOccs.schema.json +++ b/SOL002/VNFLifecycleManagement-API/schemas/vnfLcmOpOccs.schema.json @@ -63,7 +63,7 @@ "type": "string" }, "operation": { - "description": "The enumeration LcmOpType defines the permitted values to represent VNF lifecycle operation types in VNF lifecycle management operation occurrence resources and VNF lifecycle management operation occurrence notifications.\nValue | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation. SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation. CREATE_SNAPSHOT | Represents the \"Create VNF Snapshot\" LCM operation. REVERT_TO_SNAPSHOT | Represents the /"Revert-To VNF Snapshot\" LCM operation. CHANGE_VNFPKG | Represents the \"Change current VNF package\" LCM operation. SELECT_DEPL_MODS | Represents the \"Select VNF deployable modules\" LCM operation \n", + "description": "The enumeration LcmOpType defines the permitted values to represent VNF lifecycle operation types in VNF lifecycle management operation occurrence resources and VNF lifecycle management operation occurrence notifications.\nValue | Description ------|------------ INSTANTIATE | Represents the \"Instantiate VNF\" LCM operation. SCALE | Represents the \"Scale VNF\" LCM operation. SCALE_TO_LEVEL | Represents the \"Scale VNF to Level\" LCM operation. CHANGE_FLAVOUR | Represents the \"Change VNF Flavour\" LCM operation. TERMINATE | Represents the \"Terminate VNF\" LCM operation. HEAL | Represents the \"Heal VNF\" LCM operation. OPERATE | Represents the \"Operate VNF\" LCM operation. CHANGE_EXT_CONN | Represents the \"Change external VNF connectivity\" LCM operation. MODIFY_INFO | Represents the \"Modify VNF Information\" LCM operation. CREATE_SNAPSHOT | Represents the \"Create VNF Snapshot\" LCM operation. REVERT_TO_SNAPSHOT | Represents the \"Revert-To VNF Snapshot\" LCM operation. CHANGE_VNFPKG | Represents the \"Change current VNF package\" LCM operation. SELECT_DEPL_MODS | Represents the \"Select VNF deployable modules\" LCM operation \n", "type": "string", "enum": [ "INSTANTIATE", @@ -779,10 +779,10 @@ "type": "string" }, "cpConfig": { - "description": "Map of instance data that need to be configured on the CP instances created from the respective CPD. The key of the map which identifies the individual VnfExtCpConfig entries is of type \"IdentifierInVnf\" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). See notes 2, 3, 4, 5 and 6. In case of deleting an external CP, the list of instances to be deleted. \n", + "description": "Map of instance data that need to be configured on the CP instances created from the respective CPD. The key of the map which identifies the individual VnfExtCpConfig entries is of type \"IdentifierInVnf\" and is managed by the NFVO. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). See notes 2, 3, 4, 5 and 6. In case of deleting an external CP, the list of instances to be deleted. \n", "type": "object", "additionalProperties": { - "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes /"netAttDefResourceId/" and /"cpProtocolData/" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", + "description": "This type represents an externally provided link port, or a network attachment definition resource of secondary container cluster network, or network address information per instance of an external connection point. In the case of VM-based deployment of the VNFC exposing the external CP:\n 1. In case a link port is provided, the VNFM shall use that link port when connecting the external CP to the\n external VL.\n 2. In case a link port is not provided, the VNFM shall create a link port on the external VL and use that link port\n to connect the external CP to the external VL.\nIn the case of container-based deployment of the VNFC exposing the external CP, the VNFM shall use the network attachment definition resource of secondary container cluster network when connecting the CP to the external VL.\n* NOTE 1: The following conditions apply to the attributes \"linkPortId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a virtual network not categorized as secondary container cluster network:\n 1) Void.\n 2) At least one of the \"linkPortId\" and \"cpProtocolData\" attributes shall be present for an external CP instance\n representing a subport that is to be created, or an external CP instance that is to be created by creating the\n corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing\n external CP instance that is to be re-configured or added to a particular external virtual link.\n 3) If the \"linkPortId\" attribute is absent, the VNFM shall create a link port.\n 4) If the \"cpProtocolData\" attribute is absent, the \"linkPortId\" attribute shall be provided referencing a\n precreated link port, and the VNFM can use means outside the scope of the present document to obtain the\n pre-configured address information for the connection point from the resource representing the link port.\n 5) If both \"cpProtocolData\" and \"linkportId\" are provided, the NFVO shall ensure that the\n cpProtocolData can be used with the pre-created link port referenced by \"linkPortId\".\n\n* NOTE 2: The following conditions apply to the attributes \"netAttDefResourceId\" and \"cpProtocolData\" for an external CP\n instance connected or to be connected to a secondary container cluster network:\n 1) Void.\n 2) The \"netAttDefResourceId\" attribute shall be present and the \"cpProtocolData\" attribute may be present for\n a to-be-created external CP instance or an existing external CP instance.\n* NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment\n definition resource is needed to fulfil the connectivity requirements of the external CP, e.g. to build a link\n redundant mated pair in SR-IOV cases. When more than one netAttDefResourceId is indicated, all shall belong\n to the same namespace as defined by the corresponding \"containerNamespace\" attribute in the \"resourceHandle\" attribute\n in the \"NetAttDefResourceData\".\n* NOTE 4: Either linkPortId or netAttDefResourceId may be included, but not both.\n", "anyOf": [ { "required": [ @@ -803,7 +803,7 @@ "type": "object", "properties": { "parentCpConfigId": { - "description": "Value of the key that identifies the \"VnfExtCpConfig\" map entry which corresponds to the parent port of the trunk.mOnly present in \"VnfExtCpConfig\" structures that provide configuration information for a CP which represents a sub-port in a trunk, and if parent ports are supported. In case of deletion of an external CP, the identifier of the external CP instance to delete. Shall be present if this instance has already been created.\n", + "description": "Value of the key that identifies the \"VnfExtCpConfig\" map entry which corresponds to the parent port of the trunk.mOnly present in \"VnfExtCpConfig\" structures that provide configuration information for a CP which represents a sub-port in a trunk, and if parent ports are supported. In case of deletion of an external CP, the identifier of the external CP instance to delete. Shall be present if this instance has already been created.\n", "type": "string" }, "linkPortId": { @@ -1003,21 +1003,44 @@ "description": "Specifies values of relative domain names to be considered when setting the fully qualified domain names.\n", "type": "array", "items": { - "type": "string" - + "type": "string" } } - } } }, "netAttDefResourceId": { - "description": "Identifier of the /"NetAttDefResourceData/" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", + "description": "Identifier of the \"NetAttDefResourceData\" structure that provides the specification of the interface to attach the external CP to a secondary container cluster network. It is only applicable if the external CP is connected or to be connected to a secondary container cluster network. It shall not be present if the external CP is related to a virtual network not categorized as secondary container cluster network. See notes 2, 3 and 4.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" } + }, + "cpSecurityGroupData": { + "description": "Parameters for modifying and overriding security groups information bound to this CP. The parameters identify which \"SecurityGroupRule\" specified in the VNFD is activated/deactivated and for an activated security group rule the values of attributes defined in the VNFD that can be overridden such as \"portRangeMin\" and \"portRangeMax\". If no security group configuration is provided for a given \"SecurityGroupRule\" specified in the VNFD as part of this attribute, the VNFM shall use the configuration as specified in the VNFD.\n", + "type": "object", + "required": [ + "securityGroupRuleId" + ], + "properties": { + "securityGroupRuleId": { + "description": "Identifier of the security group rule policy in the VNFD.\n", + "type": "string" + }, + "isActivated": { + "description": "Indicates whether the rule is to be active (true) or inactive (false). If no attribute value is provided, the Security Group Rule is activated by default.\n", + "type": "boolean" + }, + "portRangeMin": { + "description": "Value for the minimum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + }, + "portRangeMax": { + "description": "Value for the maximum port number in the range that is matched by the security group rule. The value shall be within the range \"0 - 65535\".\n", + "type": "integer" + } + } } } }