Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
NFV - Network Functions Virtualisation
api-tests
Commits
6c159fa9
Commit
6c159fa9
authored
Oct 05, 2021
by
Giacomo Bernini
Browse files
Merge branch '3.3.1-fix-plu' into '3.3.1-dev'
merge 3.3.1 fix plu into 3.3.1 dev See merge request
!198
parents
176b7257
f24d1ff6
Changes
72
Hide whitespace changes
Inline
Side-by-side
.jenkins.sh
View file @
6c159fa9
...
@@ -12,7 +12,18 @@ run_dir="$(pwd)"
...
@@ -12,7 +12,18 @@ run_dir="$(pwd)"
echo
"Using git branch
$GIT_BRANCH
"
echo
"Using git branch
$GIT_BRANCH
"
bash ./scripts/build-container.sh
bash ./scripts/build-container.sh
ret
=
$?
if
[
"
$ret
"
!=
"0"
]
;
then
echo
"build-container.sh failed"
exit
-1
fi
bash ./scripts/run-container.sh
"
${
run_dir
}
"
"
$GIT_BRANCH
"
bash ./scripts/run-container.sh
"
${
run_dir
}
"
"
$GIT_BRANCH
"
ret
=
$?
if
[
"
$ret
"
!=
"0"
]
;
then
echo
"run-container.sh failed"
exit
-1
fi
if
[[
"
$GIT_BRANCH
"
=
~ .
*
fix-plu
$
]]
;
then
if
[[
"
$GIT_BRANCH
"
=
~ .
*
fix-plu
$
]]
;
then
...
@@ -30,3 +41,4 @@ fi
...
@@ -30,3 +41,4 @@ fi
ret
=
$?
ret
=
$?
echo
"Final validation result:
$ret
"
echo
"Final validation result:
$ret
"
exit
$ret
exit
$ret
SOL002/VNFConfiguration-API/Configuration.robot
View file @
6c159fa9
...
@@ -136,7 +136,8 @@ Check HTTP Response Header Contains
...
@@ -136,7 +136,8 @@ Check HTTP Response Header Contains
Check HTTP Response Body Json Schema Is
Check HTTP Response Body Json Schema Is
[
Arguments
]
${input}
[
Arguments
]
${input}
Should Contain
${response['headers']['Content-Type']}
application/problem+json
Run Keyword If
'
${input}
' == 'ProblemDetails'
Should Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate Json
${schema}
${response['body']}
Validate Json
${schema}
${response['body']}
Log
Json Schema Validation OK
Log
Json Schema Validation OK
...
...
SOL002/VNFFaultManagement-API/Alarms.robot
View file @
6c159fa9
...
@@ -352,7 +352,8 @@ Check HTTP Response Header Contains
...
@@ -352,7 +352,8 @@ Check HTTP Response Header Contains
Check HTTP Response Body Json Schema Is
Check HTTP Response Body Json Schema Is
[
Arguments
]
${input}
[
Arguments
]
${input}
Should Contain
${response['headers']['Content-Type']}
application/json
Run Keyword If
'
${input}
' == 'ProblemDetails'
Should Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate Json
${schema}
${response['body']}
Validate Json
${schema}
${response['body']}
Log
Json Schema Validation OK
Log
Json Schema Validation OK
...
...
SOL002/VNFFaultManagement-API/IndividualAlarm.robot
View file @
6c159fa9
...
@@ -191,7 +191,8 @@ Check HTTP Response Status Code Is
...
@@ -191,7 +191,8 @@ Check HTTP Response Status Code Is
Check HTTP Response Body Json Schema Is
Check HTTP Response Body Json Schema Is
[
Arguments
]
${input}
[
Arguments
]
${input}
Should Contain
${response['headers']['Content-Type']}
application/json
Run Keyword If
'
${input}
' == 'ProblemDetails'
Should Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate Json
${schema}
${response['body']}
Validate Json
${schema}
${response['body']}
Log
Json Schema Validation OK
Log
Json Schema Validation OK
...
...
SOL002/VNFFaultManagement-API/IndividualSubscription.robot
View file @
6c159fa9
...
@@ -147,7 +147,8 @@ Check HTTP Response Status Code Is
...
@@ -147,7 +147,8 @@ Check HTTP Response Status Code Is
Check HTTP Response Body Json Schema Is
Check HTTP Response Body Json Schema Is
[
Arguments
]
${input}
[
Arguments
]
${input}
Should Contain
${response['headers']['Content-Type']}
application/json
Run Keyword If
'
${input}
' == 'ProblemDetails'
Should Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate Json
${schema}
${response['body']}
Validate Json
${schema}
${response['body']}
Log
Json Schema Validation OK
Log
Json Schema Validation OK
...
...
SOL002/VNFFaultManagement-API/Subscriptions.robot
View file @
6c159fa9
...
@@ -320,7 +320,7 @@ Post Create subscription
...
@@ -320,7 +320,7 @@ Post Create subscription
&{notification_response}
=
Create Mock Response
status_code=204
&{notification_response}
=
Create Mock Response
status_code=204
Log
Issue the subscription request
Log
Issue the subscription request
Create Mock Expectation
${notification_request}
${notification_response}
Create Mock Expectation
${notification_request}
${notification_response}
Post
${apiRoot}
/
${apiName}
/
${apiMajorVersion}
/subscriptions
${body}
Post
${apiRoot}
/
${apiName}
/
${apiMajorVersion}
/subscriptions
${body}
allow_redirects=false
${output}
=
Output
response
${output}
=
Output
response
Set Global Variable
${response}
${output}
Set Global Variable
${response}
${output}
Clear Requests
${callback_endpoint}
Clear Requests
${callback_endpoint}
...
@@ -427,7 +427,8 @@ Check HTTP Response Status Code Is
...
@@ -427,7 +427,8 @@ Check HTTP Response Status Code Is
Check HTTP Response Body Json Schema Is
Check HTTP Response Body Json Schema Is
[
Arguments
]
${input}
[
Arguments
]
${input}
Should Contain
${response['headers']['Content-Type']}
application/json
Run Keyword If
'
${input}
' == 'ProblemDetails'
Should Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate Json
${schema}
${response['body']}
Validate Json
${schema}
${response['body']}
Log
Json Schema Validation OK
Log
Json Schema Validation OK
...
...
SOL002/VNFIndicator-API/IndividualSubscription.robot
View file @
6c159fa9
...
@@ -168,7 +168,8 @@ Check HTTP Response Header Contains
...
@@ -168,7 +168,8 @@ Check HTTP Response Header Contains
Check HTTP Response Body Json Schema Is
Check HTTP Response Body Json Schema Is
[
Arguments
]
${input}
[
Arguments
]
${input}
Should Contain
${response['headers']['Content-Type']}
application/json
Run Keyword If
'
${input}
' == 'ProblemDetails'
Should Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate Json
${schema}
${response['body']}
Validate Json
${schema}
${response['body']}
Log
Json Schema Validation OK
Log
Json Schema Validation OK
...
...
SOL002/VNFIndicator-API/IndividualVNFindicator.robot
View file @
6c159fa9
...
@@ -218,7 +218,8 @@ Check HTTP Response Header Contains
...
@@ -218,7 +218,8 @@ Check HTTP Response Header Contains
Check HTTP Response Body Json Schema Is
Check HTTP Response Body Json Schema Is
[
Arguments
]
${input}
[
Arguments
]
${input}
Should Contain
${response['headers']['Content-Type']}
application/json
Run Keyword If
'
${input}
' == 'ProblemDetails'
Should Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate Json
${schema}
${response['body']}
Validate Json
${schema}
${response['body']}
Log
Json Schema Validation OK
Log
Json Schema Validation OK
...
...
SOL002/VNFIndicator-API/Subscriptions.robot
View file @
6c159fa9
...
@@ -282,7 +282,8 @@ Check HTTP Response Header Contains
...
@@ -282,7 +282,8 @@ Check HTTP Response Header Contains
Check
HTTP
Response
Body
Json
Schema
Is
Check
HTTP
Response
Body
Json
Schema
Is
[Arguments]
${input}
[Arguments]
${input}
Should
Contain
${response['headers']['Content-Type']}
application/json
Run
Keyword
If
'${input}'
==
'ProblemDetails'
Should
Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should
Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate
Json
${schema}
${response['body']}
Validate
Json
${schema}
${response['body']}
Log
Json
Schema
Validation
OK
Log
Json
Schema
Validation
OK
...
...
SOL002/VNFIndicator-API/VNFIndicators.robot
View file @
6c159fa9
...
@@ -286,7 +286,8 @@ Check HTTP Response Header Contains
...
@@ -286,7 +286,8 @@ Check HTTP Response Header Contains
Check HTTP Response Body Json Schema Is
Check HTTP Response Body Json Schema Is
[
Arguments
]
${schema}
[
Arguments
]
${schema}
Should Contain
${response['headers']['Content-Type']}
application/json
Run Keyword If
'
${input}
' == 'ProblemDetails'
Should Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should Contain
${response['headers']['Content-Type']}
application/json
${jsonSchema}
=
Catenate
SEPARATOR=
${schema}
.schema.json
${jsonSchema}
=
Catenate
SEPARATOR=
${schema}
.schema.json
Validate Json
${jsonSchema}
${response['body']}
Validate Json
${jsonSchema}
${response['body']}
Log
Json Schema Validation OK
Log
Json Schema Validation OK
...
...
SOL002/VNFIndicator-API/VnfIndicatorsInVnfInstanceId.robot
View file @
6c159fa9
...
@@ -214,7 +214,8 @@ Check HTTP Response Header Contains
...
@@ -214,7 +214,8 @@ Check HTTP Response Header Contains
Check HTTP Response Body Json Schema Is
Check HTTP Response Body Json Schema Is
[
Arguments
]
${input}
[
Arguments
]
${input}
Should Contain
${response['headers']['Content-Type']}
application/json
Run Keyword If
'
${input}
' == 'ProblemDetails'
Should Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate Json
${schema}
${response['body']}
Validate Json
${schema}
${response['body']}
Log
Json Schema Validation OK
Log
Json Schema Validation OK
...
...
SOL002/VNFLifecycleManagement-API/VnfLcmOperationKeywords.robot
View file @
6c159fa9
...
@@ -44,6 +44,8 @@ Check HTTP Location Header Contains URI of Created Resource
...
@@ -44,6 +44,8 @@ Check HTTP Location Header Contains URI of Created Resource
Check HTTP Response Body Json Schema Is
Check HTTP Response Body Json Schema Is
[
Arguments
]
${input}
[
Arguments
]
${input}
Run Keyword If
'
${input}
' == 'ProblemDetails'
Should Contain
${response['headers']['Content-Type']}
application/problem+json
...
ELSE
Should Contain
${response['headers']['Content-Type']}
application/json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
${schema}
=
Catenate
SEPARATOR=
${input}
.schema.json
Validate Json
${schema}
${response['body']}
Validate Json
${schema}
${response['body']}
Log
Json Schema Validation OK
Log
Json Schema Validation OK
...
@@ -1166,7 +1168,7 @@ Post Create subscription
...
@@ -1166,7 +1168,7 @@ Post Create subscription
&{notification_response}
=
Create Mock Response
status_code=204
&{notification_response}
=
Create Mock Response
status_code=204
Log
Issue the subscription request
Log
Issue the subscription request
Create Mock Expectation
${notification_request}
${notification_response}
Create Mock Expectation
${notification_request}
${notification_response}
Post
${apiRoot}
/
${apiName}
/
${apiMajorVersion}
/subscriptions
${body}
Post
${apiRoot}
/
${apiName}
/
${apiMajorVersion}
/subscriptions
${body}
allow_redirects=false
${outputResponse}
=
Output
response
${outputResponse}
=
Output
response
Set Global Variable
${response}
${outputResponse}
Set Global Variable
${response}
${outputResponse}
Clear Requests
${callback_endpoint}
Clear Requests
${callback_endpoint}
...
@@ -1185,7 +1187,7 @@ Post Create subscription - DUPLICATION
...
@@ -1185,7 +1187,7 @@ Post Create subscription - DUPLICATION
&{notification_response}
=
Create Mock Response
status_code=204
&{notification_response}
=
Create Mock Response
status_code=204
Log
Issue the subscription request
Log
Issue the subscription request
Create Mock Expectation
${notification_request}
${notification_response}
Create Mock Expectation
${notification_request}
${notification_response}
Post
${apiRoot}
/
${apiName}
/
${apiMajorVersion}
/subscriptions
${body}
Post
${apiRoot}
/
${apiName}
/
${apiMajorVersion}
/subscriptions
${body}
allow_redirects=false
${outputResponse}
=
Output
response
${outputResponse}
=
Output
response
Set Global Variable
${response}
${outputResponse}
Set Global Variable
${response}
${outputResponse}
Clear Requests
${callback_endpoint}
Clear Requests
${callback_endpoint}
...
@@ -1203,7 +1205,7 @@ Post Create subscription - NO-DUPLICATION
...
@@ -1203,7 +1205,7 @@ Post Create subscription - NO-DUPLICATION
&{notification_response}
=
Create Mock Response
status_code=204
&{notification_response}
=
Create Mock Response
status_code=204
Log
Issue the subscription request
Log
Issue the subscription request
Create Mock Expectation
${notification_request}
${notification_response}
Create Mock Expectation
${notification_request}
${notification_response}
Post
${apiRoot}
/
${apiName}
/
${apiMajorVersion}
/subscriptions
${body}
Post
${apiRoot}
/
${apiName}
/
${apiMajorVersion}
/subscriptions
${body}
allow_redirects=false
${outputResponse}
=
Output
response
${outputResponse}
=
Output
response
Set Global Variable
${response}
${outputResponse}
Set Global Variable
${response}
${outputResponse}
Clear Requests
${callback_endpoint}
Clear Requests
${callback_endpoint}
...
@@ -1461,8 +1463,17 @@ Fetch Information from SOL001 descriptor file
...
@@ -1461,8 +1463,17 @@ Fetch Information from SOL001 descriptor file
@{VirtualLink_labels}
=
Create List
@{VirtualLink_labels}
=
Create List
@{CP_labels}
=
Create List
@{CP_labels}
=
Create List
@{Storage_labels}
=
Create List
@{Storage_labels}
=
Create List
FOR
${key}
IN
@{node_types.keys()}
${node_type}
=
Get Variable Value
${node_types['${key}']['derived_from']}
${is_VNF}
=
Run Keyword And Return Status
Should Be Equal As Strings
${node_type}
${tosca_type_VNF}
Run Keyword If
${is_VNF}
Set Global Variable
${tosca_type_derived_from_VNF}
${key}
END
${derived_type_is_used}
=
Run Keyword And Return Status
Should not be empty
${tosca_type_derived_from_VNF}
Run Keyword If
${derived_type_is_used}
Set Global Variable
${tosca_type_VNF}
${tosca_type_derived_from_VNF}
FOR
${key}
IN
@{topology_template.node_templates.keys()}
FOR
${key}
IN
@{topology_template.node_templates.keys()}
${key_type}
=
Get Variable Value
${topology_template.node_templates
.
${key}.type}
${key_type}
=
Get Variable Value
${topology_template.node_templates
['
${key}
']
.type}
${VDU_check}
=
Run Keyword And Return Status
Should Be Equal As Strings
${key_type}
${tosca_type_VDU_compute}
${VDU_check}
=
Run Keyword And Return Status
Should Be Equal As Strings
${key_type}
${tosca_type_VDU_compute}
${VNF_check}
=
Run Keyword And Return Status
Should Be Equal As Strings
${key_type}
${tosca_type_VNF}
${VNF_check}
=
Run Keyword And Return Status
Should Be Equal As Strings
${key_type}
${tosca_type_VNF}
${Link_check}
=
Run Keyword And Return Status
Should Be Equal As Strings
${key_type}
${tosca_type_virtual_link}
${Link_check}
=
Run Keyword And Return Status
Should Be Equal As Strings
${key_type}
${tosca_type_virtual_link}
...
@@ -1484,12 +1495,12 @@ Fetch Information from SOL001 descriptor file
...
@@ -1484,12 +1495,12 @@ Fetch Information from SOL001 descriptor file
Get VNF Attributes from SOL001
Get VNF Attributes from SOL001
[
Arguments
]
${VNF_label}
[
Arguments
]
${VNF_label}
Import Variables
${CURDIR}
/descriptors/SOL001/VNFD/vnfd_SOL001.yaml
Import Variables
${CURDIR}
/descriptors/SOL001/VNFD/vnfd_SOL001.yaml
${descriptor_id}
=
Get Variable Value
${topology_template.node_templates
.
${VNF_label}.properties.descriptor_id}
${descriptor_id}
=
Get Variable Value
${topology_template.node_templates
['
${VNF_label}
']
.properties.descriptor_id}
${provider}
=
Get Variable Value
${topology_template.node_templates
.
${VNF_label}.properties.provider}
${provider}
=
Get Variable Value
${topology_template.node_templates
['
${VNF_label}
']
.properties.provider}
${product_name}
=
Get Variable Value
${topology_template.node_templates
.
${VNF_label}.properties.product_name}
${product_name}
=
Get Variable Value
${topology_template.node_templates
['
${VNF_label}
']
.properties.product_name}
${software_version}
=
Get Variable Value
${topology_template.node_templates
.
${VNF_label}.properties.software_version}
${software_version}
=
Get Variable Value
${topology_template.node_templates
['
${VNF_label}
']
.properties.software_version}
${descriptor_version}
=
Get Variable Value
${topology_template.node_templates
.
${VNF_label}.properties.descriptor_version}
${descriptor_version}
=
Get Variable Value
${topology_template.node_templates
['
${VNF_label}
']
.properties.descriptor_version}
${flavour_id}
=
Get Variable Value
${topology_template.node_templates
.
${VNF_label}.properties.flavour_id}
${flavour_id}
=
Get Variable Value
${topology_template.node_templates
['
${VNF_label}
']
.properties.flavour_id}
Set Global Variable
${Descriptor_ID}
${descriptor_id}
Set Global Variable
${Descriptor_ID}
${descriptor_id}
Set Global Variable
${Provider}
${provider}
Set Global Variable
${Provider}
${provider}
...
...
SOL002/VNFLifecycleManagement-API/descriptors/SOL001/VNFD/vnfd_SOL001.yaml
View file @
6c159fa9
tosca_definitions_version
:
tosca_simple_yaml_1_2
tosca_definitions_version
:
tosca_simple_yaml_1_2
description
:
"
TST010
reference
VNF-B"
description
:
"
TST010
reference
VNF-B"
imports
:
-
https://forge.etsi.org/rep/nfv/SOL001/raw/v3.3.1/etsi_nfv_sol001_vnfd_types.yaml
metadata
:
metadata
:
descriptor_id
:
"
VNF-B"
descriptor_id
:
"
VNF-B"
vendor
:
"
ETSI
TST
WG"
vendor
:
"
ETSI
TST
WG"
version
:
"
2.0"
version
:
"
2.0"
node_types
:
tst010.vnf.simple
:
derived_from
:
tosca.nodes.nfv.VNF
properties
:
descriptor_id
:
type
:
string
default
:
VNF-B
descriptor_version
:
type
:
string
default
:
'
1.0'
provider
:
type
:
string
default
:
ETSI TST WG
product_name
:
type
:
string
default
:
VNF-B
software_version
:
type
:
string
default
:
'
1.0'
product_info_name
:
type
:
string
default
:
VNF-B
product_info_description
:
type
:
string
default
:
TST010 reference VNF-B
flavour_id
:
type
:
string
default
:
VNF-B_flavor
flavour_description
:
type
:
string
default
:
"
VNF-B
flavor"
vnfm_info
:
type
:
list
entry_schema
:
type
:
string
default
:
[
'
etsivnfm:v2.3.1'
]
interfaces
:
Vnflcm
:
type
:
"
tosca.interfaces.nfv.Vnflcm"
scale
:
description
:
Invoked upon receipt of a Scale VNF request
terminate
:
description
:
Invoked upon receipt Terminate VNF request
operate
:
description
:
Invoked upon receipt of an Operate VNF request
requirements
:
-
virtual_link_right
:
capability
:
tosca.capabilities.nfv.VirtualLinkable
relationship
:
tosca.relationships.nfv.VirtualLinksTo
occurrences
:
[
0
,
1
]
-
virtual_link_left
:
capability
:
tosca.capabilities.nfv.VirtualLinkable
relationship
:
tosca.relationships.nfv.VirtualLinksTo
occurrences
:
[
0
,
1
]
-
virtual_link_management
:
capability
:
tosca.capabilities.nfv.VirtualLinkable
relationship
:
tosca.relationships.nfv.VirtualLinksTo
occurrences
:
[
0
,
1
]
-
virtual_link
:
capability
:
tosca.capabilities.nfv.VirtualLinkable
relationship
:
tosca.relationships.nfv.VirtualLinksTo
occurrences
:
[
0
,
0
]
topology_template
:
topology_template
:
substitution_mappings
:
substitution_mappings
:
node_type
:
"
t
osca.nodes.nfv.VNF
"
node_type
:
"
t
st010.vnf.simple
"
requirements
:
requirements
:
virtual_link_right
:
[
right
,
virtual_link_right
]
virtual_link_management
:
virtual_link_management
:
[
management
,
virtual_link_management
]
[
management
,
virtual_link_management
]
virtual_link_left
:
virtual_link_left
:
[
left
,
virtual_link_left
]
[
left
,
virtual_link_left
]
virtual_link_right
:
[
right
,
virtual_link_right
]
node_templates
:
node_templates
:
right
:
right
:
type
:
"
tosca.nodes.nfv.VduCp"
type
:
"
tosca.nodes.nfv.VduCp"
properties
:
properties
:
layer_protocols
:
[
ipv4
]
order
:
1
order
:
1
requirements
:
requirements
:
virtual_link_right
:
-
virtual_binding
:
VDU-B
virtual_binding
:
VDU-B-2
management
:
management
:
type
:
"
tosca.nodes.nfv.VduCp"
type
:
"
tosca.nodes.nfv.VduCp"
properties
:
properties
:
layer_protocols
:
[
ipv4
]
order
:
0
order
:
0
requirements
:
requirements
:
virtual_link_management
:
-
virtual_binding
:
VDU-B
virtual_binding
:
VDU-B-1
left
:
left
:
type
:
"
tosca.nodes.nfv.VduCp"
type
:
"
tosca.nodes.nfv.VduCp"
properties
:
properties
:
layer_protocols
:
[
ipv4
]
order
:
2
order
:
2
requirements
:
requirements
:
virtual_link_left
:
-
virtual_binding
:
VDU-B
virtual_binding
:
VDU-B-1
vdu-b-1-vsd
:
internal_vl
:
type
:
"
tosca.nodes.nfv.VnfVirtualLink"
properties
:
connectivity_type
:
layer_protocols
:
[
ipv4
]
description
:
Internal Virtual link in the VNF
vl_profile
:
max_bitrate_requirements
:
root
:
100000
leaf
:
20000
min_bitrate_requirements
:
root
:
10000
leaf
:
10000
internal_vdu_b_1_cp
:
type
:
"
tosca.nodes.nfv.VduCp"
properties
:
order
:
2
requirements
:
-
virtual_binding
:
VDU-B-1
-
virtual_link
:
internal_vl
internal_vdu_b_2_cp
:
type
:
"
tosca.nodes.nfv.VduCp"
properties
:
order
:
0
requirements
:
-
virtual_binding
:
VDU-B-2
-
virtual_link
:
internal_vl
vdu_b_1_vsd
:
type
:
"
tosca.nodes.nfv.Vdu.VirtualBlockStorage"
type
:
"
tosca.nodes.nfv.Vdu.VirtualBlockStorage"
properties
:
properties
:
virtual_block_storage_data
:
virtual_block_storage_data
:
size_of_storage
:
20
size_of_storage
:
20
GB
rdma_enabled
:
false
rdma_enabled
:
false
sw_image_data
:
sw_image_data
:
name
:
"
vdu-b-1
image"
name
:
"
vdu-b-1
image"
...
@@ -76,63 +117,15 @@ topology_template:
...
@@ -76,63 +117,15 @@ topology_template:
algorithm
:
"
sha-224"
algorithm
:
"
sha-224"
hash
:
"
somehashfortst010"
hash
:
"
somehashfortst010"
container_format
:
"
bare"
container_format
:
"
bare"
disk
-
format
:
qcow2
disk
_
format
:
qcow2
min
-
disk
:
'
1'
min
_
disk
:
'
1'
min
-
ram
:
'
2'
min
_
ram
:
'
2'
size
:
'
1'
size
:
'
1'
artifacts
:
VDU-B
:
sw_image
:
type
:
"
tosca.artifacts.nfv.SwImage"
file
:
vdu-b-1.qcow2
vdu_b_2_vsd
:
type
:
"
tosca.nodes.nfv.Vdu.VirtualBlockStorage"
properties
:
virtual_block_storage_data
:
size_of_storage
:
20
rdma_enabled
:
false
sw_image_data
:
name
:
"
vdu-b-2
image"
version
:
"
1.1"
checksum
:
algorithm
:
"
sha-224"
hash
:
"
somehashfortst010"
container_format
:
"
bare"
disk-format
:
qcow2
min-disk
:
'
1'
min-ram
:
'
2'
size
:
'
1'
artifacts
:
sw_image
:
type
:
tosca.artifacts.nfv.SwImage
file
:
vdu-b-2.qcow2
vnf_b_1_VNF
:
type
:
"
tosca.nodes.nfv.VNF"
properties
:
descriptor_id
:
"
VNF-B-2VDUs"
descriptor_version
:
"
2.0"
provider
:
"
ETSI
TST
WG"
product_name
:
"
VNF-B-2VDUs"
software_version
:
"
2.0"
product_info_name
:
"
VNF-B-2VDUs"
product_info_description
:
"
TST010
reference
VNF-B
with
2
VDUs"
flavour_id
:
"
VNF-B-2VDU_flavor"
flavour_description
:
"
VNF-B
with
2
VDUs
flavor"
vnfm_info
:
etsivnfm
:
-
v2.3.1
interfaces
:
Vnflcm
:
scale
:
implementation
:
scale-example.yaml
terminate
:
implementation
:
terminate-example.yaml
operate
:
implementation
:
operate-example.yaml
VDU_B_1
:
type
:
"
tosca.nodes.nfv.Vdu.Compute"
type
:
"
tosca.nodes.nfv.Vdu.Compute"
properties
:
properties
:
name
:
"
vdu-b-1-vcd"
name
:
"
vdu-b-1-vcd"
descript
or
:
"
Description
of
VDU-B-1"
descript
ion
:
"
Description
of
VDU-B-1"
vdu_profile
:
vdu_profile
:
min_number_of_instances
:
1
min_number_of_instances
:
1
max_number_of_instances
:
2
max_number_of_instances
:
2
...
@@ -140,29 +133,33 @@ topology_template:
...
@@ -140,29 +133,33 @@ topology_template:
virtual_compute
:
virtual_compute
:
properties
:
properties
:
virtual_memory
:
virtual_memory
:
virtual_mem_size
:
4096
virtual_mem_size
:
4096
MB
numa_enabled
:
false
numa_enabled
:
false
virtual_cpu
:
virtual_cpu
:
num_virtual_cpu
:
2
num_virtual_cpu
:
2
requirements
: