Commit de4c02e8 authored by AHMADABB's avatar AHMADABB
Browse files

Advancement on NS LCM SOL005

parent db6621c3
*** Settings ***
Resource environment/variables.txt
Resource NSLCMOperationKeywords.robot
Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT}
Library OperatingSystem
Library JSONLibrary
Library JSONSchemaLibrary schemas/
Suite Setup Check resource existance
*** Test Cases ***
Heal a NSInstance
Do POST Heal NSInstance
Check HTTP Response Status Code Is 202
Check HTTP Response Header Contains Location
Heal a NSInstance Conflict
[Setup] Check resource not_instantiated
Do POST Heal NSInstance
Check HTTP Response Status Code Is 409
Check HTTP Response Header Contains ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is ProblemDetails.schema.json
GET Heal NSInstance- Method not implemented
Do GET Heal NSInstance
Check HTTP Response Status Code Is 405
PUT Heal NSInstance - Method not implemented
Do PUT Heal NSInstance
Check HTTP Response Status Code Is 405
PATCH Heal NSInstance - Method not implemented
Do PATCH Heal NSInstance
Check HTTP Response Status Code Is 405
DELETE Heal NSInstance - Method not implemented
Do DELETE Heal NSInstance
Check HTTP Response Status Code Is 405
\ No newline at end of file
*** Settings ***
Resource environment/variables.txt
Resource NSLCMOperationKeywords.robot
Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT}
Library OperatingSystem
Library JSONLibrary
Library JSONSchemaLibrary schemas/
Suite Setup Check resource existance
*** Test Cases ***
Post Individual VNFInstance - Method not implemented
Do POST IndividualNSInstance
Check HTTP Response Status Code Is 405
Get Information about an individual NS Instance
Do POST individualNSInstance
Check HTTP Response Status Code Is 200
Check HTTP Response Header ContentType is ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is nsInstance.schema.json
PUT Individual NSInstance - Method not implemented
Do PUT IndividualNSInstance
Check HTTP Response Status Code Is 405
PATCH Individual NSInstance - Method not implemented
Do PATCH IndividualNSInstance
Check HTTP Response Status Code Is 405
DELETE Individual NSInstance
Do DELETE IndividualNSInstance
Check HTTP Response Status Code Is 204
DELETE Individual NSInstance Conflict
[Setup] Check resource instantiated
Do DELETE IndividualNSInstance
Check HTTP Response Status Code Is 409
Check HTTP Response Header ContentType is ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is ProblemDetails.schema.json
*** Settings ***
Resource environment/variables.txt
Resource NSLCMOperationKeywords.robot
Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT}
Library OperatingSystem
Library JSONLibrary
Library JSONSchemaLibrary schemas/
Suite Setup Check resource existance
*** Test Cases ***
Instantiate a nsInstance
Do POST Instatiate nsInstance
Check HTTP Response Status Code Is 202
Check HTTP Response Header Contains Location
Instantiate a nsInstance Conflict
[Setup] Check resource instantiated
Do POST Instatiate nsInstance
Check HTTP Response Status Code Is 409
Check HTTP Response Header Contains ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is ProblemDetails.schema.json
GET Instantiate NSInstance - Method not implemented
Do GET Instantiate NSInstance
Check HTTP Response Status Code Is 405
PUT Instantiate NSInstance - Method not implemented
Do PUT Instantiate NSInstance
Check HTTP Response Status Code Is 405
PATCH Instantiate NSInstance - Method not implemented
Do PATCH Instantiate NSInstance
Check HTTP Response Status Code Is 405
DELETE Instantiate NSInstance - Method not implemented
Do DELETE Instantiate NSInstance
Check HTTP Response Status Code Is 405
\ No newline at end of file
......@@ -8,7 +8,7 @@ Library JSONSchemaLibrary schemas/
*** Test Cases ***
Create a new NsInstance
Do POST New vnfInstance
Do POST New nsInstance
Check HTTP Response Status Code Is 201
Check HTTP Response Header Contains Location
Check HTTP Response Header ContentType is ${CONTENT_TYPE}
......@@ -18,6 +18,28 @@ Get information about multiple NS instances
Do GET NsInstances
Check HTTP Response Status Code Is 200
Check HTTP Response Header ContentType is ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is vnfInstances.schema.json
Log Validation OK
Check HTTP Response Body Json Schema Is NsInstances.schema.json
Get information about multiple NS instances Bad Request Invalid attribute-based filtering parameters
Do GET NsInstance Invalid Attribute-Based filtering parameter
Check HTTP Response Status Code Is 400
Check HTTP Response Header ContentType is ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is ProblemDetails.schema.json
Get information about multiple NS instances Bad Request Invalid attribute selector
Do GET NsInstance Invalid Attribute Selector
Check HTTP Response Status Code Is 400
Check HTTP Response Header ContentType is ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is ProblemDetails.schema.json
PUT NSInstances - Method not implemented
Do PUT NSInstances
Check HTTP Response Status Code Is 405
PATCH NSInstances - Method not implemented
Do PATCH NSInstances
Check HTTP Response Status Code Is 405
DELETE NSInstances - Method not implemented
Do DELETE NSInstances
Check HTTP Response Status Code Is 405
\ No newline at end of file
*** Settings ***
Resource environment/variables.txt
Resource NSLCMOperationKeywords.robot
Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT}
Library OperatingSystem
Library JSONLibrary
Library JSONSchemaLibrary schemas/
*** Test Cases ***
Post NS LCM occurences - Method not implemented
Do POST NS LCM OP Occurences
Check HTTP Response Status Code Is 405
PUT stauts information about multiple NS LCM OP OCC - Method not implemented
Do PUT NS LCM OP Occurences
Check HTTP Response Status Code Is 405
PATCH stauts information about multiple NS LCM OP OCC - Method not implemented
Do PATCH NS LCM OP Occurences
Check HTTP Response Status Code Is 405
DELETE stauts information about multiple NS LCM OP OCC - Method not implemented
Do DELETE NS LCM OP Occurences
Check HTTP Response Status Code Is 405
Get stauts information about multiple NS LCM OP OCC
Do GET NS LCN OP Occurences
Check HTTP Response Status Code Is 200
Check HTTP Response Header ContentType is ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is NsLcmOpOccs.schema.json
Get stauts information about multiple NS LCM OP OCC Bad Request Invalid attribute-based filtering parameters
Do GET NS LCN OP Occurences Invalid attribute-based filtering parameters
Check HTTP Response Status Code Is 400
Check HTTP Response Body Json Schema Is ProblemDetails.schema.json
Get stauts information about multiple NS LCM OP OCC Bad Request Invalid attribute selector
Do GET NS LCN OP Occurences Invalid attribute selector
Check HTTP Response Status Code Is 400
Check HTTP Response Body Json Schema Is ProblemDetails.schema.json
\ No newline at end of file
*** Settings ***
Resource environment/variables.txt
Resource NSLCMOperationKeywords.robot
Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT}
Library OperatingSystem
Library JSONLibrary
Library JSONSchemaLibrary schemas/
Suite Setup Check resource existance
*** Test Cases ***
Scale a nsInstance
Do POST scale nsInstance
Check HTTP Response Status Code Is 202
Check HTTP Response Header Contains Location
Instantiate a nsInstance Conflict
[Setup] Check resource not_instantiated
Do POST scale nsInstance
Check HTTP Response Status Code Is 409
Check HTTP Response Header Contains ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is ProblemDetails.schema.json
GET Scale NSInstance- Method not implemented
Do GET scale NSInstance
Check HTTP Response Status Code Is 405
PUT Scale NSInstance - Method not implemented
Do PUT scale NSInstance
Check HTTP Response Status Code Is 405
PATCH Scale NSInstance - Method not implemented
Do PATCH scale NSInstance
Check HTTP Response Status Code Is 405
DELETE Scale NSInstance - Method not implemented
Do DELETE scale NSInstance
Check HTTP Response Status Code Is 405
\ No newline at end of file
*** Settings ***
Resource environment/variables.txt
Resource NSLCMOperationKeywords.robot
Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT}
Library OperatingSystem
Library JSONLibrary
Library JSONSchemaLibrary schemas/
Suite Setup Check resource existance
*** Test Cases ***
Terminate a NSInstance
Do POST Terminate NSInstance
Check HTTP Response Status Code Is 202
Check HTTP Response Header Contains Location
Terminate a NSInstance Conflict
[Setup] Check resource not_instantiated
Do POST Terminate NSInstance
Check HTTP Response Status Code Is 409
Check HTTP Response Header Contains ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is ProblemDetails.schema.json
GET Terminate NSInstance- Method not implemented
Do GET Terminate NSInstance
Check HTTP Response Status Code Is 405
PUT Terminate NSInstance - Method not implemented
Do PUT Terminate NSInstance
Check HTTP Response Status Code Is 405
PATCH Terminate NSInstance - Method not implemented
Do PATCH Terminate NSInstance
Check HTTP Response Status Code Is 405
DELETE Terminate NSInstance - Method not implemented
Do DELETE Terminate NSInstance
Check HTTP Response Status Code Is 405
\ No newline at end of file
*** Settings ***
Resource environment/variables.txt
Resource NSLCMOperationKeywords.robot
Library REST ${NFVO_SCHEMA}://${NFVO_HOST}:${NFVO_PORT}
Library OperatingSystem
Library JSONLibrary
Library JSONSchemaLibrary schemas/
Suite Setup Check resource existance
*** Test Cases ***
Update a NSInstance
Do POST Update NSInstance
Check HTTP Response Status Code Is 202
Check HTTP Response Header Contains Location
Update a NSInstance Conflict
[Setup] Check resource not_instantiated
Do POST Update NSInstance
Check HTTP Response Status Code Is 409
Check HTTP Response Header Contains ${CONTENT_TYPE}
Check HTTP Response Body Json Schema Is ProblemDetails.schema.json
GET Update NSInstance- Method not implemented
Do GET Update NSInstance
Check HTTP Response Status Code Is 405
PUT Update NSInstance - Method not implemented
Do PUT Update NSInstance
Check HTTP Response Status Code Is 405
PATCH Update NSInstance - Method not implemented
Do PATCH Update NSInstance
Check HTTP Response Status Code Is 405
DELETE Update NSInstance - Method not implemented
Do DELETE Update NSInstance
Check HTTP Response Status Code Is 405
\ No newline at end of file
......@@ -15,14 +15,14 @@ ${apiName} nslcm
${apiVersion} v1
${AUTH_USAGE} 1
${WRONG_AUTHORIZATION} Bearer XXXXXWRONGXXXXX
${vnfInstanceId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f
${vnfInstanceName} Test-VnfInstance
${vnfInstanceDescription} description vnf
${vnfInstanceDescription_Update} Updated description vnf
${nsInstanceId} 6fc3539c-e602-4afa-8e13-962fb5a7d81f
${nsInstanceName} Test-nsInstance
${nsInstanceDescription} description ns
${nsInstanceDescription_Update} Updated description ns
${SINGLE_FILE_VNFD} 1 # If VNFD is PLAIN TEXT
${ACCEPT_PLAIN} text/plain
${ACCEPT_ZIP} application/zip
${vnfPkgId_processing} 007c111c-38a1-42c0-a666-7475ecb1567c
${nsPkgId_processing} 007c111c-38a1-42c0-a666-7475ecb1567c
${ARTIFACT_TYPE} application/octet-stream
${ARTIFACT_ID} artifactId
${WRONG_ACCEPT} application/json
......@@ -43,3 +43,6 @@ ${callback_endpoint_error} /endpoint_404
${sleep_interval} 20s
${response} {}
${Etag}= an etag
${Etag_modified}= a modified etag
{
"degreeHealing": "HEAL_RESTORE"
}
\ No newline at end of file
{
"type": "object",
"required": [
"nsFlavourId"
],
"properties": {
"nsFlavourId": {
"description": "Identifier of the NS deployment flavor to be instantiated.\n",
"$ref": "SOL005_def.yaml#/definitions/IdentifierInNsd"
},
"sapData": {
"description": "Create data concerning the SAPs of this NS.\n",
"type": "array",
"items": {
"$ref": "#/definitions/SapData"
}
},
"addpnfData": {
"description": "Information on the PNF(s) that are part of this NS.\n",
"type": "array",
"items": {
"$ref": "#/definitions/AddPnfData"
}
},
"vnfInstanceData": {
"description": "Specify an existing VNF instance to be used in the NS. If needed, the VNF Profile to be used for this VNF instance is also provided.\n",
"type": "array",
"items": {
"$ref": "#/definitions/VnfInstanceData"
}
},
"nestedNsInstanceId": {
"description": "Specify an existing NS instance to be used as a nested NS within the NS.\n",
"type": "array",
"items": {
"$ref": "SOL005_def.yaml#/definitions/Identifier"
}
},
"localizationLanguage": {
"description": "Defines the location constraints for the VNF to be instantiated as part of the NS instantiation. An example can be a constraint for the VNF to be in a specific geographic location..\n",
"type": "array",
"items": {
"$ref": "#/definitions/VnfLocationConstraint"
}
},
"additionalParamsForNs": {
"description": "Allows the OSS/BSS to provide additional parameter(s) at the NS level (as opposed to the VNF level, which is covered in additionalParamsForVnf)..\n",
"$ref": "SOL005_def.yaml#/definitions/KeyValuePairs"
},
"additionalParamsForVnf": {
"description": "Allows the OSS/BSS to provide additional parameter(s) per VNF instance (as opposed to the NS level, which is covered in additionalParamsForNs). This is for VNFs that are to be created by the NFVO as part of the NS instantiation and not for existing VNF that are referenced for reuse..\n",
"type": "array",
"items": {
"$ref": "#/definitions/ParamsForVnf"
}
},
"startTime": {
"description": "Timestamp indicating the earliest time to instantiate the NS. Cardinality \"0\" indicates the NS instantiation takes place immediately.\n",
"$ref": "SOL005_def.yaml#/definitions/DateTime"
},
"nsInstantiationLevelId": {
"description": "Identifies one of the NS instantiation levels declared in the DF applicable to this NS instance. If not present, the default NS instantiation level as declared in the NSD shall be used.\n",
"$ref": "SOL005_def.yaml#/definitions/IdentifierInNsd"
},
"additionalAffinityOrAntiAffiniityRule": {
"description": "Specifies additional affinity or anti-affinity constraint for the VNF instances to be instantiated as part of the NS instantiation. Shall not conflict with rules already specified in the NSD.\n",
"type": "array",
"items": {
"$ref": "#/definitions/AffinityOrAntiAffinityRule"
}
}
}
}
\ No newline at end of file
{
"description": "This type represents a request for the scale NS operation.\n",
"type": "object",
"required": [
"scaleType"
],
"properties": {
"scaleType": {
"description": "Indicates the type of scaling to be performed. Possible values: - SCALE_NS - SCALE_VNF\n",
"type": "string",
"enum": [
"SCALE_NS",
"SCALE_VNF"
]
},
"scaleNsData": {
"description": "The necessary information to scale the referenced NS instance. It shall be present when scaleType = SCALE_NS.\n",
"$ref": "#/definitions/ScaleNsData"
},
"scaleVnfData": {
"description": "The necessary information to scale the referenced NS instance. It shall be present when scaleType = SCALE_VNF.\n",
"type": "array",
"items": {
"$ref": "#/definitions/ScaleVnfData"
}
},
"scaleTime": {
"description": "Timestamp indicating the scale time of the NS, i.e. the NS will be scaled at this timestamp. Cardinality \"0\" indicates the NS scaling takes place immediately\".\n",
"$ref": "SOL005_def.yaml#/definitions/DateTime"
}
}
}
\ No newline at end of file
{
"terminationTime": "2021-04-12T23:20:50.52Z"
}
\ No newline at end of file
{
"description": "This operation supports the update of a NS instance, It shall comply with the provisions defined in Table 6.5.2.12-1.\n",
"type": "object",
"required": [
"updateType"
],
"properties": {
"updateType": {
"description": "The type of update. It determines also which one of the following parameters is present in the operation. Possible values include: * ADD_VNF: Adding existing VNF instance(s) * REMOVE_VNF: Removing VNF instance(s) * INSTANTIATE_VNF: Instantiating new VNF(s) * CHANGE_VNF_DF: Changing VNF DF * OPERATE_VNF: Changing VNF state, * MODIFY_VNF_INFORMATION: Modifying VNF information and/or the configurable properties of VNF instance(s) * CHANGE_EXTERNAL_VNF_CONNECTIVITY: Changing the external connectivity of VNF instance(s)ADD_SAP: Adding SAP(s) * REMOVE_SAP: Removing SAP(s) * ADD_NESTED_NS: Adding existing NS instance(s) as nested NS(s) * REMOVE_NESTED_NS: Removing existing nested NS instance(s) * ASSOC_NEW_NSD_VERSION: Associating a new NSD version to the NS instance * MOVE_VNF: Moving VNF instance(s) from one origin NS instance to another target NS instance * ADD_VNFFG: Adding VNFFG(s) * REMOVE_VNFFG: Removing VNFFG(s) * UPDATE_VNFFG: Updating VNFFG(s) * CHANGE_NS_DF: Changing NS DF * ADD_PNF: Adding PNF * MODIFY_PNF: Modifying PNF * REMOVE_PNF: Removing PNF\n",
"type": "string",
"enum": [
"ADD_VNF",
"REMOVE_VNF",
"INSTANTIATE_VNF",
"CHANGE_VNF_DF",
"OPERATE_VNF",
"MODIFY_VNF_INFORMATION",
"CHANGE_EXTERNAL_VNF_CONNECTIVITY",
"REMOVE_SAP",
"ADD_NESTED_NS",
"REMOVE_NESTED_NS",
"ASSOC_NEW_NSD_VERSION",
"MOVE_VNF",
"ADD_VNFFG",
"REMOVE_VNFFG",
"UPDATE_VNFFG",
"CHANGE_NS_DF",
"ADD_PNF",
"MODIFY_PNF",
"REMOVE_PNF"
]
},
"addVnfIstance": {
"description": "Identifies an existing VNF instance to be added to the NS instance. It shall be present only if updateType = \"ADD_VNF\".\n",
"type": "array",
"items": {
"$ref": "#/definitions/VnfInstanceData"
}
},
"removeVnfInstanceId": {
"description": "Identifies an existing VNF instance to be removed from the NS instance. It contains the identifier(s) of the VNF instances to be removed. It shall be present only if updateType = \"REMOVE_VNF.\" Note: If a VNF instance is removed from a NS and this NS was the last one for which this VNF instance was a part, the VNF instance is terminated by the NFVO.\n",
"type": "array",
"items": {
"$ref": "SOL005_def.yaml#/definitions/Identifier"
}
},
"instantiateVnfData": {
"description": "Identifies the new VNF to be instantiated. It can be used e.g. for the bottom-up NS creation. It shall be present only if updateType = \"INSTANTIATE_VNF\".\n",
"type": "array",
"items": {
"$ref": "#/definitions/InstantiateVnfData"
}
},
"changeVnfFlavourData": {
"description": "Identifies the new DF of the VNF instance to be changed to. It shall be present only if updateType = \"CHANGE_VNF_DF\".\n",
"type": "array",
"items": {
"$ref": "#/definitions/ChangeVnfFlavourData"
}
},
"operateVnfData": {
"description": "Identifies the state of the VNF instance to be changed. It shall be present only if updateType = \"OPERATE_VNF\".\n",
"type": "array",
"items": {
"$ref": "#/definitions/OperateVnfData"
}
},
"modifyVnfInfoData": {
"description": "Identifies the VNF information parameters and/or the configurable properties of VNF instance to be modified. It shall be present only if updateType = \"MODIFY_VNF_INFORMATION\".\n",
"type": "array",
"items": {
"$ref": "#/definitions/ModifyVnfInfoData"
}
},
"changeExtVnfConnectivityData": {
"description": "Specifies the new external connectivity data of the VNF instance to be changed. It shall be present only if updateType = \"CHANGE_EXTERNAL_VNF_CONNECTIVITY\".\n",
"type": "array",
"items": {
"$ref": "#/definitions/ChangeExtVnfConnectivityData"
}
},
"addSap": {
"description": "Identifies a new SAP to be added to the NS instance. It shall be present only if updateType = \"ADD_SAP.\"\n",
"type": "array",
"items": {
"$ref": "#/definitions/SapData"
}
},
"removeSapId": {
"description": "The identifier an existing SAP to be removed from the NS instance. It shall be present only if updateType = \"REMOVE_SAP.\"\n",
"type": "array",
"items": {
"$ref": "SOL005_def.yaml#/definitions/Identifier"
}
},
"addNestedNsId": {
"description": "The identifier of an existing nested NS instance to be added to (nested within) the NS instance. It shall be present only if updateType = \"ADD_NESTED_NS\".\n",
"type": "array",
"items": {
"$ref": "SOL005_def.yaml#/definitions/Identifier"
}
},
"removeNestedNsId": {
"description": "The identifier of an existing nested NS instance to be removed from the NS instance. It shall be present only if updateType = \"REMOVE_NESTED_NS\".\n",
"type": "array",
"items": {
"$ref": "SOL005_def.yaml#/definitions/IdentifierInNs"
}
},
"assocNewNsdVersionData": {
"description": "Specify the new NSD to be used for the NS instance. It shall be present only if updateType = ASSOC_NEW_NSD_VERSION\".\n",
"$ref": "#/definitions/AssocNewNsdVersionData"
},
"moveVnfInstanceData": {