summaryrefslogtreecommitdiffstats
path: root/nfvparser/toscaparser/tests/data/topology_template
diff options
context:
space:
mode:
Diffstat (limited to 'nfvparser/toscaparser/tests/data/topology_template')
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/databasesubsystem.yaml81
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/definitions.yaml74
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/queuingsubsystem.yaml75
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/system.yaml62
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/transactionsubsystem.yaml88
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/validate/queuingsubsystem_invalid_input.yaml76
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_input.yaml24
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_missing_output.yaml24
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_unknown_output.yaml24
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/validate/test_example_app_substitution_mappings.yaml70
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/validate/test_substitution_mappings_invalid_output.yaml31
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/validate/test_substitution_mappings_valid_output.yaml31
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/validate/transactionsubsystem_invalid_missing_output.yaml92
-rw-r--r--nfvparser/toscaparser/tests/data/topology_template/validate/transactionsubsystem_invalid_unknown_output.yaml94
14 files changed, 846 insertions, 0 deletions
diff --git a/nfvparser/toscaparser/tests/data/topology_template/databasesubsystem.yaml b/nfvparser/toscaparser/tests/data/topology_template/databasesubsystem.yaml
new file mode 100644
index 0000000..b6e9c42
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/databasesubsystem.yaml
@@ -0,0 +1,81 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ Database subsystem, which is service template with topology_template,
+ act as a nested system inside another system and also act as stand
+ alone service template.
+
+imports:
+ - definitions.yaml
+
+topology_template:
+ description: Template of a database including its hosting stack.
+
+ inputs:
+ user:
+ type: string
+ description: the user name of database.
+ default: test
+ port:
+ type: integer
+ description: the port of database.
+ default: 3306
+ name:
+ type: string
+ description: the name of database.
+ default: test
+ my_cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ default: 2
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+
+ substitution_mappings:
+ node_type: example.DatabaseSubsystem
+ capabilities:
+ database_endpoint: [ db_app, database_endpoint ]
+
+ node_templates:
+ db_app:
+ type: tosca.nodes.Database
+ properties:
+ user: { get_input: user }
+ port: { get_input: port }
+ name: { get_input: name }
+ capabilities:
+ database_endpoint:
+ properties:
+ port: 1234
+ requirements:
+ - host:
+ node: dbms
+
+ dbms:
+ type: tosca.nodes.DBMS
+ properties:
+ port: 3306
+ root_password: 123456789
+ requirements:
+ - host:
+ node: server
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: my_cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+ groups:
+ dbserver_group:
+ members: [ dbms, server ]
+ type: tosca.groups.Root
diff --git a/nfvparser/toscaparser/tests/data/topology_template/definitions.yaml b/nfvparser/toscaparser/tests/data/topology_template/definitions.yaml
new file mode 100644
index 0000000..ba5eac1
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/definitions.yaml
@@ -0,0 +1,74 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+node_types:
+ example.QueuingSubsystem:
+ derived_from: tosca.nodes.SoftwareComponent
+ properties:
+ server_ip:
+ type: string
+ server_port:
+ type: integer
+ attributes:
+ server_ip:
+ type: string
+ server_port:
+ type: integer
+ requirements:
+ - receiver1:
+ node: example.TransactionSubsystem
+ capability: example.capabilities.Receiver
+ relationship: tosca.relationships.ConnectsTo
+ - receiver2:
+ node: example.TransactionSubsystem
+ capability: example.capabilities.Receiver
+ relationship: tosca.relationships.ConnectsTo
+
+ example.TransactionSubsystem:
+ properties:
+ mq_server_ip:
+ type: string
+ required: False
+ receiver_port:
+ type: integer
+ required: False
+ attributes:
+ receiver_ip:
+ type: string
+ receiver_port:
+ type: integer
+ capabilities:
+ message_receiver:
+ type: example.capabilities.Receiver
+ requirements:
+ - database_endpoint:
+ node: tosca.nodes.Database
+ capability: tosca.capabilities.Endpoint.Database
+ relationship: tosca.relationships.ConnectsTo
+
+ example.DatabaseSubsystem:
+ derived_from: tosca.nodes.Database
+
+ example.SomeApp:
+ derived_from: tosca.nodes.SoftwareComponent
+ properties:
+ admin_user:
+ type: string
+ required: False
+ pool_size:
+ type: integer
+ required: False
+ capabilities:
+ message_receiver:
+ type: example.capabilities.Receiver
+ requirements:
+ - database:
+ node: tosca.nodes.Database
+ capability: tosca.capabilities.Endpoint.Database
+ relationship: tosca.relationships.ConnectsTo
+
+capability_types:
+ example.capabilities.Receiver:
+ derived_from: tosca.capabilities.Endpoint
+ properties:
+ server_ip:
+ type: string
diff --git a/nfvparser/toscaparser/tests/data/topology_template/queuingsubsystem.yaml b/nfvparser/toscaparser/tests/data/topology_template/queuingsubsystem.yaml
new file mode 100644
index 0000000..578aa4a
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/queuingsubsystem.yaml
@@ -0,0 +1,75 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ Queue subsystem, which is service template with topology_template,
+ act as a nested system inside another system and also act as stand
+ alone service template.
+
+imports:
+ - definitions.yaml
+
+topology_template:
+ description: Template of a database including its hosting stack.
+
+ inputs:
+ server_ip:
+ type: string
+ description: IP address of the message queuing server to receive messages from.
+ default: 127.0.0.1
+ server_port:
+ type: integer
+ description: Port to be used for receiving messages.
+ default: 8080
+ my_cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ default: 2
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+
+ substitution_mappings:
+ node_type: example.QueuingSubsystem
+ # capabilities:
+ # message_receiver: [ app, message_receiver ]
+ requirements:
+ receiver1: [ tran_app, receiver1 ]
+ receiver2: [ tran_app, receiver2 ]
+
+ node_templates:
+ tran_app:
+ type: example.QueuingSubsystem
+ properties:
+ server_ip: { get_input: server_ip }
+ server_port: { get_input: server_port }
+ requirements:
+ - host:
+ node: server
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: my_cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+ outputs:
+ server_ip:
+ description: server_ip of the message receiver application
+ value: { get_input: server_ip }
+
+ server_port:
+ description: server_port of the message receiver application
+ value: { get_input: server_port }
+
+ groups:
+ tran_server_group:
+ members: [ tran_app, server ]
+ type: tosca.groups.Root
diff --git a/nfvparser/toscaparser/tests/data/topology_template/system.yaml b/nfvparser/toscaparser/tests/data/topology_template/system.yaml
new file mode 100644
index 0000000..f4e10ae
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/system.yaml
@@ -0,0 +1,62 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - queuingsubsystem.yaml
+ - transactionsubsystem.yaml
+ - databasesubsystem.yaml
+
+topology_template:
+ description: Template of online transaction processing service.
+
+ inputs:
+ mq_server_ip:
+ type: string
+ default: 127.0.0.1
+ description: IP address of the message queuing server to receive messages from.
+ mq_server_port:
+ type: integer
+ default: 8080
+ description: Port to be used for receiving messages.
+
+ node_templates:
+ mq:
+ type: example.QueuingSubsystem
+ properties:
+ server_ip: { get_input: mq_server_ip }
+ server_port: { get_input: mq_server_port }
+ # capabilities:
+ # message_queue_endpoint:
+ # to be updated when substitution_mapping is validated later
+ requirements:
+ - receiver1: trans1
+ - receiver2: trans2
+
+ trans1:
+ type: example.TransactionSubsystem
+ properties:
+ mq_server_ip: { get_attribute: [ mq, server_ip ] }
+ receiver_port: { get_attribute: [ mq, server_port ] }
+ # capabilities:
+ # message_receiver:
+ # to be updated when substitution_mapping is validated later
+ requirements:
+ - database_endpoint: dbsys
+
+ trans2:
+ type: example.TransactionSubsystem
+ properties:
+ mq_server_ip: { get_attribute: [ mq, server_ip ] }
+ receiver_port: { get_attribute: [ mq, server_port ] }
+ # capabilities:
+ # message_receiver:
+ # to be updated when substitution_mapping is validated later
+ requirements:
+ - database_endpoint: dbsys
+
+ dbsys:
+ type: example.DatabaseSubsystem
+ # properties:
+ # to be updated when substitution_mapping is validated later
+ # capabilities:
+ # database_endpoint:
+ # to be updated when substitution_mapping is validated later
diff --git a/nfvparser/toscaparser/tests/data/topology_template/transactionsubsystem.yaml b/nfvparser/toscaparser/tests/data/topology_template/transactionsubsystem.yaml
new file mode 100644
index 0000000..42e100a
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/transactionsubsystem.yaml
@@ -0,0 +1,88 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ Transaction subsystem, which is service template with topology_template,
+ act as a nested system inside another system and also act as stand
+ alone service template.
+
+imports:
+ - definitions.yaml
+
+topology_template:
+ description: Template of a database including its hosting stack.
+
+ inputs:
+ mq_server_ip:
+ type: string
+ description: IP address of the message queuing server to receive messages from.
+ default: 127.0.0.1
+ receiver_port:
+ type: integer
+ description: Port to be used for receiving messages.
+ default: 8080
+ my_cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ default: 2
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+
+ substitution_mappings:
+ node_type: example.TransactionSubsystem
+ capabilities:
+ message_receiver: [ app, message_receiver ]
+ requirements:
+ database_endpoint: [ app, database ]
+
+ node_templates:
+ app:
+ type: example.SomeApp
+ properties:
+ admin_user: foo
+ pool_size: 10
+ capabilities:
+ message_receiver:
+ properties:
+ server_ip: { get_input: mq_server_ip }
+ requirements:
+ - host:
+ node: websrv
+
+ websrv:
+ type: tosca.nodes.WebServer
+ capabilities:
+ data_endpoint:
+ properties:
+ port_name: { get_input: receiver_port }
+ requirements:
+ - host:
+ node: server
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: my_cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+ outputs:
+ receiver_ip:
+ description: private IP address of the message receiver application
+ value: { get_attribute: [ server, private_address ] }
+
+ receiver_port:
+ description: receiver_port of the message receiver application
+ value: { get_input: receiver_port }
+
+ groups:
+ webserver_group:
+ members: [ websrv, server ]
+ type: tosca.groups.Root
diff --git a/nfvparser/toscaparser/tests/data/topology_template/validate/queuingsubsystem_invalid_input.yaml b/nfvparser/toscaparser/tests/data/topology_template/validate/queuingsubsystem_invalid_input.yaml
new file mode 100644
index 0000000..67ef341
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/validate/queuingsubsystem_invalid_input.yaml
@@ -0,0 +1,76 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ This template is a test template which contains invalid input needed for substitution mappings.
+ The required properties without default value in substituted node template which be mapped must be
+ as inputs of nested service template which defines substutition mappings, and the inputs of nested
+ service template which are not in the properties of the substituted node template must provide
+ default values.
+ This template provides an additional input of server_port1/my_cpus/my_input which are not defined
+ in example.QueuingSubsystem, and the default value are 8080/2/123, all of these are right. But the
+ required property of server_port defined in example.QueuingSubsystem is not appeared in inputs
+ definiton, so will raise excepton of "MissingRequiredInputError".
+
+imports:
+ - ../definitions.yaml
+
+topology_template:
+ description: Template of a database including its hosting stack.
+
+ inputs:
+ server_ip:
+ type: string
+ description: IP address of the message queuing server to receive messages from.
+ default: 127.0.0.1
+ server_port1:
+ type: integer
+ description: Port to be used for receiving messages.
+ default: 8080
+ my_cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ default: 2
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+ my_input:
+ type: integer
+ description: test for input validation.
+ default: 123
+
+ substitution_mappings:
+ node_type: example.QueuingSubsystem
+
+ node_templates:
+ tran_app:
+ type: example.QueuingSubsystem
+ properties:
+ server_ip: { get_input: server_ip }
+ server_port: { get_input: server_port1 }
+ requirements:
+ - host:
+ node: server
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: my_cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+ outputs:
+ receiver_ip:
+ description: private IP address of the message receiver application
+ value: { get_attribute: [ server, private_address ] }
+
+ groups:
+ tran_server_group:
+ members: [ tran_app, server ]
+ type: tosca.groups.Root
diff --git a/nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_input.yaml b/nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_input.yaml
new file mode 100644
index 0000000..e3cdd71
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_input.yaml
@@ -0,0 +1,24 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - queuingsubsystem_invalid_input.yaml
+
+topology_template:
+ description: Test template with invalid input.
+
+ inputs:
+ mq_server_ip:
+ type: string
+ default: 127.0.0.1
+ description: IP address of the message queuing server to receive messages from.
+ mq_server_port:
+ type: integer
+ default: 8080
+ description: Port to be used for receiving messages.
+
+ node_templates:
+ mq:
+ type: example.QueuingSubsystem
+ properties:
+ server_ip: { get_input: mq_server_ip }
+ server_port: { get_input: mq_server_port }
diff --git a/nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_missing_output.yaml b/nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_missing_output.yaml
new file mode 100644
index 0000000..2028c38
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_missing_output.yaml
@@ -0,0 +1,24 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - transactionsubsystem_invalid_missing_output.yaml
+
+topology_template:
+ description: Test template with invalid missing output.
+
+ inputs:
+ mq_server_ip:
+ type: string
+ default: 127.0.0.1
+ description: IP address of the message queuing server to receive messages from.
+ mq_server_port:
+ type: integer
+ default: 8080
+ description: Port to be used for receiving messages.
+
+ node_templates:
+ trans:
+ type: example.TransactionSubsystem
+ properties:
+ mq_server_ip: { get_input: mq_server_ip }
+ receiver_port: { get_input: mq_server_port }
diff --git a/nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_unknown_output.yaml b/nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_unknown_output.yaml
new file mode 100644
index 0000000..de16ca2
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/validate/system_invalid_unknown_output.yaml
@@ -0,0 +1,24 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - transactionsubsystem_invalid_unknown_output.yaml
+
+topology_template:
+ description: Test template with invalid unknown output.
+
+ inputs:
+ mq_server_ip:
+ type: string
+ default: 127.0.0.1
+ description: IP address of the message queuing server to receive messages from.
+ mq_server_port:
+ type: integer
+ default: 8080
+ description: Port to be used for receiving messages.
+
+ node_templates:
+ trans:
+ type: example.TransactionSubsystem
+ properties:
+ mq_server_ip: { get_input: mq_server_ip }
+ receiver_port: { get_input: mq_server_port }
diff --git a/nfvparser/toscaparser/tests/data/topology_template/validate/test_example_app_substitution_mappings.yaml b/nfvparser/toscaparser/tests/data/topology_template/validate/test_example_app_substitution_mappings.yaml
new file mode 100644
index 0000000..718022a
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/validate/test_example_app_substitution_mappings.yaml
@@ -0,0 +1,70 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ Template showing an example TOSCA type to demonstrate usage
+ of output in the substitution mappings.
+
+node_types:
+ example.app:
+ derived_from: tosca.nodes.WebApplication
+ properties:
+ mq_server_ip:
+ type: string
+ required: False
+ receiver_port:
+ type: integer
+ required: False
+ attributes:
+ receiver_ip:
+ type: string
+ receiver_port:
+ type: integer
+
+topology_template:
+ inputs:
+ mq_server_ip:
+ type: string
+ description: IP address of the message queuing server to receive messages from.
+ default: 127.0.0.1
+ receiver_port:
+ type: integer
+ description: Port to be used for receiving messages.
+ default: 8080
+ my_cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ default: 2
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+
+ substitution_mappings:
+ node_type: example.app
+
+ node_templates:
+ app:
+ type: example.app
+ properties:
+ mq_server_ip: { get_input: mq_server_ip }
+ receiver_port: { get_input: receiver_port }
+ requirements:
+ - host:
+ node: websrv
+ websrv:
+ type: tosca.nodes.WebServer
+ requirements:
+ - host:
+ node: server
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: my_cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
diff --git a/nfvparser/toscaparser/tests/data/topology_template/validate/test_substitution_mappings_invalid_output.yaml b/nfvparser/toscaparser/tests/data/topology_template/validate/test_substitution_mappings_invalid_output.yaml
new file mode 100644
index 0000000..ef21811
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/validate/test_substitution_mappings_invalid_output.yaml
@@ -0,0 +1,31 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - test_example_app_substitution_mappings.yaml
+
+topology_template:
+ description: >
+ Test template showing valid output section containing attribute defined
+ in the substitution mappings in the imported yaml file.
+
+ inputs:
+ mq_server_ip:
+ type: string
+ default: 127.0.0.1
+ description: IP address of the message queuing server to receive messages from.
+ mq_server_port:
+ type: integer
+ default: 8080
+ description: Port to be used for receiving messages.
+
+ node_templates:
+ substitute_app:
+ type: example.app
+ properties:
+ mq_server_ip: { get_input: mq_server_ip }
+ receiver_port: { get_input: mq_server_port }
+
+ outputs:
+ receiver_ip:
+ description: private IP address of the message receiver application
+ value: { get_attribute: [ substitute_app, my_cpu_output ] } \ No newline at end of file
diff --git a/nfvparser/toscaparser/tests/data/topology_template/validate/test_substitution_mappings_valid_output.yaml b/nfvparser/toscaparser/tests/data/topology_template/validate/test_substitution_mappings_valid_output.yaml
new file mode 100644
index 0000000..766ca87
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/validate/test_substitution_mappings_valid_output.yaml
@@ -0,0 +1,31 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+imports:
+ - test_example_app_substitution_mappings.yaml
+
+topology_template:
+ description: >
+ Test template showing valid output section containing attribute defined
+ in the substitution mappings in the imported yaml file.
+
+ inputs:
+ mq_server_ip:
+ type: string
+ default: 127.0.0.1
+ description: IP address of the message queuing server to receive messages from.
+ mq_server_port:
+ type: integer
+ default: 8080
+ description: Port to be used for receiving messages.
+
+ node_templates:
+ sustitute_app:
+ type: example.app
+ properties:
+ mq_server_ip: { get_input: mq_server_ip }
+ receiver_port: { get_input: mq_server_port }
+
+ outputs:
+ receiver_ip:
+ description: private IP address of the message receiver application
+ value: { get_attribute: [ sustitute_app, receiver_ip ] } \ No newline at end of file
diff --git a/nfvparser/toscaparser/tests/data/topology_template/validate/transactionsubsystem_invalid_missing_output.yaml b/nfvparser/toscaparser/tests/data/topology_template/validate/transactionsubsystem_invalid_missing_output.yaml
new file mode 100644
index 0000000..c92e5f8
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/validate/transactionsubsystem_invalid_missing_output.yaml
@@ -0,0 +1,92 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ This template is a test template which contains invalid output
+ needed for substitution mappings.
+ The outputs defined by the topology template have to match the
+ attributes of the node type or the substituted node template,
+ and the observable attributes of the substituted node template
+ have to be defined as attributes of the node type or outputs in
+ the topology template.
+ But this template misses output of receiver_port which is not
+ defined in node type of example.TransactionSubsystem, so it will
+ be validated error for substitution mappings.
+
+imports:
+ - ../definitions.yaml
+
+topology_template:
+ description: Template of a database including its hosting stack.
+
+ inputs:
+ mq_server_ip:
+ type: string
+ description: IP address of the message queuing server to receive messages from.
+ default: 127.0.0.1
+ receiver_port:
+ type: integer
+ description: Port to be used for receiving messages.
+ default: 8080
+ my_cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ default: 2
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+
+ substitution_mappings:
+ node_type: example.TransactionSubsystem
+ capabilities:
+ message_receiver: [ app, message_receiver ]
+ requirements:
+ database_endpoint: [ app, database ]
+
+ node_templates:
+ app:
+ type: example.SomeApp
+ properties:
+ admin_user: foo
+ pool_size: 10
+ capabilities:
+ message_receiver:
+ properties:
+ server_ip: { get_input: mq_server_ip }
+ requirements:
+ - host:
+ node: websrv
+
+ websrv:
+ type: tosca.nodes.WebServer
+ capabilities:
+ data_endpoint:
+ properties:
+ port_name: { get_input: receiver_port }
+ requirements:
+ - host:
+ node: server
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: my_cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+ outputs:
+ receiver_ip:
+ description: private IP address of the message receiver application
+ value: { get_attribute: [ server, private_address ] }
+
+ # This output is invalid if comment receiver_out out only for
+ # substituion mappings
+# receiver_port:
+# description: receiver_port of the message receiver application
+# value: { get_input: receiver_port }
diff --git a/nfvparser/toscaparser/tests/data/topology_template/validate/transactionsubsystem_invalid_unknown_output.yaml b/nfvparser/toscaparser/tests/data/topology_template/validate/transactionsubsystem_invalid_unknown_output.yaml
new file mode 100644
index 0000000..ffca24b
--- /dev/null
+++ b/nfvparser/toscaparser/tests/data/topology_template/validate/transactionsubsystem_invalid_unknown_output.yaml
@@ -0,0 +1,94 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >
+ This template is a test template which contains invalid output
+ needed for substitution mappings.
+ The outputs defined by the topology template have to match the
+ attributes of the node type or the substituted node template,
+ and the observable attributes of the substituted node template
+ have to be defined as attributes of the node type or outputs in
+ the topology template.
+ But this template contains output of my_cpu_output which is not
+ defined in node type of example.TransactionSubsystem, so it will
+ be validated error for substitution mappings.
+
+imports:
+ - ../definitions.yaml
+
+topology_template:
+ description: Template of a database including its hosting stack.
+
+ inputs:
+ mq_server_ip:
+ type: string
+ description: IP address of the message queuing server to receive messages from.
+ default: 127.0.0.1
+ receiver_port:
+ type: integer
+ description: Port to be used for receiving messages.
+ default: 8080
+ my_cpus:
+ type: integer
+ description: Number of CPUs for the server.
+ default: 2
+ constraints:
+ - valid_values: [ 1, 2, 4, 8 ]
+
+ substitution_mappings:
+ node_type: example.TransactionSubsystem
+ capabilities:
+ message_receiver: [ app, message_receiver ]
+ requirements:
+ database_endpoint: [ app, database ]
+
+ node_templates:
+ app:
+ type: example.SomeApp
+ properties:
+ admin_user: foo
+ pool_size: 10
+ capabilities:
+ message_receiver:
+ properties:
+ server_ip: { get_input: mq_server_ip }
+ requirements:
+ - host:
+ node: websrv
+
+ websrv:
+ type: tosca.nodes.WebServer
+ capabilities:
+ data_endpoint:
+ properties:
+ port_name: { get_input: receiver_port }
+ requirements:
+ - host:
+ node: server
+
+ server:
+ type: tosca.nodes.Compute
+ capabilities:
+ host:
+ properties:
+ disk_size: 10 GB
+ num_cpus: { get_input: my_cpus }
+ mem_size: 4096 MB
+ os:
+ properties:
+ architecture: x86_64
+ type: Linux
+ distribution: Ubuntu
+ version: 14.04
+
+ outputs:
+ receiver_ip:
+ description: private IP address of the message receiver application
+ value: { get_attribute: [ server, private_address ] }
+
+ receiver_port:
+ description: receiver_port of the message receiver application
+ value: { get_input: receiver_port }
+
+ my_cpu_output:
+ description: this output is only invalid for substitution mappings
+ value: { get_input: my_cpus }