Skip to content
Snippets Groups Projects
Commit 5124b1f8 authored by Elian Kraja's avatar Elian Kraja
Browse files

Completed VNF Indicator Interface

parent fc066fde
No related branches found
No related tags found
No related merge requests found
Showing
with 5775 additions and 1 deletion
*** Settings ***
Library HttpLibrary.HTTP
Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Resource environment/individualSubscription.txt
Library OperatingSystem
*** Test Cases ***
GET Individual Subscription
Log Trying to get a given subscription identified by subscriptionId
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
Response Status Code Should Equal 200
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Received a 200 OK as expected
${result}= Get Response Body
${json}= evaluate json.loads('''${result}''') json
Validate Json VnfIndicatorSubscriptions.schema.json ${json}
Log Validated VnfIndicatorSubscription schema
GET Subscription - Negative (Not Found)
Log Trying to perform a request on a subscriptionID which doesn't exist
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${erroneousSubscriptionId}
Response Status Code Should Equal 404
Log Received 404 Not Found as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET Subscription - Negative (Unauthorized: Wrong Token)
Log Trying to perform a negative get, using wrong authorization bearer
Pass Execution If ${VNFM_AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
Response Status Code Should Equal 401
Log Received 401 Unauthorized as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
DELETE Subscription
Log Trying to perform a DELETE on a subscriptionId
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
DELETE ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
Response Status Code Should Equal 204
Log Received 204 No Content as expected
Log Trying to get the deleted element
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
Response Status Code Should Equal 404
Log The subscriptionId is not present in database
DELETE Subscription - Negative (Not Found)
Log Trying to perform a DELETE on a subscriptionId which doesn't exist
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
DELETE ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${erroneousSubscriptionId}
Response Status Code Should Equal 404
Log The subscriptionId is not present in database
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
PUT Subscription - (Method not implemented)
Log Trying to perform a PUT. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
PUT ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
PATCH Subscription - (Method not implemented)
Log Trying to perform a PATCH. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
Http Request PATCH ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
POST Subscription - (Method not implemented)
Log Trying to perform a POST. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
*** Settings ***
Library HttpLibrary.HTTP
Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Resource environment/individualVnfIndicator.txt
*** Test Cases ***
GET Individual VNF Indicator
Log The GET method reads a VNF indicator.
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
Response Status Code Should Equal 200
${result}= Get Response Body
${json}= evaluate json.loads('''${vnfPkgInfo}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate response
Validate Json vnfIndicators.schema.json ${json}
Log Validation OK
GET Individual VNF Indicator - Negative (Not Found)
Log Trying to perform a negative get, using an erroneous package ID
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${erroneousIndicatorId}
Response Status Code Should Equal 404
Log Received 404 Not Found as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET Individual VNF Indicator - Negative (Unauthorized: Wrong Token)
Log Trying to perform a negative get, using wrong authorization bearer
Pass Execution If ${VNFM_AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Set Request Header Authorization ${NEG_AUTHORIZATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
Response Status Code Should Equal 401
Log Received 401 Unauthorized as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET Individual VNF Indicator - Negative (Unauthorized: No Token)
Log Trying to perform a negative get, without authentication token.
Pass Execution If ${VNFM_AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
Response Status Code Should Equal 401
Log Received 401 Unauthozired as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
POST Individual VNF Indicator (Method not implemented)
Log Trying to perform a POST (method should not be implemented)
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
POST ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
PUT Individual VNF Indicator (Method not implemented)
Log Trying to perform a PUT. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
PUT ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
PATCH Individual VNF Indicator (Method not implemented)
Log Trying to perform a PATCH. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
Http Request PATCH ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
DELETE Individual VNF Indicator (Method not implemented)
Log Trying to perform a DELETE. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
DELETE ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}/${indicatorId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
This diff is collapsed.
*** Settings ***
Library HttpLibrary.HTTP
Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Resource environment/subscriptions.txt
Library OperatingSystem
Library JSONLibrary
*** Test Cases ***
GET Subscription
Log Trying to get the list of subscriptions
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions
Response Status Code Should Equal 200
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Received a 200 OK as expected
${result}= Get Response Body
${json}= evaluate json.loads('''${result}''') json
Validate Json VnfIndicatorSubscription.schema.json ${json}
Log Validated VnfIndicatorSubscription schema
GET Subscription - Filter
Log Trying to get the list of subscriptions using filters
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${POS_FILTER}
Response Status Code Should Equal 200
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Received a 200 OK as expected
${result}= Get Response Body
${json}= evaluate json.loads('''${result}''') json
Validate Json VnfIndicatorSubscriptions.schema.json ${json}
Log Validated VnfIndicatorSubscriptions schema
GET Subscription - Negative Filter
Log Trying to get the list of subscriptions using filters with wrong attribute name
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions?${NEG_FILTER}
Response Status Code Should Equal 400
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Received a 400 Bad Request as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET Subscription - Negative (Not Found)
Log Trying to perform a request on a Uri which doesn't exist
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/subscription
Response Status Code Should Equal 404
Log Received 404 Not Found as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET Subscription - Negative (Unauthorized: Wrong Token)
Log Trying to perform a negative get, using wrong authorization bearer
Pass Execution If ${VNFM_AUTH_USAGE} == 0 Skipping test as VNFM is not supporting authentication
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
GET ${apiRoot}/${apiName}/${apiVersion}/subscriptions
Response Status Code Should Equal 401
Log Received 401 Unauthorized as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
POST Subscription
Log Trying to create a new subscription
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Set Request Header Content-Type ${CONTENT_TYPE_JSON}
${body}= Get File json/subscriptions.json
Set Request Body ${body}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions
Response Status Code Should Equal 201
Log Received 201 Created as expected
Response Should Have Header Location
Log Response has header Location
${result}= Get Response Body
${json}= evaluate json.loads('''${result}''') json
Validate Json VnfIndicatorSubscriptions.schema.json ${json}
Log Validation of VnfIndicatorSubscription OK
POST Subscription - DUPLICATION
Log Trying to create a subscription with an already created content
Pass Execution If ${VNFM_DUPLICATION} == 0 VNFM is not permitting duplication. Skipping the test
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Set Request Header Content-Type ${CONTENT_TYPE_JSON}
${body}= Get File json/subscriptions.json
Set Request Body ${body}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions
Response Status Code Should Equal 201
Log Received 201 Created as expected
Response Should Have Header Location
Log Response has header Location
${result} Get Response Body
${json}= evaluate json.loads('''${result}''') json
Validate Json VnfIndictorSubscriptions.schema.json ${json}
Log Validation of VnfIndicatorSubscriptions OK
POST Subscription - NO DUPLICATION
Log Trying to create a subscription with an already created content
Pass Execution If ${VNFM_DUPLICATION} == 1 VNFM is permitting duplication. Skipping the test
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Set Request Header Content-Type ${CONTENT_TYPE_JSON}
${body}= Get File json/subscriptions.json
Set Request Body ${body}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions
Response Status Code Should Equal 303
Log Received 303 See Other as expected
Response Should Have Header Location
Log Response header contains Location
PUT Subscription - (Method not implemented)
Log Trying to perform a PUT. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
PUT ${apiRoot}/${apiName}/${apiVersion}/subscriptions
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
PATCH Subscription - (Method not implemented)
Log Trying to perform a PATCH. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
Http Request PATCH ${apiRoot}/${apiName}/${apiVersion}/subscriptions
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
DELETE Subscription - (Method not implemented)
Log Trying to perform a DELETE. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
DELETE ${apiRoot}/${apiName}/${apiVersion}/subscriptions
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
*** Settings ***
Library HttpLibrary.HTTP
Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Library JSONLibrary
Resource environment/vnfIndicators.txt
*** Test Cases ***
GET all Indicators
Log The GET method queries multiple VNF indicators
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators
Response Status Code Should Equal 200
${result}= Get Response Body
${json}= evaluate json.loads('''${result}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate response
Validate Json vnfIndicators.schema.json ${json}
Log Validation OK
GET all Indicators - Filter
Log The GET method queries multiple VNF indicators using Attribute-based filtering parameters
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators?${POS_FIELDS}
Response Status Code Should Equal 200
${result}= Get Response Body
${json}= evaluate json.loads('''${result}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate response
Validate Json vnfIndicators.schema.json ${json}
Log Validation OK
GET all Indicators - Negative (wronge filter name)
Log The GET method queries multiple VNF indicators using Attribute-based filtering parameters. Negative case, with erroneous attribute name
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators?${NEG_FIELDS}
Response Status Code Should Equal 400
Log Received 400 Bad Request as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET all Indicators - Negative (Unauthorized: Wrong Token)
Log Trying to perform a negative get, using wrong authorization bearer
Pass Execution If ${VNFM_AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Set Request Header Authorization ${NEG_AUTHORIZATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators
Response Status Code Should Equal 401
Log Received 401 Unauthorized as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET all Indicators - Negative (Unauthorized: No Token)
Log Trying to perform a negative get, using wrong authorization bearer
Pass Execution If ${VNFM_AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Set Request Header Authorization ${NEG_AUTHORIZATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators
Response Status Code Should Equal 401
Log Received 401 Unauthorized as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET all Indicators (Negative: Not found)
Log Trying to perform a GET on a erroneous URI
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicator
Response Status Code Should Equal 404
Log Received 404 Not Found as expected
${problemDetails}= Get Response Body
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${problemDetails}
Log Validation OK
POST all Indicators (Method not implemented)
Log Trying to perform a POST (method should not be implemented)
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
POST ${apiRoot}/${apiName}/${apiVersion}/indicators
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
PUT all Indicators (Method not implemented)
Log Trying to perform a PUT. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
PUT ${apiRoot}/${apiName}/${apiVersion}/indicators
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
PATCH all Indicators (Method not implemented)
Log Trying to perform a PUT. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
Http Request PATCH ${apiRoot}/${apiName}/${apiVersion}/indicators
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
DELETE all Indicators (Method not implemented)
Log Trying to perform a PUT. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
DELETE ${apiRoot}/${apiName}/${apiVersion}/indicators
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
*** Settings ***
Library HttpLibrary.HTTP
Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Resource environment/vnfIndicatorinVnfInstance.txt
Library JSONLibrary
*** Test Cases ***
GET Indicators on VNF Instance
Log This resource represents VNF indicators related to a VNF instance.
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}
Response Status Code Should Equal 200
${result}= Get Response Body
${json}= evaluate json.loads('''${result}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate response
Validate Json vnfIndicators.schema.json ${json}
Log Validation OK
GET Indicators on VNF Instance - Filter
Log This resource represents VNF indicators related to a VNF instance.
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}?${POS_FIELDS}
Response Status Code Should Equal 200
${result}= Get Response Body
${json}= evaluate json.loads('''${result}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate response
Validate Json vnfIndicators.schema.json ${json}
Log Validation OK
GET Indicators on VNF Instance - Negative Filter
Log This resource represents VNF indicators related to a VNF instance.
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}?${NEG_FIELDS}
Response Status Code Should Equal 400
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET Indicators on VNF Instance - Negative (Not Found)
Log Trying to perform a negative get, using wrong authorization bearer
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators/${erroneousVnfInstanceId}
Response Status Code Should Equal 404
Log Received 404 Not Found as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET Indicators on VNF Instancee - Negative (Unauthorized: Wrong Token)
Log Trying to perform a negative get, using wrong authorization bearer
Pass Execution If ${VNFM_AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Set Request Header Authorization ${NEG_AUTHORIZATION}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}
Response Status Code Should Equal 401
Log Received 401 Unauthorized as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
GET Indicators on VNF Instance - Negative (Unauthorized: No Token)
Log Trying to perform a negative get, without authentication token.
Pass Execution If ${VNFM_AUTH_USAGE} == 0 Skipping test as NFVO is not supporting authentication
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
GET ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}
Response Status Code Should Equal 401
Log Received 401 Unauthorized as expected
${problemDetails}= Get Response Body
${json}= evaluate json.loads('''${problemDetails}''') json
Response Header Should Equal Content-Type ${CONTENT_TYPE_JSON}
Log Trying to validate ProblemDetails
Validate Json ProblemDetails.schema.json ${json}
Log Validation OK
POST Indicators on VNF Instance - (Method not implemented)
Log Trying to perform a POST (method should not be implemented)
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
POST ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
PUT Indicators on VNF Instance - (Method not implemented)
Log Trying to perform a PUT. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
PUT ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
PATCH Indicators on VNF Instance - (Method not implemented)
Log Trying to perform a PATCH. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
Http Request PATCH ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
DELETE Indicators on VNF Instance - (Method not implemented)
Log Trying to perform a DELETE. This method should not be implemented
Create HTTP Context ${VNFM_HOST}:${VNFM_PORT} ${VNFM_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${VNFM_AUTH_USAGE} == 1 Set Request Header Authorization ${VNFM_AUTHENTICATION}
DELETE ${apiRoot}/${apiName}/${apiVersion}/indicators/${vnfInstanceId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
*** Variables ***
${VNFM_HOST} localhost # Hostname of the VNFM
${VNFM_PORT} 8080 # Listening port of the VNFM
${NFVO_HOST} localhost # Hostname of the NFVO
${NFVO_PORT} 8081 # Listening port of the NFVO
${VNFM_SCHEMA} https
${NFVO_SCHEMA} https
${AUTHORIZATION} Bearer 0b79bab50daca910b000d4f1a2b675d604257e42
${CONTENT_TYPE_JSON} application/json
${ACCEPT_JSON} application/json
${apiRoot} /
${AUTH_USAGE} 1
${NEG_AUTHORIZATION} Bearer negativetoken
${apiVersion} v1
${apiName} vnfind
${FIELD_USAGE} 1
${VNFM_AUTHENTICATION} Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
${VNFM_AUTH_USAGE} 1
*** Variables ***
${subscriptionId} f3ae6df7-07e1-47c9-8924-9ebe10343586
${erroneousSubscriptionId} 442e3ee5-0499-4849-9b31-eb91ce1638f1 # Not existing ID on the subscriptions
*** Variables ***
${vnfInstanceId} 80b0deba-c398-445b-bef0-ac0fe733e3d0
${indicatorId} 34e70855-a9d3-4fef-aece-76a3cd266ec8
${erroneousIndicatorId} erroneousIndicatorId
*** Variables ***
${vnfInstanceId} 80b0deba-c398-445b-bef0-ac0fe733e3d0
${indicatorId} 34e70855-a9d3-4fef-aece-76a3cd266ec8
${erroneousIndicatorId} erroneousIndicatorId
${POS_FILTER} callbackUri=http://127.0.0.1/subscribe
${NEG_FILTER} callback=http://127.0.0.1/subscribe
${VNFM_DUPLICATION} 1
*** Variables ***
${vnfInstanceId} 80b0deba-c398-445b-bef0-ac0fe733e3d0
${erroneousVnfInstanceId} erroneousVnfInstanceId
${POS_FIELDS} name=vnfIndicator
${NEG_FIELDS} wrongName=any_value
*** Variables ***
${POS_FIELDS} name=vnfIndicator&vnfInstanceId=80b0deba-c398-445b-bef0-ac0fe733e3d0
${NEG_FIELDS} wrongName=wrongValue
{
"callbackUri": "http://127.0.0.1/subscribe"
}
\ No newline at end of file
{ "type": "array", "items": { "description": "This type represents a subscription related to notifications about VNF indicator value changes.\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 subscription filter related to notifications about VNF indicator value 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", "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" } } } }, "indicatorIds": { "description": "Match particular VNF indicator identifiers.\n", "type": "array", "items": { "description": "An identifier that is unique within a VNF descriptor.\n", "type": "string" } } } }, "callbackUri": { "description": "The URI of the endpoint to send the notification to.\n", "type": "string", "format": "url" }, "_links": { "description": "Links for 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
{ "type": "array", "items": { "description": "This type represents a VNF indicator value.\n", "type": "object", "required": [ "id", "value", "vnfInstanceId", "_links" ], "properties": { "id": { "description": "An identifier that is unique within a VNF descriptor.\n", "type": "string" }, "name": { "description": "Human readable name of the indicator. Shall be present if defined in the VNFD.\n", "type": "string" }, "value": { "description": "Provides the value of the indicator. The value format is defined in the VNFD. ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications.\n", "type": "object" }, "vnfInstanceId": { "description": "An identifier with the intention of being globally unique.\n", "type": "string" }, "_links": { "description": "Links for this resource.\n", "type": "object", "required": [ "self", "vnfInstance" ], "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" } } }, "vnfInstance": { "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
......@@ -4,10 +4,11 @@ Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Resource environment/individualSubscription.txt
Library OperatingSystem
Library JSONLibrary
*** Test Cases ***
GET Individual Subscription
Log Trying to get the list of subscriptions
Log Trying to get a single subscription identified by subscriptionId
Create HTTP Context ${NFVO_HOST}:${NFVO_PORT} ${NFVO_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${AUTH_USAGE} == 1 Set Request Header Authorization ${AUTHORIZATION}
......@@ -98,3 +99,12 @@ PATCH Subscription - (Method not implemented)
Http Request PATCH ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
POST Subscription - (Method not implemented)
Log Trying to perform a POST. This method should not be implemented
Create HTTP Context ${NFVO_HOST}:${NFVO_PORT} ${NFVO_SCHEMA}
Set Request Header Accept ${ACCEPT_JSON}
Run Keyword If ${AUTH_USAGE} == 1 Set Request Header Authorization ${AUTHORIZATION}
POST ${apiRoot}/${apiName}/${apiVersion}/subscriptions/${subscriptionId}
Response Status Code Should Equal 405
Log Received 405 Method not implemented as expected
......@@ -3,6 +3,7 @@ Library HttpLibrary.HTTP
Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Resource environment/individualVnfPackage.txt
Library JSONLibrary
*** Test Cases ***
GET Individual VNF Package
......
......@@ -4,6 +4,7 @@ Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Resource environment/subscriptions.txt
Library OperatingSystem
Library JSONLibrary
*** Test Cases ***
GET Subscription
......
......@@ -3,6 +3,7 @@ Library HttpLibrary.HTTP
Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Resource environment/vnfdInIndividualVnfPackage.txt
Library JSONLibrary
*** Test Cases ***
GET VNFD in Individual VNF Package (PLAIN/PLAIN)
......
......@@ -3,6 +3,7 @@ Library HttpLibrary.HTTP
Library JSONSchemaLibrary schemas/
Resource environment/generic.txt # Generic Parameters
Resource environment/vnfPackageArtifacts.txt
Library JSONLibrary
*** Test Cases ***
GET VNF Package Artifact
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment