Commit 6e2862b6 authored by Elian Kraja's avatar Elian Kraja
Browse files

This commit fixes issues: #30, #31, #32, #33 (partially), #37, #38, #39, #40, #41, #42

parent 3caff1e2
......@@ -39,7 +39,7 @@ Get information about a configuration
Get ${apiRoot}/${apiName}/${apiVersion}/alarms/${alarmId}
Log Validate Status code
Integer response status 200
${etag} Output response header ETag
${etag} Output response headers ETag
Set Suite Variable &{original_etag} ${etag}
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE}
......
......@@ -28,7 +28,7 @@ Change deployment flavour of a vnfInstance Conflict (Not-Instantiated)
... Typically, this is due to the fact that the VNF instance resource is in NOT-INSTANTIATED state,
... or that another lifecycle management operation is ongoing.
... The response body shall contain a ProblemDetails structure, in which the �detail� attribute should convey more information about the error.
[Setup] Check resource not instantiated
[Setup] Check resource not instantiated ${vnfInstanceId}
Log Trying to change the deployment flavour of a VNF instance.
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
......@@ -99,10 +99,11 @@ Check resource existance
Integer response status 200
Check resource not instantiated
[Arguments] ${instanceId}
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${instanceId}
String response body instantiationState NOT_INSTANTIATED
Check change flavour not supported
......
......@@ -13,7 +13,7 @@ Heal a vnfInstance
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/healVnFRequest.json
${body}= Get File jsons/healVnfRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/heal ${body}
Integer response status 202
Log Status code validated
......@@ -28,12 +28,12 @@ Heal a vnfInstance Conflict (Not-Instantiated)
... Typically, this is due to the fact that the VNF instance resource is in NOT-INSTANTIATED state,
... or that another lifecycle management operation is ongoing.
... The response body shall contain a ProblemDetails structure, in which the �detail� attribute should convey more information about the error.
[Setup] Check resource not instantiated
[Setup] Check resource not instantiated ${vnfInstanceId}
Log Trying to heal a VNF instance.
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/healVnFRequest.json
${body}= Get File jsons/healVnfRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/heal ${body}
Integer response status 409
Log Status code validated
......@@ -53,7 +53,7 @@ Heal a vnfInstance Not Found
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/healVnFRequest.json
${body}= Get File jsons/healVnfRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/heal ${body}
Integer response status 404
Log Status code validated
......@@ -98,10 +98,11 @@ Check resource existance
Integer response status 200
Check resource not instantiated
[Arguments] ${instanceId}
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${instanceId}
String response body instantiationState NOT_INSTANTIATED
Check heal not supported
......
......@@ -37,7 +37,7 @@ Get Information about an individual VNF Instance
${result}= Output response body
Validate Json vnfInstance.schema.json ${result}
Log Validation OK
${etag} Output response header ETag
${etag} Output response headers ETag
Set Suite Variable &{original_etag} ${etag}
PUT Individual VNFInstance - Method not implemented
......
......@@ -28,7 +28,7 @@ Operate a vnfInstance Conflict (Not-Instantiated)
... Typically, this is due to the fact that the VNF instance resource is in NOT-INSTANTIATED state,
... or that another lifecycle management operation is ongoing.
... The response body shall contain a ProblemDetails structure, in which the �detail� attribute should convey more information about the error.
[Setup] Check resource not instantiated
[Setup] Check resource not instantiated ${vnfInstanceId}
Log Trying to change the operational state of a VNF instance.
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
......@@ -99,10 +99,11 @@ Check resource existance
Integer response status 200
Check resource not instantiated
[Arguments] ${instanceId}
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${instanceId}
String response body instantiationState NOT_INSTANTIATED
Check operate not supported
......
......@@ -27,7 +27,7 @@ Scale a vnfInstance Conflict (Not-Instantiated)
... The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource.
... Typically, this is due to the fact that the VNF instance resource is in NOT-INSTANTIATED state, or that another lifecycle management operation is ongoing.
... The response body shall contain a ProblemDetails structure, in which the �detail� attribute should convey more information about the error.
[Setup] Check resource not instantiated
[Setup] Check resource not instantiated ${vnfInstanceId}
Log Trying to Scale a vnf Instance
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
......@@ -97,10 +97,11 @@ Check resource existance
Integer response status 200
Check resource not instantiated
[Arguments] ${instanceId}
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${instanceId}
String response body instantiationState NOT_INSTANTIATED
Check scale not supported
......
......@@ -27,7 +27,7 @@ Scale a vnfInstance to level Conflict (Not-Instantiated)
... The operation cannot be executed currently, due to a conflict with the state of the VNF instance resource.
... Typically, this is due to the fact that the VNF instance resource is in NOT-INSTANTIATED state, or that another lifecycle management operation is ongoing.
... The response body shall contain a ProblemDetails structure, in which the �detail� attribute should convey more information about the error.
[Setup] Check resource not instantiated
[Setup] Check resource not instantiated ${vnfInstanceId}
Log Trying to Scale a vnf Instance
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
......@@ -102,10 +102,11 @@ Check resource existance
Integer response status 200
Check resource not instantiated
[Arguments] ${instanceId}
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${instanceId}
String response body instantiationState NOT_INSTANTIATED
Check scale to level not supported
......
......@@ -13,7 +13,7 @@ Terminate a vnfInstance
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/terminateVnFRequest.json
${body}= Get File jsons/terminateVnfRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/terminate ${body}
Integer response status 202
Log Status code validated
......@@ -28,12 +28,12 @@ Terminate a vnfInstance Conflict (Not-Instantiated)
... Typically, this is due to the fact that the VNF instance resource is in NOT-INSTANTIATED state,
... or that another lifecycle management operation is ongoing.
... The response body shall contain a ProblemDetails structure, in which the �detail� attribute should convey more information about the error.
[Setup] Check resource not instantiated
[Setup] Check resource not instantiated ${vnfInstanceId}
Log Trying to terminate a VNF instance.
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/terminateVnFRequest.json
${body}= Get File jsons/terminateVnfRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/terminate ${body}
Integer response status 409
Log Status code validated
......@@ -79,10 +79,11 @@ Check resource existance
Integer response status 200
Check resource not instantiated
[Arguments] ${instanceId}
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}
Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${instanceId}
String response body instantiationState NOT_INSTANTIATED
Check change flavour not supported
......
......@@ -36,7 +36,7 @@ Get information about an alarm
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
Log Execute Query and validate response
Get ${apiRoot}/${apiName}/${apiVersion}/alarms/${alarmId}
${etag} Output response header ETag
${etag} Output response headers ETag
Set Suite Variable &{original_etag} ${etag}
Log Validate Status code
Integer response status 200
......
......@@ -14,7 +14,7 @@ Heal a vnfInstance
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/healVnFRequest.json
${body}= Get File jsons/healVnfRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/heal ${body}
Integer response status 202
Log Status code validated
......@@ -34,7 +34,7 @@ Heal a vnfInstance Conflict (Not-Instantiated)
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/healVnFRequest.json
${body}= Get File jsons/healVnfRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/heal ${body}
Integer response status 409
Log Status code validated
......@@ -55,7 +55,7 @@ Heal a vnfInstance Not Found
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/healVnFRequest.json
${body}= Get File jsons/healVnfRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/heal ${body}
Integer response status 404
Log Status code validated
......
......@@ -37,7 +37,7 @@ Get Information about an individual VNF Instance
${result}= Output response body
Validate Json vnfInstance.schema.json ${result}
Log Validation OK
${etag} Output response header ETag
${etag} Output response headers ETag
Set Suite Variable &{original_etag} ${etag}
PUT Individual VNFInstance - Method not implemented
......
......@@ -14,7 +14,7 @@ Terminate a vnfInstance
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/terminateVnFRequest.json
${body}= Get File jsons/terminateVnfRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/terminate ${body}
Integer response status 202
Log Status code validated
......@@ -34,7 +34,7 @@ Terminate a vnfInstance Conflict (Not-Instantiated)
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/terminateVnFRequest.json
${body}= Get File jsons/terminateVnfRequest.json
Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/terminate ${body}
Integer response status 409
Log Status code validated
......
......@@ -140,7 +140,7 @@ Send Heal VNF Request
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/healVnFRequest.json
${body}= Get File jsons/healVnfRequest.json
${response}= Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/heal ${body}
Send Change Ext Connectivity Request
......@@ -156,7 +156,7 @@ Send Terminate VNF Request
Set Headers {"Accept":"${ACCEPT}"}
Set Headers {"Content-Type": "${CONTENT_TYPE}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"}
${body}= Get File jsons/terminateVnFRequest.json
${body}= Get File jsons/terminateVnfRequest.json
${response}= Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/terminate ${body}
Send Info Modification Request
......
{
"type": "object",
"description": "This type represents a subscription related to notifications about VNF lifecycle changes.\n",
"required": [
"id",
"callbackUri",
"_links"
],
"properties": {
"id": {
"type": "string",
"description": "An identifier with the intention of being globally unique.\n"
},
"filter": {
"type": "object",
"description": "This type represents a subscription filter related to notifications about VNF lifecycle changes. At a particular nesting level in the filter structure, the following applies: All attributes shall match in order for the filter to match (logical \"and\" between different filter attributes). If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical \"or\" between the values of one filter attribute).\n",
"properties": {
"vnfInstanceSubscriptionFilter": {
"type": "object",
"description": "This type represents subscription filter criteria to match VNF instances.\n",
"properties": {
"vnfdIds": {
"type": "array",
"description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
"items": {
"type": "string",
"description": "An identifier with the intention of being globally unique.\n"
}
},
"vnfProductsFromProviders": {
"type": "array",
"description": "If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
"items": {
"type": "object",
"required": [
"vnfProvider"
],
"properties": {
"vnfProvider": {
"type": "string",
"description": "Name of the VNF provider to match.\n"
},
"vnfProducts": {
"type": "array",
"description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n",
"items": {
"type": "object",
"required": [
"vnfProductName"
],
"properties": {
"vnfProductName": {
"type": "string",
"description": "Name of the VNF product to match.\n"
},
"versions": {
"type": "array",
"description": "If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n",
"items": {
"type": "object",
"required": [
"vnfSoftwareVersion"
],
"properties": {
"vnfSoftwareVersion": {
"type": "string",
"description": "A version.\n"
},
"vnfdVersions": {
"type": "array",
"description": "If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n",
"items": {
"type": "string",
"description": "A version.\n"
}
}
}
}
}
}
}
}
}
}
},
"vnfInstanceIds": {
"type": "array",
"description": "If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
"items": {
"type": "string",
"description": "An identifier with the intention of being globally unique.\n"
}
},
"vnfInstanceNames": {
"type": "array",
"description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n",
"items": {
"type": "string"
}
}
}
},
"notificationTypes": {
"type": "array",
"description": "Match particular notification types. Permitted values: * VnfLcmOperationOccurrenceNotification * VnfIdentifierCreationNotification * VnfIdentifierDeletionNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n",
"items": {
"type": "string",
"enum": [
"VnfLcmOperationOccurrenceNotification",
"VnfIdentifierCreationNotification",
"VnfIdentifierDeletionNotification"
]
}
},
"operationTypes": {
"type": "array",
"description": "Match particular VNF lifecycle operation types for the notification of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
"items": {
"type": "string",
"enum": [
"INSTANTIATE",
"SCALE",
"SCALE_TO_LEVEL",
"CHANGE_FLAVOUR",
"TERMINATE",
"HEAL",
"OPERATE",
"CHANGE_EXT_CONN",
"MODIFY_INFO"
],
"description": "Value | 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. \n"
}
},
"operationStates": {
"type": "array",
"description": "Match particular LCM operation state values as reported in notifications of type VnfLcmOperationOccurrenceNotification. May be present if the \"notificationTypes\" attribute contains the value \"VnfLcmOperationOccurrenceNotification\", and shall be absent otherwise.\n",
"items": {
"type": "string",
"enum": [
"STARTING",
"PROCESSING",
"COMPLETED",
"FAILED_TEMP",
"FAILED",
"ROLLING_BACK",
"ROLLED_BACK"
],
"description": "Value | Description ------|------------ STARTING | The LCM operation is starting. PROCESSING | The LCM operation is currently in execution. COMPLETED | he LCM operation has been completed successfully. FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action won't succeed. ROLLING_BACK | The LCM operation is currently being rolled back. ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the VNF prior to the original operation invocation has been restored as closely as possible.\n"
}
}
}
},
"callbackUri": {
"type": "string",
"description": "String formatted according to IETF RFC 3986.\n"
},
"_links": {
"type": "object",
"description": "Links to resources related to this resource.\n",
"required": [
"self"
],
"properties": {
"self": {
"type": "object",
"description": "This type represents a link to a resource.\n",
"required": [
"href"
],
"properties": {
"href": {
"type": "string",
"description": "URI of the referenced resource.\n",
"format": "url"
}
}
}
}
}
}
}
\ No newline at end of file
{ "type": "array", "items": { "description": "This type represents a subscription.\n", "type": "object", "required": [ "id", "callbackUri", "_links" ], "properties": { "id": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" }, "filter": { "description": "This type represents a filter that can be used to subscribe for notifications related to performance management events.\n", "type": "object", "properties": { "vnfInstanceSubscriptionFilter": { "description": "This type represents subscription filter criteria to match VNF instances.\n", "type": "object", "properties": { "vnfdIds": { "description": "If present, match VNF instances that were created based on a VNFD identified by one of the vnfdId values listed in this attribute. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" } }, "vnfProductsFromProviders": { "description": "If present, match VNF instances that belong to VNF products from certain providers. The attributes \"vnfdIds\" and \"vnfProductsFromProviders\" are alternatives to reference to VNF instances that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", "type": "array", "items": { "type": "object", "required": [ "vnfProvider" ], "properties": { "vnfProvider": { "description": "Name of the VNF provider to match.\n", "type": "string" }, "vnfProducts": { "description": "If present, match VNF instances that belong to VNF products with certain product names, from one particular provider.\n", "type": "array", "items": { "type": "object", "required": [ "vnfProductName" ], "properties": { "vnfProductName": { "description": "Name of the VNF product to match.\n", "type": "string" }, "versions": { "description": "If present, match VNF instances that belong to VNF products with certain versions and a certain product name, from one particular provider.\n", "type": "array", "items": { "type": "object", "required": [ "vnfSoftwareVersion" ], "properties": { "vnfSoftwareVersion": { "description": "A version.\n", "type": "string" }, "vnfdVersions": { "description": "If present, match VNF instances that belong to VNF products with certain VNFD versions, a certain software version and a certain product name, from one particular provider.\n", "type": "array", "items": { "description": "A version.\n", "type": "string" } } } } } } } } } } }, "vnfInstanceIds": { "description": "If present, match VNF instances with an instance identifier listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", "type": "array", "items": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" } }, "vnfInstanceNames": { "description": "If present, match VNF instances with a VNF Instance Name listed in this attribute. The attributes \"vnfInstanceIds\" and \"vnfInstanceNames\" are alternatives to reference to particular VNF Instances in a filter. They should not be used both in the same filter instance, but one alternative should be chosen.\n", "type": "array", "items": { "type": "string" } } } }, "notificationTypes": { "description": "Match particular notification types. Permitted values: * ThresholdCrossedNotification * PerformanceInformationAvailableNotification The permitted values of the \"notificationTypes\" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems.\n", "type": "string", "enum": [ "ThresholdCrossedNotification", "PerformanceInformationAvailableNotification" ] } } }, "callbackUri": { "description": "The URI of the endpoint to send the notification to.\n", "type": "string", "format": "url" }, "_links": { "description": "Links to resources related to this resource.\n", "type": "object", "required": [ "self" ], "properties": { "self": { "description": "This type represents a link to a resource.\n", "type": "object", "required": [ "href" ], "properties": { "href": { "description": "URI of the referenced resource.\n", "type": "string", "format": "url" } } } } } } }}
\ No newline at end of file
......@@ -37,7 +37,7 @@ GET Subscription - Negative Filter
Log Trying to get the list of subscriptions using filters with wrong attribute name
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${filter_ok}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${filter_ko}
Integer response status 400
Log Received a 400 Bad Request as expected
${contentType}= Output response headers Content-Type
......
......@@ -27,19 +27,11 @@ GET VNF Package Artifact - Range
Should Contain ${headers} Content-Range
Should Contain ${headers} Content-Length
GET VNF Package Artifact - NFVO No RANGE
Log Trying to get an Artifact using RANGE Header and using an NFVO that cannot handle it
Pass Execution If ${NFVO_RANGE_OK} == 1 Skipping this test as NFVO is able to handle partial Requests.
Set Headers {"Range": "${range}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath}
Integer response status 200
Log Received 200 OK as expected. The content is all available on this request. RANGE request has been ignored.
GET VNF Package Artifact - Negative Range
Log Trying to get a range of bytes of the limit of the VNF Package
Pass Execution If ${NFVO_RANGE_OK} == 0 Skipping this test as NFVO is not able to handle partial Requests.
Set Headers {"Range": "${range}"}
Set Headers {"Range": "${erroneousRange}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/artifacts/${artifactPath}
Integer response status 416
......@@ -67,7 +59,7 @@ GET VNF Package Artifact- Negative (Not Found)
GET VNF Package Artifact - Negative (onboardingState issue)
Log Trying to get a VNF Package artifact present in the NFVO Catalogue, but not in ONBOARDED operationalStatus
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${erroneousVnfPkgId}/artifacts/${artifactPath}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${onboardingStateVnfPkgId}/artifacts/${artifactPath}
Integer response status 409
Log Received 409 Conflict as expected
${contentType}= Output response headers Content-Type
......
......@@ -30,15 +30,6 @@ GET VNF Package Content - Range
Should Contain ${headers} Content-Length
Log Header Content-Length is present
GET VNF Package Content - Range NFVO No RANGE
Log Trying to get a VNF Package Content using RANGE using an NFVO that can handle it
Pass Execution If ${NFVO_RANGE_OK} == 1 Skipping this test as NFVO is able to handle partial Requests.
Set Headers {"Accept": "${ACCEPT_ZIP}"}
Set Headers {"Range": "${range}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages/${vnfPackageId}/package_content
Integer response status 200
Log Received 200 OK as expected. The content is all available on this request. RANGE request has been ignored.
GET VNF Package Content - Negative Range
Log Trying to get a range of bytes of the limit of the VNF Package
......
......@@ -156,7 +156,7 @@ GET all Packages - exclude_fields
Pass Execution If ${NFVO_FIELDS} == 0 The NFVO is not able to use exclude_fields option
Set Headers {"Accept": "${ACCEPT_JSON}"}
Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages?exlude_fields=${fields}
GET ${apiRoot}/${apiName}/${apiVersion}/vnf_packages?exclude_fields=${fields}
Integer response status 200
${contentType}= Output response headers Content-Type
Should Contain ${contentType} ${CONTENT_TYPE_JSON}
......
......@@ -10,6 +10,7 @@ ${NEG_AUTHORIZATION} Bearer negativetoken
${NFVO_FIELDS} 1
${vnfPackageId} 788106a2-d692-44f3-a86d-384f0ce35e42
${onboardingStateVnfPkgId} f9f130e4-05eb-4082-a676-4c97d13a883d
${apiRoot} /
${apiVersion} v1
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment