summaryrefslogtreecommitdiffstats
path: root/javatoscachecker/checker/src/test/resources/spec/examples/spec-example-11.1.15.3.yaml
blob: 0efd97896f1c2d0b60f061d5a8247b01e5c823c6 (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
tosca_definitions_version: tosca_simple_yaml_1_0
 
description: >
  TOSCA simple profile with WordPress, a web server, a MySQL DBMS hosting the application�s database content on the same server. Does not have input defaults or constraints.

# well, whomever wrote this example .. there are references to non-existent template and interface inputs.
metadata:
  outcome: "fail"

imports:
  - network: tosca/tosca-network-types.yaml
  - examples: tosca/tosca-examples-types.yaml

topology_template:
  inputs:
    cpus:
      type: integer
      description: Number of CPUs for the server.
    db_name:
      type: string
      description: The name of the database.
    db_user:
      type: string
      description: The username of the DB user.
    db_pwd:
      type: string
      description: The WordPress database admin account password.
    db_root_pwd:
      type: string
      description: Root password for MySQL.
    db_port:
      type: tosca.datatypes.network.PortDef
      description: Port for the MySQL database
 
  node_templates:
    wordpress:
      type: tosca.nodes.WebApplication.WordPress
      properties:
        context_root: { get_input: context_root }
      requirements:
        - host: webserver
        - database_endpoint: mysql_database
      interfaces:
        Standard:
          create: wordpress_install.sh
          configure:
            implementation: 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 ] }  
              # In my own template, find requirement/capability, find port property
              wp_db_port: { get_property: [ SELF, database_endpoint, port ] }
 
    mysql_database:
      type: tosca.nodes.Database
      properties:
        name: { get_input: db_name }
        user: { get_input: db_user }
        password: { get_input: db_pwd }
        port: { get_input: db_port }
      capabilities:
        database_endpoint:
          properties:
            port: { get_input: db_port }
      requirements:
        - host: mysql_dbms
      interfaces:
        Standard:
          configure: mysql_database_configure.sh
 
    mysql_dbms:
      type: tosca.nodes.DBMS
      properties:
        root_password: { get_input: db_root_pwd }
        port: { get_input: db_port }
      requirements:
        - host: server
      interfaces:
        Standard:             
          inputs:
              db_root_password: { get_property: [ mysql_dbms, root_password ] }
          create: mysql_dbms_install.sh
          start: mysql_dbms_start.sh
          configure: mysql_dbms_configure.sh
 
    webserver:
      type: tosca.nodes.WebServer
      requirements:
        - host: server
      interfaces:
        Standard:
          create: webserver_install.sh
          start: 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: fedora 
            version: 17.0
 
  outputs:
    website_url:
      description: URL for Wordpress wiki.
      value: { get_attribute: [server, public_address] }