vFW and vDNS support added to azure-plugin
[multicloud/azure.git] / azure / aria / aria-extension-cloudify / src / aria / examples / tosca-simple-1.0 / use-cases / webserver-dbms-2 / webserver-dbms-2.yaml
diff --git a/azure/aria/aria-extension-cloudify/src/aria/examples/tosca-simple-1.0/use-cases/webserver-dbms-2/webserver-dbms-2.yaml b/azure/aria/aria-extension-cloudify/src/aria/examples/tosca-simple-1.0/use-cases/webserver-dbms-2/webserver-dbms-2.yaml
new file mode 100644 (file)
index 0000000..91f0b35
--- /dev/null
@@ -0,0 +1,115 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >-
+  TOSCA simple profile with a nodejs web server hosting a PayPal sample application which connects
+  to a mongodb database.
+
+metadata:
+  template_name: webserver-dbms-2
+  template_author: TOSCA Simple Profile in YAML
+  template_version: '1.0'
+
+imports:
+  - custom_types/paypalpizzastore_nodejs_app.yaml
+
+dsl_definitions:
+
+  ubuntu_node: &ubuntu_node
+    disk_size: 10 GB
+    num_cpus: { get_input: my_cpus }
+    mem_size: 4096 MB
+  os_capabilities: &os_capabilities
+    architecture: x86_64
+    type: Linux
+    distribution: Ubuntu
+    version: 14.04
+
+topology_template:
+
+  inputs:
+    my_cpus:
+      type: integer
+      description: Number of CPUs for the server.
+      constraints:
+        - valid_values: [ 1, 2, 4, 8 ]
+      default: 1
+    github_url:
+      type: string
+      description: The URL to download nodejs.
+      default:  https://github.com/sample.git
+
+  node_templates:
+
+    paypal_pizzastore:
+      type: tosca.nodes.WebApplication.PayPalPizzaStore
+      properties:
+          github_url: { get_input: github_url }
+      requirements:
+        - host: nodejs
+        - database_connection: mongo_db
+      interfaces:
+        Standard:
+           configure:
+             implementation: scripts/nodejs/configure.sh
+             inputs:
+               github_url: { get_property: [ SELF, github_url ] }
+               mongodb_ip: { get_attribute: [ mongo_server, private_address ] }
+           start: scripts/nodejs/start.sh
+
+    nodejs:
+      type: tosca.nodes.WebServer.Nodejs
+      requirements:
+        - host: app_server
+      interfaces:
+        Standard:
+          create: scripts/nodejs/create.sh
+
+    mongo_db:
+      type: tosca.nodes.Database
+      properties:
+        name: 'pizzastore' # ARIA NOTE: missing in spec
+      requirements:
+        - host: mongo_dbms
+      interfaces:
+        Standard:
+         create: create_database.sh
+
+    mongo_dbms:
+      type: tosca.nodes.DBMS
+      requirements:
+        - host: mongo_server
+      properties:
+        port: 27017
+      interfaces:
+        Standard: # ARIA NOTE: mistaken in spec
+          create: mongodb/create.sh
+          configure:
+            implementation: mongodb/config.sh
+            inputs:
+              mongodb_ip: { get_attribute: [ mongo_server, private_address ] }
+          start: mongodb/start.sh
+
+    mongo_server:
+      type: tosca.nodes.Compute
+      capabilities:
+        os:
+          properties: *os_capabilities
+        host:
+          properties: *ubuntu_node
+
+    app_server:
+      type: tosca.nodes.Compute
+      capabilities:
+        os:
+          properties: *os_capabilities
+        host:
+          properties: *ubuntu_node
+
+  outputs:
+
+    nodejs_url:
+      description: URL for the nodejs server, http://<IP>:3000
+      value: { get_attribute: [ app_server, private_address ] }
+    mongodb_url:
+      description: URL for the mongodb server.
+      value: { get_attribute: [ mongo_server, private_address ] }