summaryrefslogtreecommitdiffstats
path: root/tosca2heat/tosca-parser/toscaparser/tests/data/test_multiple_validation_errors.yaml
blob: ccae4eb33c416b2bc23efd26a8de9516d6e2bb6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
tosca_definitions_version: tosca_simple_yaml_1

description: >
  TOSCA simple profile with wordpress, web server and mysql on the same server.

imports:
  - custom_types/not_there.yaml

topology_template:
  inputs:
    cpus:
      type: integer
      description: Number of CPUs for the server.
      constraints:
        - valid_values: [ 1, 2, 4, 8 ]
      default: 1
    db_name:
      type: string
      description: The name of the database.
      default: wordpress
    db_user:
      type: string
      description: The user name of the DB user.
      default: wp_user
    db_pwd:
      type: string
      description: The WordPress database admin account password.
      default: wp_pass
    db_root_pwd:
      type: string
      description: Root password for MySQL.
    db_port:
      type: PortDef
      description: Port for the MySQL database.
      default: 3306

  node_templates:
    wordpress:
      type: tosca.nodes.WebApplication.WordPress
      requirement:
        - host: webserver
        - database_endpoint: mysql_database
      interfaces:
        Standard:
          create: wordpress/wordpress_install.sh
          configure:
            implementation: wordpress/wordpress_configure.sh
            inputs:
              wp_db_name: { get_property: [ mysql_database, name ] }
              wp_db_user: { get_property: [ mysql_database, user ] }
              wp_db_password: { get_property: [ mysql_database, password ] }

    mysql_database:
      type: tosca.nodes.Database
      properties:
        name: { get_input: db_name }
        user: { get_input: db_user }
        password: { get_input: db_pwd }
      capabilities:
        database_endpoint:
          properties:
            port: { get_input: db_port }
      requirements:
        - host: mysql_dbms
      interfaces:
        Standard:
          configure:
            implementation: mysql/mysql_database_configure.sh
            inputs:
              db_name: { get_property: [ SELF, name ] }
              db_user: { get_property: [ SELF, user ] }
              db_password: { get_property: [ SELF, passwords ] }
              db_root_password: { get_property: [ mysql_dbms, root_password ] }

    mysql_dbms:
      type1: tosca.nodes.DBMS
      properties:
        root_password: { get_input: db_root_pwd }
        port: { get_input: db_port }
      requirements:
        - host: server
      interfaces:
        Standard:
          create:
            implementation: mysql/mysql_dbms_install.sh
            inputs:
              db_root_password: { get_property: [ mysql_dbms, root_password ] }
          start: mysql/mysql_dbms_start.sh
          configure:
            implementation: mysql/mysql_dbms_configure.sh
            inputs:
              db_port: { get_property: [ mysql_dbms, port ] }

    webserver:
      type: tosca.nodes.WebServer
      requirements:
        - host: server1
        - database_endpoint:
            node: webserver
            relationship:
              type1: tosca.relationships.ConnectsTo
      interfaces:
        Standard:
          create: webserver/webserver_install.sh
          start: webserver/webserver_start.sh

    server:
      type: tosca.nodes.Compute
      capabilities:
        host:
          properties:
            disk_size: 10 GB
            num_cpus: { get_input: cpus }
            mem_size: 4096 MB
        os:
          properties:
            architecture: x86_64
            type: Linux
            distribution: Ubuntu
            version: 14.04

  outputs:
    website_url:
      description: URL for Wordpress wiki.
      value: { get_attribute: [server, private_address] }