Skip to content
Snippets Groups Projects

SOL003 Virtualised Resource Quota - Implementation of deltas between v3.3.1 and v2.7.1

Merged Giacomo Bernini requested to merge 3.3.1-dev-SOL003-VirtualisedResourceQuota into 3.3.1-dev
1 file
+ 13
12
Compare changes
  • Side-by-side
  • Inline
*** Settings ***
Resource environment/variables.txt
Resource VRQANOperationKeywords.robot
Suite Setup Create Sessions
Suite Teardown Terminate All Processes kill=true
Library MockServerLibrary
Library Process
Library OperatingSystem
*** Variables ***
Library Collections
*** Test Cases ***
Deliver a notification - Vr Quota Availibility
[Documentation] Test ID: 11.4.4.1
... Test title: Deliver a notification - Vr Quota Availibility
... Test objective: The objective is to notify related to the availability of the virtualised resources quota.
... Pre-conditions: The VNF has subscribed to the Vr Quota Availibility resource
... Reference: Clause 11.4.4 - ETSI GS NFV-SOL 003 [1] v2.7.1
Virtualised Resource Quota Available Notification
[Documentation] Test ID: 7.3.7.5.1
... Test title: Virtualised Resource Quota Available Notification
... Test objective: The objective is to test the dispatch of Virtualised Resource Quota Available Notification, and perform a JSON schema and content validation of the delivered notification. The action that triggers the notification under test is an explicit test step, but it is not performed by the test system.
... Pre-conditions: A subscription for Virtualised Resource Quota Available Notification is available in the VNFM.
... Reference: Clause 11.4.4.3.1 - ETSI GS NFV-SOL 003 [1] v3.3.1
... Config ID: Config_prod_VNFM
... Applicability:
... Post-Conditions:
log The POST method delivers a notification from the server to the client.
${json}= Get File schemas/VrQuotaAvailNotification.schema.json
${BODY}= evaluate json.loads('''${json}''') json
Log Creating mock request and response to handle Vr Quota AvailibilityNotification
&{req}= Create Mock Request Matcher POST ${callback_endpoint} body_type="JSON_SCHEMA" body=${BODY}
&{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204
Create Mock Expectation ${req} ${rsp}
Sleep ${sleep_interval}
Log Verifying results
Verify Mock Expectation ${req}
Log Cleaning the endpoint
Clear Requests ${callback_endpoint}
Test a notification end point
log The GET method allows the server to test the notification endpoint
&{req}= Create Mock Request Matcher GET ${callback_endpoint}
&{rsp}= Create Mock Response headers="Content-Type: application/json" status_code=204
Create Mock Expectation ${req} ${rsp}
Sleep ${sleep_interval}
Verify Mock Expectation ${req}
Clear Requests ${callback_endpoint}
PUT notification - Method not implemented
Log PUT Method not implemented
&{req}= Create Mock Request Matcher PUT ${callback_endpoint}
&{rsp}= Create Mock Response status_code=405
Create Mock Expectation ${req} ${rsp}
Sleep ${sleep_interval}
Log Verifying results
Verify Mock Expectation ${req}
Log Cleaning the endpoint
Clear Requests ${callback_endpoint}
PATCH subscriptions - Method not implemented
Log PATCH Method not implemented
&{req}= Create Mock Request Matcher PATCH ${callback_endpoint}
&{rsp}= Create Mock Response status_code=405
Create Mock Expectation ${req} ${rsp}
Sleep ${sleep_interval}
Log Verifying results
Verify Mock Expectation ${req}
Log Cleaning the endpoint
Clear Requests ${callback_endpoint}
... Applicability: none
... Post-Conditions: none
Trigger a dispatch of virtualised resource quota available notification (external action)
Check Virtualised Resource Quota Available Notification Http POST Request Body Json Schema Is VrQuotaAvailNotification
Check Virtualised Resource Quota Available Notification Http POST Request Body notificationType attribute Is VrQuotaAvailNotification
*** Keywords ***
DELETE subscriptions - Method not implemented
Log DELETE Method not implemented
&{req}= Create Mock Request Matcher DELETE ${callback_endpoint}
&{rsp}= Create Mock Response status_code=405
Create Mock Expectation ${req} ${rsp}
Sleep ${sleep_interval}
Log Verifying results
Verify Mock Expectation ${req}
Log Cleaning the endpoint
Clear Requests ${callback_endpoint}
Trigger a dispatch of virtualised resource quota available notification (external action)
#do nothing
Log do nothing
Check Virtualised Resource Quota Available Notification Http POST Request Body Json Schema Is
[Arguments] ${element}
${schema}= Get File schemas/${element}.schema.json
Configure Notification Forward ${schema} ${callback_endpoint} ${callback_endpoint_fwd}
Check Virtualised Resource Quota Available Notification Http POST Request Body notificationType attribute Is
[Arguments] ${type}
Configure Virtual Quota Available Notification Handler ${callback_endpoint_fwd} ${type}
Wait Until Keyword Succeeds 2 min 10 sec Verify Mock Expectation ${notification_request}
Clear Requests ${callback_endpoint}
Clear Requests ${callback_endpoint_fwd}
Configure Virtual Quota Available Notification Handler
[Arguments] ${endpoint} ${type}
${json}= evaluate {}
set to dictionary ${json} notificationType ${type}
${BODY}= evaluate json.dumps(${json}) json
Log Creating mock request and response to handle status notification
&{req}= Create Mock Request Matcher POST ${endpoint} body_type="JSON" body=${BODY}
Set Global Variable ${req} ${notification_request}
&{notification_response}= Create Mock Response status_code=204
Create Mock Expectation ${notification_request} ${notification_response}
Configure Notification Forward
[Arguments] ${schema} ${endpoint} ${endpoint_fwd}
Log Creating mock Http POST forward to handle ${schema}
&{notification_tmp}= Create Mock Request Matcher POST ${endpoint} body_type="JSON_SCHEMA" body=${schema}
&{notification_fwd}= Create Mock Http Forward ${endpoint_fwd}
Create Mock Expectation With Http Forward ${notification_tmp} ${notification_fwd}
*** Keywords ***
Create Sessions
Start Process java -jar ${MOCK_SERVER_JAR} -serverPort ${callback_port} alias=mockInstance
Wait For Process handle=mockInstance timeout=5s on_timeout=continue
Create Mock Session ${callback_uri}:${callback_port}
Create Mock Session ${callback_uri}:${callback_port}
Loading