NFV - Network Functions Virtualisation issueshttps://forge.etsi.org/rep/groups/nfv/-/issues2021-10-08T01:33:04Zhttps://forge.etsi.org/rep/nfv/api-tests/-/issues/194Keywords not running when testing Individual VNFInstances SOL003 VNFLifecycle...2021-10-08T01:33:04ZyaoyuyKeywords not running when testing Individual VNFInstances SOL003 VNFLifecycleMangementAPI V2.6.1when testing task PATCH Individual VNFInstance Precondition failed and PATCH Individual VNFInstance Conflict
the keywords Launch another LCM operation and SET etag should run, but in the log file, It seems not runnningwhen testing task PATCH Individual VNFInstance Precondition failed and PATCH Individual VNFInstance Conflict
the keywords Launch another LCM operation and SET etag should run, but in the log file, It seems not runnninghttps://forge.etsi.org/rep/nfv/api-tests/-/issues/190Wrong Problem Details JSON Object set in Keywords Check HTTP Response Body Js...2021-10-05T10:15:18ZyaoyuyWrong Problem Details JSON Object set in Keywords Check HTTP Response Body Json Schema Is ProblemDetails SOL005 VNFPackageManagementAPI v2.6.1When check HTTP Response Body Json Schema Is ProblemDetails
the problem details json object should be application/problem+json according to the RFC7807
but now the value is application/json
https://datatracker.ietf.org/doc/html/rfc7807When check HTTP Response Body Json Schema Is ProblemDetails
the problem details json object should be application/problem+json according to the RFC7807
but now the value is application/json
https://datatracker.ietf.org/doc/html/rfc7807https://forge.etsi.org/rep/nfv/api-tests/-/issues/193unexpected GET method runs after http code 303 returned in Subscriptions.robo...2021-10-05T10:15:18Zyaoyuyunexpected GET method runs after http code 303 returned in Subscriptions.robot SOL003 VNFLifecycleManagementAPIWhen testing Create a new Subscription - NO-DUPLICATION task,
robot runs GET API after getting 303 in header, and the response value now is from the GET API which cause the task failed.When testing Create a new Subscription - NO-DUPLICATION task,
robot runs GET API after getting 303 in header, and the response value now is from the GET API which cause the task failed.https://forge.etsi.org/rep/nfv/api-tests/-/issues/191[2.7.1] Test NSFaultManagement-API.Alarms Incorrect Schema validation.2021-10-05T10:15:18Zbanerjeesu[2.7.1] Test NSFaultManagement-API.Alarms Incorrect Schema validation.The plugtest validates faultDetails as type 'String'. However, as per the SOL005 2.7.1 spec, the type should be an array-of-string. The screenshot attached depicts the cardinality to be "0..N".
Rest Invocation (Plugtest logs)
---
<pre>
...The plugtest validates faultDetails as type 'String'. However, as per the SOL005 2.7.1 spec, the type should be an array-of-string. The screenshot attached depicts the cardinality to be "0..N".
Rest Invocation (Plugtest logs)
---
<pre>
13:32:10.314 DEBUG "GET /telco/api/nsfm/v2/alarms HTTP/1.1" 200 None
13:32:10.317 TRACE Return: {'body': [{'_links': {'self': {'href': '/telco/api/nsfm/v2/alarms/a761571b-91b8-478e-946c-7b3497eabb65'}},
'ackState': 'UNACKNOWLEDGED',
'alarmRaisedTime': 'Sat Jul 24 00:16:49 GMT 2021',
'eventTime': 'Sat Jul 24 00:17:58 GMT 2021',
'eventType': 'PROCESSING_ERROR_ALARM',
'faultDetails': ['Cannot find vnfInstance Name for vnfInstanceId:"803d3a8c-9957-4c33-8fba-a13c729c0c5b" of an alarm with id:"a761571b-91b8-478e-946c-7b3497eabb65"'],
'faultType': 'Failed to create number of replica(s) after specified number of tries',
'id': 'a761571b-91b8-478e-946c-7b3497eabb65',
'isRootCause': True,
'managedObjectId': '803d3a8c-9957-4c33-8fba-a13c729c0c5b',
'perceivedSeverity': 'WARNING',
'probableCause': 'ProgressDeadlineExceeded'},
{'_links': {'self': {'href': '/telco/api/nsfm/v2/alarms/b85dba2e-978c-4d11-94dd-642b4270c719'}},
'ackState': 'UNACKNOWLEDGED',
'alarmRaisedTime': 'Sat Jul 24 01:22:35 GMT 2021',
'eventTime': 'Sat Jul 24 01:22:59 GMT 2021',
'eventType': 'PROCESSING_ERROR_ALARM',
'faultDetails': ['Cannot find vnfInstance Name for vnfInstanceId:"1ad2ee08-50d7-4a96-8288-9c1811467c91" of an alarm with id:"b85dba2e-978c-4d11-94dd-642b4270c719"'],
'faultType': 'Failed to create number of replica(s) after specified number of tries',
'id': 'b85dba2e-978c-4d11-94dd-642b4270c719',
'isRootCause': True,
'managedObjectId': '1ad2ee08-50d7-4a96-8288-9c1811467c91',
'perceivedSeverity': 'WARNING',
'probableCause': 'ProgressDeadlineExceeded'},
{'_links': {'self': {'href': '/telco/api/nsfm/v2/alarms/83e7ed6f-ccd1-4198-a102-55fee45fe7f7'}},
'ackState': 'ACKNOWLEDGED',
'alarmRaisedTime': 'Sat Jul 24 04:12:31 GMT 2021',
'eventTime': 'Sat Jul 24 04:13:00 GMT 2021',
'eventType': 'PROCESSING_ERROR_ALARM',
'faultDetails': ['Cannot find vnfInstance Name for vnfInstanceId:"383f176d-f592-4b49-88dd-3ac69edb3587" of an alarm with id:"83e7ed6f-ccd1-4198-a102-55fee45fe7f7"'],
'faultType': 'Failed to create number of replica(s) after specified number of tries',
'id': '83e7ed6f-ccd1-4198-a102-55fee45fe7f7',
'isRootCause': True,
'managedObjectId': '383f176d-f592-4b49-88dd-3ac69edb3587',
'perceivedSeverity': 'WARNING',
'probableCause': 'ProgressDeadlineExceeded'},
{'_links': {'self': {'href': '/telco/api/nsfm/v2/alarms/109d8d61-7e60-45ff-a3f7-506087fb2ad6'}},
'ackState': 'UNACKNOWLEDGED',
'alarmRaisedTime': 'Sat Jul 24 04:02:27 GMT 2021',
'eventTime': 'Mon Jul 26 18:12:31 GMT 2021',
'eventType': 'PROCESSING_ERROR_ALARM',
'faultDetails': ['Cannot find vnfInstance Name for vnfInstanceId:"383f176d-f592-4b49-88dd-3ac69edb3587" of an alarm with id:"109d8d61-7e60-45ff-a3f7-506087fb2ad6"'],
'faultType': 'Failed to pull image from docker repository',
'id': '109d8d61-7e60-45ff-a3f7-506087fb2ad6',
'isRootCause': True,
'managedObjectId': '383f176d-f592-4b49-88dd-3ac69edb3587',
'perceivedSeverity': 'CRITICAL',
'probableCause': 'ErrImagePull'}],
'headers': {'Cache-Control': 'no-cache, no-store, max-age=0, must-revalidate',
'Connection': 'Keep-Alive',
'Content-Encoding': 'gzip',
'Content-Type': 'application/json',
'Date': 'Thu, 23 Sep 2021 08:02:09 GMT',
'Expires': '0',
'Keep-Alive': 'timeout=5, max=100',
'Pragma': 'no-cache',
'Server': 'Apache',
'Set-Cookie': 'SESSION=c83359a4-9afd-464d-9833-bab15d0f1d4b; Path=/; Secure; HttpOnly',
'Strict-Transport-Security': 'max-age=31536000 ; includeSubDomains',
'Transfer-Encoding': 'chunked',
'Version': '2.7.1',
'X-Content-Type-Options': 'nosniff',
'X-Frame-Options': 'SAMEORIGIN',
'X-XSS-Protection': '1; mode=block',
'vary': 'accept-encoding',
'x-transaction-id': 'efdf095a-b6e5-41a6-9831-9849da30a2c5'},
'seconds': 0.20025800000000002,
'status': 200}
</pre>
Test Logs:
---
<pre>
13:32:10.342 FAIL ValidationError: Validation error for schema alarms.schema.json: ['Cannot find vnfInstance Name for vnfInstanceId:"803d3a8c-9957-4c33-8fba-a13c729c0c5b" of an alarm with id:"a761571b-91b8-478e-946c-7b3497eabb65"'] is not of type 'string'
</pre>
SOL Spec Screenshot
---
![Screenshot_2021-09-24_at_10.24.05_AM](/uploads/fa3378fc274849e2397555e3fa563a1b/Screenshot_2021-09-24_at_10.24.05_AM.png)https://forge.etsi.org/rep/nfv/api-tests/-/issues/90[GENERIC] Content-Type when errors occur should be application/problem+json2021-10-05T10:15:18ZElian Kraja[GENERIC] Content-Type when errors occur should be application/problem+jsonAs per 4.3.5.2 General mechanism when an error occurs the Content-Type shall be set to "application/problem+json"As per 4.3.5.2 General mechanism when an error occurs the Content-Type shall be set to "application/problem+json"https://forge.etsi.org/rep/nfv/api-tests/-/issues/153SOL003/VNFPackageArtifacts/2.6.1 Range is kept all along the test cases2021-10-05T10:15:18ZvignaudSOL003/VNFPackageArtifacts/2.6.1 Range is kept all along the test casesThe first range test case fail for a strange reason :
`GET Individual VNF Package Artifact with Range Request and NFVO supporting Range Requests`
`bytes 0-1023/22872 != bytes=0-1023/22872`
But after that point range is used in :
`Indivi...The first range test case fail for a strange reason :
`GET Individual VNF Package Artifact with Range Request and NFVO supporting Range Requests`
`bytes 0-1023/22872 != bytes=0-1023/22872`
But after that point range is used in :
`Individual VNF Package Artifact with Range Request and NFVO not supporting Range Requests`
Then bad range is set, and used for all other test cases.https://forge.etsi.org/rep/nfv/api-tests/-/issues/192Wrong Parameter name in IndividualVNFInstance.robot SOL003 VNFLifecysleManage...2021-10-05T10:15:18ZyaoyuyWrong Parameter name in IndividualVNFInstance.robot SOL003 VNFLifecysleManagementAPIIn `DELETE Individual VNFInstance Conflict` test task
when check resource existence, the API is
`Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}`
it should be
`Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instance...In `DELETE Individual VNFInstance Conflict` test task
when check resource existence, the API is
`Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}`
it should be
`Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${instantiatedVnfInstanceId}`https://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/12nsCpHandle attribute.2021-09-28T14:56:39ZVlademir BrussensCpHandle attribute.The nsCpHandle attribute with cardinality 0..1 in NsLinkPortInfo and VnffgInfo data types should have the yaml code generated as type “object” and not type “array” (as it is generated in the SOL005NSLifecycleManagement_def.yaml file of t...The nsCpHandle attribute with cardinality 0..1 in NsLinkPortInfo and VnffgInfo data types should have the yaml code generated as type “object” and not type “array” (as it is generated in the SOL005NSLifecycleManagement_def.yaml file of the SOL005 v2.7.1), because the cardinality 0..1 means that attribute is Optional and not an Array.
The NfpInfo data type also has the cpGroup attribute defined as items: $ref: "#/definitions/NsCpHandle" that should be items: $ref: "#/definitions/CpGroupInfo" as defined for NfpData.Giacomo BerniniGiacomo Berninihttps://forge.etsi.org/rep/nfv/SOL005/-/issues/11nsCpHandle attribute.2021-09-28T14:56:39ZVlademir BrussensCpHandle attribute.The nsCpHandle attribute with cardinality 0..1 in NsLinkPortInfo and VnffgInfo data types should have the yaml code generated as type “object” and not type “array” (as it is generated in the SOL005NSLifecycleManagement_def.yaml file of t...The nsCpHandle attribute with cardinality 0..1 in NsLinkPortInfo and VnffgInfo data types should have the yaml code generated as type “object” and not type “array” (as it is generated in the SOL005NSLifecycleManagement_def.yaml file of the SOL005 v3.3.1), because the cardinality 0..1 means that attribute is Optional and not an Array.
The NfpInfo data type also has the cpGroup attribute defined as items: $ref: "#/definitions/NsCpHandle" that should be items: $ref: "#/definitions/CpGroupInfo" as defined for NfpData.Giacomo BerniniGiacomo Berninihttps://forge.etsi.org/rep/nfv/SOL005/-/issues/17Incorrect SOL005/VNFPackageManagement/PkgmNotificationFilter schema2021-09-28T14:56:39ZSana ZulfiqarIncorrect SOL005/VNFPackageManagement/PkgmNotificationFilter schemaThe file: https://forge.etsi.org/rep/nfv/SOL005/blob/2.7.1-dev/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml
The Schema of "PkgmNotificationsFilter" is incorrect. According to the SOL005 specification, ...The file: https://forge.etsi.org/rep/nfv/SOL005/blob/2.7.1-dev/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml
The Schema of "PkgmNotificationsFilter" is incorrect. According to the SOL005 specification, Attributes vnfdId, vnfPkgId, operationalState, usageState, vnfmInfo are part of "PkgmNotificationsFilter" instead of "vnfProductsFromProviders".
The current implementation is like this:
![SOL005-pkgm](/uploads/c65ed4fe3f4c1f6e87dfed5cfe2d28da/SOL005-pkgm.PNG)
Implementation should be like that (reference v2.7.1/SOL005-9.5.3.4):
![image](/uploads/4033698f34919ad4d9e1516a334f276e/image.png)Sana ZulfiqarSana Zulfiqarhttps://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/18SOL005NSFaultManagement_def.yaml: faultDetails should be an array2021-09-28T14:56:38ZhegdesaSOL005NSFaultManagement_def.yaml: faultDetails should be an arrayPlease refer to the following line: https://forge.etsi.org/rep/nfv/SOL005/blob/master/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml#L101
`faultDetails` should be an array of strings, instead of a string.
Pag...Please refer to the following line: https://forge.etsi.org/rep/nfv/SOL005/blob/master/src/SOL005/NSFaultManagement/definitions/SOL005NSFaultManagement_def.yaml#L101
`faultDetails` should be an array of strings, instead of a string.
Page 245 of the [SOL005 specification](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/02.07.01_60/gs_NFV-SOL005v020701p.pdf) has the following, which indicates a cardinality on `faultDetails`:
```
| faultDetails | String | 0..N | Provides additional information about the fault. |
```https://forge.etsi.org/rep/nfv/api-tests/-/issues/189[VNFPackageManagement-API.IndividualVNFPackage] The 'descriptor_id' is fetche...2021-09-28T10:41:41Zbanerjeesu[VNFPackageManagement-API.IndividualVNFPackage] The 'descriptor_id' is fetched as None, causing validation failureFile: SOL005/VNFPackageManagement-API/VNFPackageManagementKeywords.robot
Line: around 200
---
```
Fetch Information from SOL001 descriptor file
Import Variables ${CURDIR}/descriptors/SOL001/VNFD/vnfd_SOL001.yaml
${descriptor_...File: SOL005/VNFPackageManagement-API/VNFPackageManagementKeywords.robot
Line: around 200
---
```
Fetch Information from SOL001 descriptor file
Import Variables ${CURDIR}/descriptors/SOL001/VNFD/vnfd_SOL001.yaml
${descriptor_id}= Get Variable Value ${topology_template.node_templates.properties.descriptor_id}
${provider}= Get Variable Value ${topology_template.node_templates.properties.provider}
${product_name}= Get Variable Value ${topology_template.node_templates.properties.product_name}
${software_version}= Get Variable Value ${topology_template.node_templates.properties.software_version}
${descriptor_version}= Get Variable Value ${topology_template.node_templates.properties.descriptor_version}
```
---
${topology_template.node_templates.properties.descriptor_id} evaluates to None, as the file SOL005/VNFPackageManagement-API/descriptors/SOL001/VNFD/vnfd_SOL001.yaml does not have 'properties' under 'topology_template.node_templates'. And this is pretty much true for all the variables listed above, provider, product_name, ... so on.
Are the descriptor files (e.g. SOL001/VNFD/vnfd_SOL001.yaml) provided in the plugtest source for reference purposes only?2.7.1https://forge.etsi.org/rep/nfv/api-tests/-/issues/157Unknown parameter value appeared when testing SOL003 VNFPackageManagementAPI ...2021-09-23T01:43:12ZyaoyuyUnknown parameter value appeared when testing SOL003 VNFPackageManagementAPI V2.6.1When testing case 'GET Individual VNF Package Artifact with Range Request and NFVO supporting Range Requests' in VNFPackageArtifacts.robot.
It failed because Content-length(51) is not eqaul to the length parameter's value(1024).
but the ...When testing case 'GET Individual VNF Package Artifact with Range Request and NFVO supporting Range Requests' in VNFPackageArtifacts.robot.
It failed because Content-length(51) is not eqaul to the length parameter's value(1024).
but the value i set to the length parameter is 51, not 1024.
If i run it in local with the same configueration, it can pass[][de6ee3b3-5e77-4c82-ba60-752982a34149.VNFPackageManagement-API.VNFPackageArtifacts.log.html](/uploads/9610bce6031d663f9f5f6a047086f329/de6ee3b3-5e77-4c82-ba60-752982a34149.VNFPackageManagement-API.VNFPackageArtifacts.log.html)[configuration.txt](/uploads/4bebedcb73d62e8363b03380c4a3bc6a/configuration.txt)https://forge.etsi.org/rep/nfv/api-tests/-/issues/185Parameter value settings in VNFPackageManagementAPI SOL003/SOL0052021-09-22T08:37:04ZyaoyuyParameter value settings in VNFPackageManagementAPI SOL003/SOL005According to the specification file,
when getting the VNF Packages with attribute-based filter, the format should be like (eq,vnfdId,41fdd38a-3d4c-465c-83e0-f80e014425f8)
But now in the parameter text file, the sample settings are offere...According to the specification file,
when getting the VNF Packages with attribute-based filter, the format should be like (eq,vnfdId,41fdd38a-3d4c-465c-83e0-f80e014425f8)
But now in the parameter text file, the sample settings are offered like "vnfdId=41fdd38a-3d4c-465c-83e0-f80e014425f8 ,vnfProvider=NXW"
The reference files are as followed:
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.06.01_60/gs_NFV-SOL003v020601p.pdf (Table 10.4.2.3.2-1: URI query parameters supported by the GET method on this resource)
https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/013/02.06.01_60/gs_NFV-SOL013v020601p.pdf (5.2 Attribute-based filtering)
(Maybe it won't be an issue, since the values can be changed when testing.(`・ω・´))https://forge.etsi.org/rep/nfv/api-tests/-/issues/106Parametrize the json bodies with configuration variables2021-09-22T08:36:39ZMichele CarignaniParametrize the json bodies with configuration variablesThe JSON payloads in the `json` folders currently need to be manually edited to be configured to suit the FUT.
They could be parametrized or "templated" so that at run time they are filled with the information from the `environment/vari...The JSON payloads in the `json` folders currently need to be manually edited to be configured to suit the FUT.
They could be parametrized or "templated" so that at run time they are filled with the information from the `environment/variables.txt` file.
This is particularly relevant when the JSON payloads should include values that are computed at runtime from the test system, e.g. the callbackURL for notification tests: in automated tests system, the actual endpoint may not be known before test execution time, and the JSON payload need to be edited accordingly by the test system.
## Proposed solutions
* Use a complete templating system
* Use Python string formatting capabilitiesFrank BrydenFrank Brydenhttps://forge.etsi.org/rep/nfv/api-tests/-/issues/49Handling text or ZIP vnfds2021-09-22T08:35:46ZElian KrajaHandling text or ZIP vnfds* [ ] NFVO_VNFD_PLAIN not used. Remove from variables file
* [ ] VNFD_PLAIN in variables.txt is not used properly. Should be created VNFD_ZIP and the two variables should be indipendent
* [ ] Review logic of the test cases* [ ] NFVO_VNFD_PLAIN not used. Remove from variables file
* [ ] VNFD_PLAIN in variables.txt is not used properly. Should be created VNFD_ZIP and the two variables should be indipendent
* [ ] Review logic of the test casesElian KrajaElian Krajahttps://forge.etsi.org/rep/nfv/api-tests/-/issues/187Missing set suite variable in keyword in vnfpackagemanagement keyword at mult...2021-09-21T16:43:57ZsinghadiMissing set suite variable in keyword in vnfpackagemanagement keyword at multiple check position```
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd
Check HTTP Response Status Code Is ...```
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"${AUTHORIZATION_HEADER}":"${AUTHORIZATION_TOKEN}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPkgZipVNFD}/vnfd
Check HTTP Response Status Code Is 200
```https://forge.etsi.org/rep/nfv/api-tests/-/issues/160SOL002/VNFLifecycleManagement/IndividualVNFInstance/2.6.1 DELETE queries with...2021-09-20T10:03:29ZvignaudSOL002/VNFLifecycleManagement/IndividualVNFInstance/2.6.1 DELETE queries with Content-Type: application/merge-patch+jsonHi,
When running the complete test IndividualVNFInstance.robot the 2 latest queries are DELETE one. And both are called with the header of a PATCH :
![image](/uploads/9cd1e5a24af0e54342cac66ac669331c/image.png) [log.html](/uploads/b527cf...Hi,
When running the complete test IndividualVNFInstance.robot the 2 latest queries are DELETE one. And both are called with the header of a PATCH :
![image](/uploads/9cd1e5a24af0e54342cac66ac669331c/image.png) [log.html](/uploads/b527cfc3344885165a53ae6c4f826aec/log.html)