*** Settings *** Resource environment/configuration.txt Resource environment/variables.txt Resource environment/scaleVariables.txt Library REST ${VNFM_SCHEMA}://${VNFM_HOST}:${VNFM_PORT} spec=SOL003-VNFLifecycleManagement-API.yaml Library OperatingSystem Library BuiltIn Library JSONLibrary Library Collections Library JSONSchemaLibrary schemas/ *** Keywords *** Get Vnf Instance [Arguments] ${vnfInstanceId} 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} ${body}= Output response body ${json}= evaluate json.loads('''${body}''') json [Return] ${json} Check HTTP Response Status Code Is [Arguments] ${expected_status} Should Be Equal ${response.status_code} ${expected_status} Log Status code validated Check Operation Occurrence Id ${vnfLcmOpOccId}= Get Value From Json ${response.headers} $..Location Should Not Be Empty ${vnfLcmOpOccId} Check HTTP Response Body Json Schema Is [Arguments] ${schema} ${json}= evaluate json.loads('''${response.body}''') json Validate Json ${schema} ${json} ${vnfInstanceId}= evaluate ${response.body.id} Log Json Schema Validation OK Check resource Instantiated Check VNF Instance ${vnfInstanceId} Check HTTP Response Status Code Is 200 Check VNF Status ${response.body.instantiationState} INSTANTIATED Check VNF Instance [Arguments] ${vnfId} Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} ${response}= Get ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfId} Check VNF Status [Arguments] ${current} ${expected} Should Be Equal As Strings ${current} ${expected} Log VNF Status in the correct status Get Vnf Scale Info [Arguments] ${vnfInstanceId} ${vnfInstance}= Get Vnf Instance ${vnfInstanceId} ${scaleInfo}= Get Value From Json ${vnfInstance} $..scaleStatus [Return] ${scaleInfo} Check HTTP Response Header Contains [Arguments] ${CONTENT_TYPE} Should Contain ${response.headers} ${CONTENT_TYPE} Log Header is present Send VNF Scale Out Request Log Trying to scale 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 json/scaleVnfOutRequest.json ${json}= evaluate json.loads('''${body}''') json ${aspectId}= Set Variable ${json.aspectId} ${response}= Post ${apiRoot}/${apiName}/${apiVersion}/vnf_instances/${vnfInstanceId}/scale ${body} Create a new Grant - Synchronous mode [Arguments] ${vnfInstanceId} ${vnfLcmOpOccId} ${operation} Log Request a new Grant for a VNF LCM operation by POST to ${apiRoot}/${apiName}/${apiVersion}/grants Pass Execution If ${SYNC_MODE} == 0 The Granting process is asynchronous mode. Skipping the test Set Headers {"Accept":"${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization":"${AUTHORIZATION}"} ${body}= Get File json/grantRequest.json ${json_body}= evaluate json.loads('''${body}''') json Set To Dictionary ${json_body} vnfInstanceId=${vnfInstanceId} vnfLcmOpOccId=${vnfLcmOpOccId} operation=${operation} ${body}= evaluate json.dumps(${json_body}) json Post ${apiRoot}/${apiName}/${apiVersion}/grants ${body} Integer response status 201 Log Status code validated ${headers}= Output response headers Should Contain ${headers} Location ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE} ${result}= Output response body ${json}= evaluate json.loads('''${result}''') json Validate Json grant.schema.json ${json} Log Validation OK Create a new Grant - Asynchronous mode [Arguments] ${vnfInstanceId} ${vnfLcmOpOccId} ${operation} Log Request a new Grant for a VNF LCM operation by POST to ${apiRoot}/${apiName}/${apiVersion}/grants Pass Execution If ${SYNC_MODE} == 1 The Granting process is synchronous mode. Skipping the test Set Headers {"Accept": "${ACCEPT}"} Set Headers {"Content-Type": "${CONTENT_TYPE}"} Run Keyword If ${AUTH_USAGE} == 1 Set Headers {"Authorization": "${AUTHORIZATION}"} ${body}= Get File json/grantRequest.json ${json_body}= evaluate json.loads('''${body}''') json Set To Dictionary ${json_body} vnfInstanceId=${vnfInstanceId} vnfLcmOpOccId=${vnfLcmOpOccId} operation=${operation} ${body}= evaluate json.dumps(${json_body}) json Post ${apiRoot}/${apiName}/${apiVersion}/grants ${body} Output response Integer response status 202 Log Status code validated ${headers}= Output response headers Should Contain ${headers} Location ${contentType}= Output response headers Content-Type Should Contain ${contentType} ${CONTENT_TYPE} Log Validation OK