NFV - Network Functions Virtualisation issueshttps://forge.etsi.org/rep/groups/nfv/-/issues2021-09-28T14:56:39Zhttps://forge.etsi.org/rep/nfv/SOL005/-/issues/5Mismatch between AffectedVirtualLink data type in SOL005 and as defined in ya...2021-09-28T14:56:39ZVlademir BrusseMismatch between AffectedVirtualLink data type in SOL005 and as defined in yaml file.It was found a mismatch between the SOL005 v3.3.1 and the SOL005NSLifecycleManagement_def.yaml for an attribute name of the AffectedVirtualLink data type:
AffectedVirtualLink:
description: >
This type provides information abou...It was found a mismatch between the SOL005 v3.3.1 and the SOL005NSLifecycleManagement_def.yaml for an attribute name of the AffectedVirtualLink data type:
AffectedVirtualLink:
description: >
This type provides information about added, deleted, modified and
temporary VLs.
type: object
required:
- id
- virtualLinkDescId
- changeType
- networkResource
```
The solution requires to replace the "id" attribute name with "nsVirtualLinkInstanceId" in all occurrences as defined in SOL005 v3.3.1.Giacomo BerniniGiacomo Berninihttps://forge.etsi.org/rep/nfv/SOL005/-/issues/4API Versions, add unsupported Methods2021-09-28T14:56:39ZMichele CarignaniAPI Versions, add unsupported MethodsAdd POST, PUT, PATCH, DELETE definition for the `/api_versions` endpoints, which should return 405 and empty body.Add POST, PUT, PATCH, DELETE definition for the `/api_versions` endpoints, which should return 405 and empty body.Giacomo BerniniGiacomo Berninihttps://forge.etsi.org/rep/nfv/SOL005/-/issues/3Invalid API version endpoint2021-02-05T17:15:13ZMichele CarignaniInvalid API version endpointAccording to SOL 013 (https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf) the endpoint should have an underscore, not a hyphen:
`/api-versions` should `/api_version`According to SOL 013 (https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf) the endpoint should have an underscore, not a hyphen:
`/api-versions` should `/api_version`Giacomo BerniniGiacomo Berninihttps://forge.etsi.org/rep/nfv/api-tests/-/issues/132Incorrect API version endpoints2021-01-28T10:31:06ZMichele CarignaniIncorrect API version endpointsVerified in v2.6.1
The endpoint to `API Versions` resource should be `/api_versions` and not `/api_version`.
See https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf, section 9.3.2Verified in v2.6.1
The endpoint to `API Versions` resource should be `/api_versions` and not `/api_version`.
See https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_nfv-sol013v020601p.pdf, section 9.3.2Giacomo BerniniGiacomo Berninihttps://forge.etsi.org/rep/nfv/api-tests/-/issues/131NS Identifier Creation Notification/NS Identifier Deletion Notification schem...2021-02-03T14:23:00ZFrank BrydenNS Identifier Creation Notification/NS Identifier Deletion Notification schemas invertedIn SOL005\NSLifecycleManagement-API\NotificationEndpoint.robot, the tests `NS Identifier Creation Notification` and `NS Identifier Deletion Notification` have their schemas inverted.
The creation test checks against the `NsIdentifierDele...In SOL005\NSLifecycleManagement-API\NotificationEndpoint.robot, the tests `NS Identifier Creation Notification` and `NS Identifier Deletion Notification` have their schemas inverted.
The creation test checks against the `NsIdentifierDeletionNotification` schema, whilst the Deletion test checks against the `NsIdentifierCreationNotification` schema.https://forge.etsi.org/rep/nfv/api-tests/-/issues/130SOL005/NSLifecycleManagement-API/jsons/CreateNsRequest.json is a schema not a...2020-10-14T13:45:47ZFrank BrydenSOL005/NSLifecycleManagement-API/jsons/CreateNsRequest.json is a schema not a JSON payloadhttps://forge.etsi.org/rep/nfv/api-tests/-/issues/129Logical inconsistency in SOL005/NSLifecycleManagement-API/DeleteNSInstanceWor...2020-10-14T13:45:39ZFrank BrydenLogical inconsistency in SOL005/NSLifecycleManagement-API/DeleteNSInstanceWorkflow.robotThe test `NS Instance Deletion` deletes an NS instance, then checks for a `204 No Content` and finally performs a schema validation on the response body. This schema validation will *always* fail as it can only run if the previous step s...The test `NS Instance Deletion` deletes an NS instance, then checks for a `204 No Content` and finally performs a schema validation on the response body. This schema validation will *always* fail as it can only run if the previous step succeeds, indicating the body is empty.https://forge.etsi.org/rep/nfv/api-tests/-/issues/128NS Instance Creation @ SOL005/NSLifecycleManagement-API/CreateNSInstanceWorkf...2020-10-14T13:45:31ZFrank BrydenNS Instance Creation @ SOL005/NSLifecycleManagement-API/CreateNSInstanceWorkflow.robot wrong schema checkThe test `NS Instance Creation` checks the response body after making the creation request against the `NsIdentifierCreationNotification`. According to SOL005v2.7.1, the schema to check against should instead be `NsInstance.The test `NS Instance Creation` checks the response body after making the creation request against the `NsIdentifierCreationNotification`. According to SOL005v2.7.1, the schema to check against should instead be `NsInstance.https://forge.etsi.org/rep/nfv/api-tests/-/issues/127"NS Instance Creation with DISABLED nsd" not tested2020-10-14T13:45:25ZFrank Bryden"NS Instance Creation with DISABLED nsd" not testedhttps://forge.etsi.org/rep/nfv/api-tests/-/issues/126SOL005/VNFPackageManagement-API/IndividualVNFPackage.robot expecting 405 inst...2020-10-14T13:45:03ZFrank BrydenSOL005/VNFPackageManagement-API/IndividualVNFPackage.robot expecting 405 instead of 204`Check HTTP Response Status Code Is 405` should be checking for 204, not 405.`Check HTTP Response Status Code Is 405` should be checking for 204, not 405.https://forge.etsi.org/rep/nfv/api-tests/-/issues/125Missing double quotes2020-10-14T13:44:55ZFrank BrydenMissing double quotesSome of the Authorization header setting lacks a double quote, resulting in a syntax error.
These look as such:
```
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"}
```Some of the Authorization header setting lacks a double quote, resulting in a syntax error.
These look as such:
```
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": ${AUTHORIZATION}"}
```https://forge.etsi.org/rep/nfv/api-tests/-/issues/124Spacing issues causing syntax errors2020-10-14T13:44:47ZFrank BrydenSpacing issues causing syntax errorsSome of the code has small spacing issues.
For example, `Log Requesting NSD info` results in an error `Unknown keyword: Log Requesting NSD info` as there needs to be an extra space between the `Log` command and subsequent arguments.Some of the code has small spacing issues.
For example, `Log Requesting NSD info` results in an error `Unknown keyword: Log Requesting NSD info` as there needs to be an extra space between the `Log` command and subsequent arguments.https://forge.etsi.org/rep/nfv/api-tests/-/issues/123Wrong type in mock server header creation2020-10-14T13:44:38ZFrank BrydenWrong type in mock server header creation```
&{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204
```
The `Create Mock Response` keyword expects a dictionary in the headers parameter, not a string.```
&{notification_response}= Create Mock Response headers="Content-Type: application/json" status_code=204
```
The `Create Mock Response` keyword expects a dictionary in the headers parameter, not a string.https://forge.etsi.org/rep/nfv/SOL005/-/issues/2Definition of the extLinkPortId attribute in the VnfExtCpInfo data type.2020-09-11T11:55:26ZVlademir BrusseDefinition of the extLinkPortId attribute in the VnfExtCpInfo data type.Our R&D has found an issue in SOL005 v2.6.1 and its propagation on v2.5.1, v2.7.1 and v3.3.1.
The extLinkPortId attribute of VnfExtCpInfo data type is defined as Identified in SOL005 spec and as “CpProtocolInmfo” in v2.7.1 and v3.3.1 of...Our R&D has found an issue in SOL005 v2.6.1 and its propagation on v2.5.1, v2.7.1 and v3.3.1.
The extLinkPortId attribute of VnfExtCpInfo data type is defined as Identified in SOL005 spec and as “CpProtocolInmfo” in v2.7.1 and v3.3.1 of SOL005 OpenAPI:
extLinkPortId:
description: >
Identifier of the "extLinkPortInfo" structure inside the "extVirtualLinkInfo"
structure. Shall be present if the CP is associated to a link port.
$ref: "#/definitions/CpProtocolInfo"
Should extLinkPortId definition be:
extLinkPortId:
description: >
Identifier of the "extLinkPortInfo" structure inside the "extVirtualLinkInfo"
structure. Shall be present if the CP is associated to a link port.
`$ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier"
According to SOL005 on those versions (v2.4.1 as well) this attribute should be defined as “Identifier”, and then be translated to string.
Best Regards,
VlademirGiacomo BerniniGiacomo Berninihttps://forge.etsi.org/rep/nfv/SOL005/-/issues/1Swagger file: SOL005NSLifecycleManagement_def.yaml; ns_lcm_op_occ: "statusEnt...2020-12-15T05:03:17ZbanerjeesuSwagger file: SOL005NSLifecycleManagement_def.yaml; ns_lcm_op_occ: "statusEnteredTime" should be "stateEnteredTime" to match vnf_lcm_op_occThe file https://forge.etsi.org/rep/nfv/SOL005/blob/v2.7.1/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml NsLcmOpOcc has "statusEnteredTime" misspelt.
It should ideally be "stateEnteredTime" to match ...The file https://forge.etsi.org/rep/nfv/SOL005/blob/v2.7.1/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml NsLcmOpOcc has "statusEnteredTime" misspelt.
It should ideally be "stateEnteredTime" to match the corresponding field in VnfLcmOpOcc: https://forge.etsi.org/rep/nfv/SOL002-SOL003/blob/v2.7.1/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml
Reference: Attached screenshot from 2.7.1 SOL005 Spec.
The description against 'statusEnteredTime' says, "Date-time when the current _state_ has been entered." Please see that it's referred to as "state" in the descriptions and other field names from NsLcmOpOcc as well, e.g. {'operationState'}. Apart from the specification language aspect, we have the below challenge from implementation and client side.
The dissimilarity of the names in SOL005 and corresponding SOL003/SOL002 model attributes may pose limitations when it comes to client-side/server-side code trying to use the JSON-Object-mapping tools (e.g. ObjectMapper) for invoking/serving APIs across NS and VNF LCM operations. The ObjectMappers need to have field transformation logic (to-and-fro) to map "statusEnteredTime" to "stateEnteredTime" and back while moving between the SOL003 and SOL005 APIs for instance.
![Screen_Shot_2020-08-21_at_11.43.35_AM](/uploads/73c67a0ec0f82a5fb40227e6d2526691/Screen_Shot_2020-08-21_at_11.43.35_AM.png)https://forge.etsi.org/rep/nfv/api-tests/-/issues/122[sol005robot] Logical inconsistency in NSLCM/IndividualNSInstance.robot2020-10-14T13:44:05ZFrank Bryden[sol005robot] Logical inconsistency in NSLCM/IndividualNSInstance.robot# NSLCM/IndividualNSInstance.robot
The suite keyword `Check resource existence` is shown below (in the log.html output file).
![suiteSetup](/uploads/b5f40678e4f347546e52f8535cbc191e/suiteSetup.png)
The resource checked is at `ns_instanc...# NSLCM/IndividualNSInstance.robot
The suite keyword `Check resource existence` is shown below (in the log.html output file).
![suiteSetup](/uploads/b5f40678e4f347546e52f8535cbc191e/suiteSetup.png)
The resource checked is at `ns_instances/${nsInstanceId}`, and the test is looking for a 200 response code, as the resource must exist.
However, at the end of the first test in the suite, `POST Individual NSInstance - Method not implemented`, a postcondition check for the non-existence of that same resource is made; pictured below.
![suiteCheck](/uploads/4ac47c0294c27a649f837d131e1cae91/suiteCheck.png)\
This check is making a request against the same resource, but expecting a 404 this time.
If the suite setup succeeds, the test is run, but the response to that request cannot be 404.\
If the suite setup fails, the test is not run.https://forge.etsi.org/rep/nfv/api-tests/-/issues/121[sol005robot] SOL005/VNFPackageManagement-API/environment: Too many variable ...2020-11-11T09:04:18ZFrank Bryden[sol005robot] SOL005/VNFPackageManagement-API/environment: Too many variable filesThe variables required for the suite tests are spread over too many files, making the testing process very tedious. Finding the appropriate variable requires going through each file.
On top of this, some variables are (re)defined multip...The variables required for the suite tests are spread over too many files, making the testing process very tedious. Finding the appropriate variable requires going through each file.
On top of this, some variables are (re)defined multiple times. For example, `erroneousVnfPkgId` is defined in vnfPackageContent.txt, vnfdInIndividualVnfPackage.txt and vnfPackageArtifacts.txt.https://forge.etsi.org/rep/nfv/api-tests/-/issues/120[sol005robot] Set Headers for Accept ZIP/Plain text not implemented correctly2020-10-14T13:43:38ZFrank Bryden[sol005robot] Set Headers for Accept ZIP/Plain text not implemented correctlyFor tests which need to accept both application/zip and text/plain, the test is written as follows:
```
Set Headers {"Accept": "${ACCEPT_PLAIN}"}
Set Headers {"Accept": "${ACCEPT_ZIP}"}
```
In this case, the state change of the fir...For tests which need to accept both application/zip and text/plain, the test is written as follows:
```
Set Headers {"Accept": "${ACCEPT_PLAIN}"}
Set Headers {"Accept": "${ACCEPT_ZIP}"}
```
In this case, the state change of the first call is lost, and only the second call has any effect. This means the test does not run as intended.https://forge.etsi.org/rep/nfv/api-tests/-/issues/119Additional parameter to specify arttifact type2020-06-17T21:52:06ZphamvAdditional parameter to specify arttifact type`GET Individual VNF Package Artifact in octet stream format` uses `${artifactPath}` for all contents, request to add additional parameter to indicate content type as text or binary (application/octet-stream).
Current variables are defin...`GET Individual VNF Package Artifact in octet stream format` uses `${artifactPath}` for all contents, request to add additional parameter to indicate content type as text or binary (application/octet-stream).
Current variables are defined in:
api-tests/SOL003/VNFPackageManagement-API/environment/vnfPackageArtifacts.txthttps://forge.etsi.org/rep/nfv/api-tests/-/issues/118Response variable not updated after the GET call2020-06-17T21:51:45ZElian KrajaResponse variable not updated after the GET callhttps://forge.etsi.org/rep/nfv/api-tests/blob/2.4.1-fix-plu/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot
Check Postcondition VNFD Exist
Log Checking that vnf pacakge still exists
Set Headers {"Acce...https://forge.etsi.org/rep/nfv/api-tests/blob/2.4.1-fix-plu/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot
Check Postcondition VNFD Exist
Log Checking that vnf pacakge still exists
Set Headers {"Accept": "${ACCEPT_PLAIN}"}
Set Headers {"Accept": "${ACCEPT_ZIP}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd
Check HTTP Response Status Code Is 200
Suggest to add the following lines after GET if possible:
${output}= Output response
Set Suite Variable ${response} ${output}Elian KrajaElian Kraja