1b9281a22c
Previously there are a lot of warning messages of setuptools in the log files of tox jobs. This is mainly caused by test samples because these are in python codes directories. This patch moves test samples from under {tosca-parser_root}/toscaparser/tests to under {tosca-parser_root}/samples/tests. This patch also contains the following changes: * Removed unused test samples. * Fixed usage.rst command example. * Changeing unit tests that reference external URL to use mock * Mock methods used in unit tests have been made into common methods. Change-Id: I80ab6ce0b3344f19afb4d16554c799747b1f2567
218 lines
6.7 KiB
YAML
218 lines
6.7 KiB
YAML
tosca_definitions_version: tosca_simple_yaml_1_0
|
|
|
|
description: >
|
|
This TOSCA simple profile deploys nodejs, mongodb, elasticsearch, logstash
|
|
and kibana each on a separate server with monitoring enabled for nodejs
|
|
server where a sample nodejs application is running. The rsyslog and collectd
|
|
are installed on a nodejs server.
|
|
|
|
imports:
|
|
- custom_types/paypalpizzastore_nodejs_app.yaml
|
|
- custom_types/elasticsearch.yaml
|
|
- custom_types/logstash.yaml
|
|
- custom_types/kibana.yaml
|
|
- custom_types/collectd.yaml
|
|
- custom_types/rsyslog.yaml
|
|
|
|
dsl_definitions:
|
|
host_capabilities: &host_capabilities
|
|
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: http://github.com/paypal/rest-api-sample-app-nodejs.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: nodejs/config.sh
|
|
inputs:
|
|
github_url: { get_property: [ SELF, github_url ] }
|
|
mongodb_ip: { get_attribute: [mongo_server, private_address] }
|
|
start: nodejs/start.sh
|
|
nodejs:
|
|
type: tosca.nodes.WebServer
|
|
requirements:
|
|
- host: app_server
|
|
interfaces:
|
|
Standard:
|
|
create: nodejs/create.sh
|
|
mongo_db:
|
|
type: tosca.nodes.Database
|
|
requirements:
|
|
- host: mongo_dbms
|
|
interfaces:
|
|
Standard:
|
|
create: mongodb/create_database.sh
|
|
mongo_dbms:
|
|
type: tosca.nodes.DBMS
|
|
requirements:
|
|
- host: mongo_server
|
|
interfaces:
|
|
Standard:
|
|
create: mongodb/create.sh
|
|
configure:
|
|
implementation: mongodb/config.sh
|
|
inputs:
|
|
mongodb_ip: { get_attribute: [mongo_server, private_address] }
|
|
start: mongodb/start.sh
|
|
elasticsearch:
|
|
type: tosca.nodes.SoftwareComponent.Elasticsearch
|
|
requirements:
|
|
- host: elasticsearch_server
|
|
interfaces:
|
|
Standard:
|
|
create: elasticsearch/create.sh
|
|
start: elasticsearch/start.sh
|
|
logstash:
|
|
type: tosca.nodes.SoftwareComponent.Logstash
|
|
requirements:
|
|
- host: logstash_server
|
|
- search_endpoint:
|
|
node: elasticsearch
|
|
capability: search_endpoint
|
|
relationship:
|
|
type: tosca.relationships.ConnectsTo
|
|
interfaces:
|
|
Configure:
|
|
pre_configure_source:
|
|
implementation: logstash/configure_elasticsearch.py
|
|
inputs:
|
|
elasticsearch_ip: { get_attribute: [elasticsearch_server, private_address] }
|
|
interfaces:
|
|
Standard:
|
|
create: logstash/create.sh
|
|
start: logstash/start.sh
|
|
kibana:
|
|
type: tosca.nodes.SoftwareComponent.Kibana
|
|
requirements:
|
|
- host: kibana_server
|
|
- search_endpoint: elasticsearch
|
|
interfaces:
|
|
Standard:
|
|
create: kibana/create.sh
|
|
configure:
|
|
implementation: kibana/config.sh
|
|
inputs:
|
|
elasticsearch_ip: { get_attribute: [elasticsearch_server, private_address] }
|
|
kibana_ip: { get_attribute: [kibana_server, private_address] }
|
|
start: kibana/start.sh
|
|
app_collectd:
|
|
type: tosca.nodes.SoftwareComponent.Collectd
|
|
requirements:
|
|
- host: app_server
|
|
- log_endpoint:
|
|
node: logstash
|
|
capability: log_endpoint
|
|
relationship:
|
|
type: tosca.relationships.ConnectsTo
|
|
interfaces:
|
|
Configure:
|
|
pre_configure_target:
|
|
implementation: logstash/configure_collectd.py
|
|
interfaces:
|
|
Standard:
|
|
create: collectd/create.sh
|
|
configure:
|
|
implementation: collectd/config.py
|
|
inputs:
|
|
logstash_ip: { get_attribute: [logstash_server, private_address] }
|
|
start: collectd/start.sh
|
|
app_rsyslog:
|
|
type: tosca.nodes.SoftwareComponent.Rsyslog
|
|
requirements:
|
|
- host: app_server
|
|
- log_endpoint:
|
|
node: logstash
|
|
capability: log_endpoint
|
|
relationship:
|
|
type: tosca.relationships.ConnectsTo
|
|
interfaces:
|
|
Configure:
|
|
pre_configure_target:
|
|
implementation: logstash/configure_rsyslog.py
|
|
interfaces:
|
|
Standard:
|
|
create: rsyslog/create.sh
|
|
configure:
|
|
implementation: rsyslog/config.sh
|
|
inputs:
|
|
logstash_ip: { get_attribute: [logstash_server, private_address] }
|
|
start: rsyslog/start.sh
|
|
app_server:
|
|
type: tosca.nodes.Compute
|
|
capabilities:
|
|
host:
|
|
properties: *host_capabilities
|
|
os:
|
|
properties: *os_capabilities
|
|
mongo_server:
|
|
type: tosca.nodes.Compute
|
|
capabilities:
|
|
host:
|
|
properties: *host_capabilities
|
|
os:
|
|
properties: *os_capabilities
|
|
elasticsearch_server:
|
|
type: tosca.nodes.Compute
|
|
capabilities:
|
|
host:
|
|
properties: *host_capabilities
|
|
os:
|
|
properties: *os_capabilities
|
|
logstash_server:
|
|
type: tosca.nodes.Compute
|
|
capabilities:
|
|
host:
|
|
properties: *host_capabilities
|
|
os:
|
|
properties: *os_capabilities
|
|
kibana_server:
|
|
type: tosca.nodes.Compute
|
|
capabilities:
|
|
host:
|
|
properties: *host_capabilities
|
|
os:
|
|
properties: *os_capabilities
|
|
|
|
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 ] }
|
|
elasticsearch_url:
|
|
description: URL for the elasticsearch server.
|
|
value: { get_attribute: [ elasticsearch_server, private_address ] }
|
|
logstash_url:
|
|
description: URL for the logstash server.
|
|
value: { get_attribute: [ logstash_server, private_address ] }
|
|
kibana_url:
|
|
description: URL for the kibana server.
|
|
value: { get_attribute: [ kibana_server, private_address ] }
|