You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ariatosca.apache.org by em...@apache.org on 2017/07/18 22:36:54 UTC
[1/2] incubator-ariatosca git commit: ARIA-311 Update CHANGELOG with
0.1.1 issues [Forced Update!]
Repository: incubator-ariatosca
Updated Branches:
refs/heads/ARIA-321-clearwater 4bd5892a6 -> 28d092aff (forced update)
ARIA-311 Update CHANGELOG with 0.1.1 issues
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/67a0675d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/67a0675d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/67a0675d
Branch: refs/heads/ARIA-321-clearwater
Commit: 67a0675d679ce51de0f758369a1de1029e212439
Parents: b841c01
Author: Ran Ziv <ra...@gigaspaces.com>
Authored: Mon Jul 10 18:02:59 2017 +0300
Committer: Ran Ziv <ra...@gigaspaces.com>
Committed: Tue Jul 18 11:37:34 2017 +0300
----------------------------------------------------------------------
CHANGELOG.rst | 12 ++++++++++++
1 file changed, 12 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/67a0675d/CHANGELOG.rst
----------------------------------------------------------------------
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 6abb1af..a0ca089 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -1,3 +1,15 @@
+0.1.1
+-----
+
+[ARIA-312] Validation of workflow and operation kwargs raise false alarms
+[ARIA-301] Environment-marked dependencies are installed regardless of environment when installing from wheel
+[ARIA-299] Resuming canceled execution with non-finished tasks fails
+[ARIA-298] Test suite sometimes fails or freezes despite all tests passing
+[ARIA-296] Process termination test fails on windows
+[ARIA-287] New tox suite to make sure that Sphinx documentation generation isn't broken
+[ARIA-202] Execution plugin assumes '/tmp' for temp directory on the local/remote machine
+
+
0.1.0
-----
[2/2] incubator-ariatosca git commit: Initial install (succeeds,
but Ellis has errors)
Posted by em...@apache.org.
Initial install (succeeds, but Ellis has errors)
Project: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/commit/28d092af
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/tree/28d092af
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/diff/28d092af
Branch: refs/heads/ARIA-321-clearwater
Commit: 28d092afffbce1fd69c904447d3c2ff1b067ad77
Parents: 67a0675
Author: Tal Liron <ta...@gmail.com>
Authored: Tue Jul 18 17:25:27 2017 -0500
Committer: Tal Liron <ta...@gmail.com>
Committed: Tue Jul 18 17:36:46 2017 -0500
----------------------------------------------------------------------
examples/clearwater/clearwater-local.yaml | 58 +++
examples/clearwater/scripts/bono/create.sh | 5 +
examples/clearwater/scripts/bono/delete.sh | 0
examples/clearwater/scripts/dime/create.sh | 5 +
examples/clearwater/scripts/dime/delete.sh | 0
examples/clearwater/scripts/ellis/create.sh | 5 +
examples/clearwater/scripts/ellis/delete.sh | 0
examples/clearwater/scripts/homer/create.sh | 5 +
examples/clearwater/scripts/homer/delete.sh | 0
examples/clearwater/scripts/homestead/create.sh | 0
examples/clearwater/scripts/homestead/delete.sh | 0
examples/clearwater/scripts/host/configure.sh | 136 +++++++
examples/clearwater/scripts/ralf/create.sh | 0
examples/clearwater/scripts/ralf/delete.sh | 0
examples/clearwater/scripts/sprout/create.sh | 8 +
examples/clearwater/scripts/sprout/delete.sh | 0
examples/clearwater/scripts/velum/create.sh | 8 +
examples/clearwater/scripts/velum/delete.sh | 0
examples/clearwater/types/cassandra.yaml | 0
examples/clearwater/types/clearwater.yaml | 251 ++++++++++++
examples/clearwater/types/ims.yaml | 394 +++++++++++++++++++
21 files changed, 875 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/clearwater-local.yaml
----------------------------------------------------------------------
diff --git a/examples/clearwater/clearwater-local.yaml b/examples/clearwater/clearwater-local.yaml
new file mode 100644
index 0000000..8d9ffe3
--- /dev/null
+++ b/examples/clearwater/clearwater-local.yaml
@@ -0,0 +1,58 @@
+tosca_definitions_version: tosca_simple_yaml_1_0
+
+description: >-
+ Project Clearwater is an open-source IMS core, developed by Metaswitch Networks and released under
+ the GNU GPLv3.
+
+metadata:
+ template_name: clearwater-local
+ template_author: ARIA
+ template_version: '1.0.0'
+ aria_version: '0.1'
+
+imports:
+ - types/clearwater.yaml
+ - aria-1.0
+
+topology_template:
+
+ inputs:
+ host.address:
+ type: string
+ default: 192.168.1.170
+ host.user:
+ type: string
+ default: ubuntu
+ host.password:
+ type: string
+ default: ubuntu
+
+ node_templates:
+ bono:
+ type: clearwater.Bono
+
+ sprout:
+ type: clearwater.Sprout
+
+ dime:
+ type: clearwater.Dime
+
+ homestead:
+ type: clearwater.Homestead
+
+ ralf:
+ type: clearwater.Ralf
+
+ velum:
+ type: clearwater.Velum
+
+ homer:
+ type: clearwater.Homer
+
+ ellis:
+ type: clearwater.Ellis
+
+ host:
+ type: clearwater.Host
+ attributes:
+ private_address: { get_input: host.address }
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/bono/create.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/bono/create.sh b/examples/clearwater/scripts/bono/create.sh
new file mode 100644
index 0000000..6e441c2
--- /dev/null
+++ b/examples/clearwater/scripts/bono/create.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -e
+
+yes | aptdcon --hide-terminal --install bono restund
+yes | aptdcon --hide-terminal --install clearwater-management
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/bono/delete.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/bono/delete.sh b/examples/clearwater/scripts/bono/delete.sh
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/dime/create.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/dime/create.sh b/examples/clearwater/scripts/dime/create.sh
new file mode 100644
index 0000000..584fcd0
--- /dev/null
+++ b/examples/clearwater/scripts/dime/create.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -e
+
+yes | aptdcon --hide-terminal --install dime clearwater-prov-tools
+yes | aptdcon --hide-terminal --install clearwater-management
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/dime/delete.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/dime/delete.sh b/examples/clearwater/scripts/dime/delete.sh
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/ellis/create.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/ellis/create.sh b/examples/clearwater/scripts/ellis/create.sh
new file mode 100644
index 0000000..f7fb151
--- /dev/null
+++ b/examples/clearwater/scripts/ellis/create.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -e
+
+yes | aptdcon --hide-terminal --install ellis
+yes | aptdcon --hide-terminal --install clearwater-management
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/ellis/delete.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/ellis/delete.sh b/examples/clearwater/scripts/ellis/delete.sh
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/homer/create.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/homer/create.sh b/examples/clearwater/scripts/homer/create.sh
new file mode 100644
index 0000000..4aa4893
--- /dev/null
+++ b/examples/clearwater/scripts/homer/create.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+set -e
+
+yes | aptdcon --hide-terminal --install homer
+yes | aptdcon --hide-terminal --install clearwater-management
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/homer/delete.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/homer/delete.sh b/examples/clearwater/scripts/homer/delete.sh
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/homestead/create.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/homestead/create.sh b/examples/clearwater/scripts/homestead/create.sh
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/homestead/delete.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/homestead/delete.sh b/examples/clearwater/scripts/homestead/delete.sh
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/host/configure.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/host/configure.sh b/examples/clearwater/scripts/host/configure.sh
new file mode 100644
index 0000000..ab0a3fd
--- /dev/null
+++ b/examples/clearwater/scripts/host/configure.sh
@@ -0,0 +1,136 @@
+#!/bin/bash
+set -e
+
+REPO_FILE=/etc/apt/sources.list.d/clearwater.list
+REPO_LINE="deb http://repo.cw-ngv.com/stable binary/"
+KEY_URL=http://repo.cw-ngv.com/repo_key
+
+# Clearwater repository
+if [ ! -f "$REPO_FILE" ]; then
+ echo "$REPO_LINE" > "$REPO_FILE"
+ curl -L "$KEY_URL" | apt-key add -
+ apt update
+fi
+
+if ! type aptdcon > /dev/null; then
+ apt install aptdaemon --yes
+fi
+
+# For cw-upload_shared_config
+yes | aptdcon --hide-terminal --install clearwater-config-manager
+
+
+CONFIG_FILE=/etc/clearwater/local_config
+
+LOCAL_IP=192.168.1.170
+PUBLIC_HOSTNAME=ubuntu
+SITE_NAME=aria
+ZONE=example.com
+SECRET=secret
+
+# Local configuration
+if [ ! -f "$CONFIG_FILE" ]; then
+ PUBLIC_IP=$LOCAL_IP
+ ETCD_CLUSTER=$LOCAL_IP
+
+ mkdir -p /etc/clearwater
+ echo "# Created by ARIA on $(date -u)" > "$CONFIG_FILE"
+
+ echo >> "$CONFIG_FILE"
+ echo "# Local IP configuration" >> "$CONFIG_FILE"
+ echo "local_ip=$LOCAL_IP" >> "$CONFIG_FILE"
+ echo "public_ip=$PUBLIC_IP" >> "$CONFIG_FILE"
+ echo "public_hostname=$PUBLIC_HOSTNAME" >> "$CONFIG_FILE"
+ echo "etcd_cluster=\"$ETCD_CLUSTER\"" >> "$CONFIG_FILE"
+
+ echo >> "$CONFIG_FILE"
+ echo "# Max 50MB of logs" >> "$CONFIG_FILE"
+ echo "max_log_directory_size=52428800" >> "$CONFIG_FILE"
+
+ if [ 1 -eq 2 ]; then
+ # Geographically redundant
+ echo >> "$CONFIG_FILE"
+ echo "# Geographically redundant" >> "$CONFIG_FILE"
+ echo "local_site_name=$SITE_NAME" >> "$CONFIG_FILE"
+
+ # On the first Vellum node in the second site, you should set remote_cassandra_seeds to the
+ # IP address of a Vellum node in the first site.
+ #echo "remote_cassandra_seeds=" >> "$CONFIG_FILE"
+ fi
+fi
+
+
+CONFIG_FILE=/etc/clearwater/shared_config
+
+# Shared configuration
+if [ ! -f "$CONFIG_FILE" ]; then
+ SMTP_HOSTNAME=127.0.0.1
+ SMTP_USERNAME=username
+ SMTP_PASSWORD=password
+
+ if [ 1 -eq 2 ]; then
+ # Geographically redundant
+ SPROUT_HOSTNAME=sprout.$SITE_NAME.$ZONE
+ SPROUT_REGISTRATION_STORE=vellum.$SITE_NAME.$ZONE
+ HS_HOSTNAME=hs.$SITE_NAME.$ZONE:8888
+ HS_PROVISIONING_HOSTNAME=hs.$SITE_NAME.$ZONE:8889
+ RALF_HOSTNAME=ralf.$SITE_NAME.$ZONE:10888
+ RALF_SESSION_STORE=vellum.$ZONE
+ XDMS_HOSTNAME=homer.$SITE_NAME.$ZONE:7888
+ CHRONOS_HOSTNAME=vellum.$SITE_NAME.$ZONE
+ CASSANDRA_HOSTNAME=vellum.$SITE_NAME.$ZONE
+ else
+ VELLUM_IP=$LOCAL_IP
+ HS_IP=$LOCAL_IP
+ HOMER_IP=$LOCAL_IP
+
+ SPROUT_HOSTNAME=$PUBLIC_HOSTNAME
+ SPROUT_REGISTRATION_STORE=$VELLUM_IP
+ HS_HOSTNAME=$HS_IP:8888
+ HS_PROVISIONING_HOSTNAME=$HS_IP:8889
+ RALF_HOSTNAME=
+ RALF_SESSION_STORE=
+ XDMS_HOSTNAME=$HOMER_IP:7888
+ CHRONOS_HOSTNAME=
+ CASSANDRA_HOSTNAME=
+ fi
+
+ mkdir -p /etc/clearwater
+ echo "# Created by ARIA on $(date -u)" > "$CONFIG_FILE"
+
+ echo >> "$CONFIG_FILE"
+ echo "# Deployment definitions" >> "$CONFIG_FILE"
+ echo "home_domain=$ZONE" >> "$CONFIG_FILE"
+ echo "sprout_hostname=$SPROUT_HOSTNAME" >> "$CONFIG_FILE"
+ echo "sprout_registration_store=$SPROUT_REGISTRATION_STORE" >> "$CONFIG_FILE"
+ echo "hs_hostname=$HS_HOSTNAME" >> "$CONFIG_FILE"
+ echo "hs_provisioning_hostname=$HS_PROVISIONING_HOSTNAME" >> "$CONFIG_FILE"
+ echo "ralf_hostname=$RALF_HOSTNAME" >> "$CONFIG_FILE"
+ echo "ralf_session_store=$RALF_SESSION_STORE" >> "$CONFIG_FILE"
+ echo "xdms_hostname=$XDMS_HOSTNAME" >> "$CONFIG_FILE"
+ echo "chronos_hostname=$CHRONOS_HOSTNAME" >> "$CONFIG_FILE"
+ echo "cassandra_hostname=$CASSANDRA_HOSTNAME" >> "$CONFIG_FILE"
+
+ echo >> "$CONFIG_FILE"
+ echo "# Email server configuration" >> "$CONFIG_FILE"
+ echo "smtp_smarthost=$SMTP_HOSTNAME" >> "$CONFIG_FILE"
+ echo "smtp_username=$SMTP_USERNAME" >> "$CONFIG_FILE"
+ echo "smtp_password=$SMTP_PASSWORD" >> "$CONFIG_FILE"
+ echo "email_recovery_sender=clearwater@$ZONE" >> "$CONFIG_FILE"
+
+ echo >> "$CONFIG_FILE"
+ echo "# I-CSCF/S-CSCF configuration" >> "$CONFIG_FILE"
+ echo "upstream_hostname=scscf.$HOSTNAME" >> "$CONFIG_FILE"
+
+ echo >> "$CONFIG_FILE"
+ echo "# Keys" >> "$CONFIG_FILE"
+ echo "signup_key=$SECRET" >> "$CONFIG_FILE"
+ echo "turn_workaround=$SECRET" >> "$CONFIG_FILE"
+ echo "ellis_api_key=$SECRET" >> "$CONFIG_FILE"
+ echo "ellis_cookie_key=$SECRET" >> "$CONFIG_FILE"
+
+ echo >> "$CONFIG_FILE"
+ echo "reduce_cassandra_mem_usage=Y" >> "$CONFIG_FILE"
+
+ #cw-upload_shared_config
+fi
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/ralf/create.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/ralf/create.sh b/examples/clearwater/scripts/ralf/create.sh
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/ralf/delete.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/ralf/delete.sh b/examples/clearwater/scripts/ralf/delete.sh
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/sprout/create.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/sprout/create.sh b/examples/clearwater/scripts/sprout/create.sh
new file mode 100644
index 0000000..32f2a1a
--- /dev/null
+++ b/examples/clearwater/scripts/sprout/create.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+set -e
+
+yes | aptdcon --hide-terminal --install sprout
+yes | aptdcon --hide-terminal --install clearwater-management
+
+# Memento
+#yes | aptdcon --hide-terminal --install memento-as memento-nginx
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/sprout/delete.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/sprout/delete.sh b/examples/clearwater/scripts/sprout/delete.sh
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/velum/create.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/velum/create.sh b/examples/clearwater/scripts/velum/create.sh
new file mode 100644
index 0000000..ae22417
--- /dev/null
+++ b/examples/clearwater/scripts/velum/create.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+set -e
+
+yes | aptdcon --hide-terminal --install vellum
+yes | aptdcon --hide-terminal --install clearwater-management
+
+# Memento
+#yes | aptdcon --hide-terminal --install memento-cassandra
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/scripts/velum/delete.sh
----------------------------------------------------------------------
diff --git a/examples/clearwater/scripts/velum/delete.sh b/examples/clearwater/scripts/velum/delete.sh
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/types/cassandra.yaml
----------------------------------------------------------------------
diff --git a/examples/clearwater/types/cassandra.yaml b/examples/clearwater/types/cassandra.yaml
new file mode 100644
index 0000000..e69de29
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/types/clearwater.yaml
----------------------------------------------------------------------
diff --git a/examples/clearwater/types/clearwater.yaml b/examples/clearwater/types/clearwater.yaml
new file mode 100644
index 0000000..209dcf0
--- /dev/null
+++ b/examples/clearwater/types/clearwater.yaml
@@ -0,0 +1,251 @@
+# http://clearwater.readthedocs.io/en/stable/Clearwater_Architecture.html
+
+imports:
+ - ims.yaml
+
+dsl_definitions:
+
+ clearwater_operation_dependencies: &CLEARWATER_OPERATION_DEPENDENCIES
+ - "ssh.address > { get_attribute: [ HOST, private_address ] }"
+ - "ssh.user > { get_input: host.user }"
+ - "ssh.password > { get_input: host.password }"
+ - ssh.use_sudo > true
+
+node_types:
+
+ clearwater.Host:
+ derived_from: tosca.nodes.Compute
+ interfaces:
+ Standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+ configure:
+ implementation:
+ primary: scripts/host/configure.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+
+ clearwater.Bono:
+ description: >-
+ Clearwater edge proxy.
+
+ The Bono nodes form a horizontally scalable SIP edge proxy providing both a SIP IMS Gm
+ compliant interface and a WebRTC interface to clients. Client connections are load balanced
+ across the nodes. The Bono node provides the anchor point for the client's connection to the
+ Clearwater system, including support for various NAT traversal mechanisms. A client is
+ therefore anchored to a particular Bono node for the duration of its registration, but can
+ move to another Bono node if the connection or client fails.
+
+ Clients can connect to Bono using SIP/UDP or SIP/TCP. Bono supports any WebRTC client that
+ performs call setup signaling using SIP over WebSocket.
+
+ Alternatively, Clearwater can be deployed with a third party P-CSCF or Session Border
+ Controller implementing P-CSCF. In this case Bono nodes are not required.
+ derived_from: tosca.nodes.SoftwareComponent
+ capabilities:
+ Gm: ims.capabilities.Gm
+ interfaces:
+ Standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+ create:
+ implementation:
+ primary: scripts/bono/create.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+ delete:
+ implementation:
+ primary: scripts/bono/delete.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+
+ clearwater.Sprout:
+ description: >-
+ Clearwater SIP router.
+
+ The Sprout nodes act as a horizontally scalable, combined SIP registrar and authoritative
+ routing proxy, and handle client authentication and the ISC interface to application servers.
+ The Sprout nodes also contain the in-built MMTEL application server. SIP transactions are load
+ balanced across the Sprout cluster, so there is no long-lived association between a client and
+ a particular Sprout node. Sprout does not store any long-lived data itself and instead uses
+ web service interfaces to Homestead and Homer to retrieve HSS configuration such as
+ authentication data/user profiles and MMTEL service settings APIs to Vellum for storing
+ subscriber registration data and for running timers.
+
+ Sprout is where the bulk of the I-CSCF and S-CSCF function resides, with the remainder
+ provided by Dime (and backed by the long-lived data stores on Vellum).
+ derived_from: tosca.nodes.SoftwareComponent
+ properties:
+ memento:
+ description: >-
+ Set to true if you want the Sprout node to include a Memento Application server.
+ type: boolean
+ default: false
+ interfaces:
+ Standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+ create:
+ implementation:
+ primary: scripts/sprout/create.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+ delete:
+ implementation:
+ primary: scripts/sprout/delete.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+
+ clearwater.Dime:
+ description: >-
+ Clearwater Diameter gateway.
+
+ Dime nodes run Clearwater's Homestead and Ralf components.
+ derived_from: tosca.nodes.SoftwareComponent
+ capabilities:
+ host:
+ type: tosca.capabilities.Container
+ valid_source_types: [ clearwater.DimeSoftwareComponent ]
+ interfaces:
+ Standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+ create:
+ implementation:
+ primary: scripts/dime/create.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+ delete:
+ implementation:
+ primary: scripts/dime/delete.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+
+ clearwater.DimeSoftwareComponent:
+ description: >-
+ Base type for Dime software components.
+ derived_from: tosca.nodes.SoftwareComponent
+ requirements:
+ - host: # override
+ capability: tosca.capabilities.Container
+ node: clearwater.Dime
+
+ clearwater.Homestead:
+ description: >-
+ Clearwater HSS cache.
+
+ Homestead provides a web services interface to Sprout for retrieving authentication
+ credentials and user profile information. It can either master the data (in which case it
+ exposes a web services provisioning interface) or can pull the data from an IMS compliant HSS
+ over the Cx interface. The Homestead nodes themselves are stateless - the mastered / cached
+ subscriber data is all stored on Vellum (via Cassandra’s Thrift interface).
+
+ In the IMS architecture, the HSS mirror function is considered to be part of the I-CSCF and
+ S-CSCF components, so in Clearwater I-CSCF and S-CSCF function is implemented with a
+ combination of Sprout and Dime clusters.
+ derived_from: clearwater.DimeSoftwareComponent
+ capabilities:
+ Cx: ims.capabilities.Cx
+ interfaces:
+ Standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+ create:
+ implementation:
+ primary: scripts/homestead/create.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+ delete:
+ implementation:
+ primary: scripts/homestead/delete.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+
+ clearwater.Ralf:
+ description: >-
+ Clearwater CTF.
+
+ Ralf provides an HTTP API that both Bono and Sprout can use to report billable events that
+ should be passed to the CDF (Charging Data Function) over the Rf billing interface. Ralf is
+ stateless, using Vellum to maintain the long lived session state and run the timers necessary
+ to enable it to conform to the Rf protocol.
+ derived_from: clearwater.DimeSoftwareComponent
+ capabilities:
+ Rf: ims.capabilities.Rf
+ interfaces:
+ Standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+ create:
+ implementation:
+ primary: scripts/ralf/create.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+ delete:
+ implementation:
+ primary: scripts/ralf/delete.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+
+ clearwater.Velum:
+ description: >-
+ Clearwater state store.
+
+ Vellum is used to maintain all long-lived state in the deployment. It does this by running a
+ number of cloud optimized, distributed storage clusters.
+
+ - Cassandra. Cassandra is used by Homestead to store authentication credentials and profile
+ information, and is used by Homer to store MMTEL service settings. Vellum exposes Cassandra's
+ Thrift API.
+
+ - etcd. etcd is used by Vellum itself to share clustering information between Vellum nodes and
+ by other nodes in the deployment for shared configuration.
+
+ - Chronos. Chronos is a distributed, redundant, reliable timer service developed by
+ Clearwater. It is used by Sprout and Ralf nodes to enable timers to be run (e.g. for SIP
+ Registration expiry) without pinning operations to a specific node (one node can set the timer
+ and another act on it when it pops). Chronos is accessed via an HTTP API.
+
+ - Memcached / Astaire. Vellum also runs a Memcached cluster fronted by Astaire. Astaire is a
+ service developed by Clearwater that enabled more rapid scale up and scale down of memcached
+ clusters. This cluster is used by Sprout and Ralf for storing registration and session state.
+ derived_from: tosca.nodes.SoftwareComponent
+ properties:
+ memento:
+ description: >-
+ Set to true if you want your Sprout node includes a Memento Application server.
+ type: boolean
+ default: false
+ interfaces:
+ Standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+ create:
+ implementation:
+ primary: scripts/velum/create.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+ delete:
+ implementation:
+ primary: scripts/velum/delete.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+
+ clearwater.Homer:
+ description: >-
+ Clearwater XDMS.
+
+ Homer is a standard XDMS used to store MMTEL service settings documents for each user of the
+ system. Documents are created, read, updated and deleted using a standard XCAP interface. As
+ with Homestead, the Homer nodes use Vellum as the data store for all long lived data.
+ derived_from: tosca.nodes.SoftwareComponent
+ interfaces:
+ Standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+ create:
+ implementation:
+ primary: scripts/homer/create.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+ delete:
+ implementation:
+ primary: scripts/homer/delete.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+
+ clearwater.Ellis:
+ description: >-
+ Ellis is a sample provisioning portal providing self sign-up, password management, line
+ management and control of MMTEL service settings. It is not intended to be a part of
+ production Clearwater deployments (it is not easy to horizontally scale because of the MySQL
+ underpinnings for one thing) but to make the system easy to use out of the box.
+ derived_from: tosca.nodes.SoftwareComponent
+ interfaces:
+ Standard:
+ type: tosca.interfaces.node.lifecycle.Standard
+ create:
+ implementation:
+ primary: scripts/ellis/create.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
+ delete:
+ implementation:
+ primary: scripts/ellis/delete.sh
+ dependencies: *CLEARWATER_OPERATION_DEPENDENCIES
http://git-wip-us.apache.org/repos/asf/incubator-ariatosca/blob/28d092af/examples/clearwater/types/ims.yaml
----------------------------------------------------------------------
diff --git a/examples/clearwater/types/ims.yaml b/examples/clearwater/types/ims.yaml
new file mode 100644
index 0000000..6b9d8e3
--- /dev/null
+++ b/examples/clearwater/types/ims.yaml
@@ -0,0 +1,394 @@
+# https://en.wikipedia.org/wiki/IP_Multimedia_Subsystem#Interfaces_description
+
+capability_types:
+
+ # In IMS these are called "interfaces".
+
+ ims.capabilities.Diameter:
+ derived_from: tosca.capabilities.Root
+
+ ims.capabilities.TCP:
+ derived_from: tosca.capabilities.Root
+
+ ims.capabilities.SIP:
+ derived_from: tosca.capabilities.Root
+
+ ims.capabilities.RTP:
+ derived_from: tosca.capabilities.Root
+
+ ims.capabilities.H248:
+ derived_from: tosca.capabilities.Root
+
+ ims.capabilities.HTTP:
+ derived_from: tosca.capabilities.Root
+
+ ims.capabilities.MAP:
+ derived_from: tosca.capabilities.Root
+
+ ims.capabilities.Cr:
+ description: >-
+ Used by MRFC to fetch documents (e.g. scripts, announcement files, and other resources) from
+ an AS. Also used for media control related commands.
+ derived_from: ims.capabilities.TCP
+
+ ims.capabilities.Cx:
+ description: >-
+ Used to send subscriber data to the S-CSCF; including filter criteria and their priority. Also
+ used to furnish CDF and/or OCF addresses.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.Dh:
+ description: >-
+ Used by AS to find the HSS holding the user profile information in a multi-HSS environment.
+ DH_SLF_QUERY indicates an IMPU and DX_SLF_RESP return the HSS name.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.Dx:
+ description: >-
+ Used by I-CSCF or S-CSCF to find a correct HSS in a multi-HSS environment. DX_SLF_QUERY
+ indicates an IMPU and DX_SLF_RESP return the HSS name.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.Gm:
+ description: >-
+ Used to exchange messages between SIP user equipment (UE) or Voip gateway and P-CSCF.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Go:
+ description: >-
+ Allows operators to control QoS in a user plane and exchange charging correlation
+ information between IMS and GPRS network.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.Gq:
+ description: >-
+ Used to exchange policy decisions-related information between P-CSCF and PDF.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.Gx:
+ description: >-
+ Used to exchange policy decisions-related information between PCEF and PCRF.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.Gy:
+ description: >-
+ Used for online flow-based bearer charging. Functionally equivalent to Ro interface.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.ISC:
+ description: >-
+ Reference point between S-CSCF and AS. Main functions are to:
+ * Notify the AS of the registered IMPU, registration state and UE capabilities
+ * Supply the AS with information to allow it to execute multiple services
+ * Convey charging function addresses
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Ici:
+ description: >-
+ Used to exchange messages between an IBCF and another IBCF belonging to a different IMS
+ network.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Izi:
+ description: >-
+ Used to forward media streams from a TrGW to another TrGW belonging to a different IMS
+ network.
+ derived_from: ims.capabilities.RTP
+
+ ims.capabilities.Ma:
+ description: >-
+ Main functions are to:
+ * Forward SIP requests which are destined to a public service identity hosted by the AS
+ * Originate a session on behalf of a user or public service identity, if the AS has no
+ knowledge of a S-CSCF assigned to that user or public service identity
+ * Convey charging function addresses
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Mg:
+ description: >-
+ ISUP signalling to SIP signalling and forwards SIP signalling to I-CSCF.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Mi:
+ description: >-
+ Used to exchange messages between S-CSCF and BGCF.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Mj:
+ description: >-
+ Used for the interworking with the PSTN/CS domain, when the BGCF has determined that a
+ breakout should occur in the same IMS network to send SIP message from BGCF to MGCF.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Mk:
+ description: >-
+ Used for the interworking with the PSTN/CS domain, when the BGCF has determined that a
+ breakout should occur in another IMS network to send SIP message from BGCF to the BGCF in the
+ other network.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Mm:
+ description: >-
+ Used for exchanging messages between IMS and external IP networks.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Mn:
+ description: >-
+ Allows control of user-plane resources.
+ derived_from: ims.capabilities.H248
+
+ ims.capabilities.Mp:
+ description: >-
+ Allows an MRFC to control media stream resources provided by an MRFP.
+ derived_from: ims.capabilities.H248
+
+ ims.capabilities.Mr:
+ description: >-
+ Used to exchange information between S-CSCF and MRFC.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Mr2:
+ description: >-
+ Used to exchange session controls between AS and MRFC.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Mw:
+ description: >-
+ Used to exchange messages between CSCFs. AGCF appears as a P-CSCF to the other CSCFs.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Mx:
+ description: >-
+ Used for the interworking with another IMS network, when the BGCF has determined that a
+ breakout should occur in the other IMS network to send SIP message from BGCF to the IBCF in
+ the other network.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.P1:
+ description: >-
+ Used for call control services by AGCF to control H.248 A-MGW and residential gateways.
+ derived_from: ims.capabilities.H248
+
+ ims.capabilities.P2:
+ description: >-
+ Reference point between AGCF and CSCF.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Rc:
+ description: >-
+ Used by the AS to request that media resources be assigned to a call when using MRB in-line
+ mode or in query mode.
+ derived_from: ims.capabilities.SIP
+
+ ims.capabilities.Rf:
+ description: >-
+ Used to exchange offline charging information with CDF.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.Ro:
+ description: >-
+ Used to exchange online charging information with OCF.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.Rx:
+ description: >-
+ Used to exchange policy and charging related information between P-CSCF and PCRF. Replacement
+ for the Gq reference point.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.Sh:
+ description: >-
+ Used to exchange User Profile information (e.g., user-related data, group lists,
+ user-service-related information or user location information or charging function addresses
+ (used when the AS has not received the third-party REGISTER for a user)) between an AS (SIP
+ AS or OSA SCS) and HSS. Also allow AS to activate/deactivate filter criteria stored in the HSS
+ on a per-subscriber basis.
+ derived_from: ims.capabilities.Diameter
+
+ ims.capabilities.Si:
+ description: >-
+ Transports CAMEL subscription information, including triggers for use by CAMEL-based
+ application services information.
+ derived_from: ims.capabilities.MAP
+
+ ims.capabilities.Sr:
+ description: >-
+ Used by MRFC to fetch documents (scripts and other resources) from an AS.
+ derived_from: ims.capabilities.HTTP
+
+ ims.capabilities.Ut:
+ description: >-
+ Facilitates the management of subscriber information related to services and settings.
+ derived_from: ims.capabilities.HTTP
+
+ ims.capabilities.Z:
+ description: >-
+ Conversion of POTS services to SIP messages.
+ derived_from: tosca.capabilities.Root
+
+
+# https://en.wikipedia.org/wiki/IP_Multimedia_Subsystem#Core_network
+
+node_types:
+
+ # In IMS these are called "functions".
+
+ ims.nodes.HSS:
+ description: >-
+ The home subscriber server (HSS), or user profile server function (UPSF), is a master user
+ database that supports the IMS network entities that actually handle calls. It contains the
+ subscription-related information (subscriber profiles), performs authentication and
+ authorization of the user, and can provide information about the subscriber's location and IP
+ information. It is similar to the GSM home location register (HLR) and Authentication centre
+ (AuC).
+
+ A subscriber location function (SLF) is needed to map user addresses when multiple HSSs are
+ used.
+ derived_from: tosca.nodes.Root
+
+ ims.nodes.CSCF:
+ description: >-
+ Several roles of SIP servers or proxies, collectively called Call Session Control Function
+ (CSCF), are used to process SIP signalling packets in the IMS.
+ derived_from: tosca.nodes.Root
+
+ ims.nodes.P-CSCF:
+ description: >-
+ A Proxy-CSCF (P-CSCF) is a SIP proxy that is the first point of contact for the IMS terminal.
+ It can be located either in the visited network (in full IMS networks) or in the home network
+ (when the visited network is not IMS compliant yet). Some networks may use a Session Border
+ Controller (SBC) for this function. The P-CSCF is at its core a specialized SBC for the
+ User–network interface which not only protects the network, but also the IMS terminal. The use
+ of an additional SBC between the IMS terminal and the P-CSCF is unnecessary and infeasible due
+ to the signaling being encrypted on this leg. The terminal discovers its P-CSCF with either
+ DHCP, or it may be configured (e.g. during initial provisioning or via a 3GPP IMS Management
+ Object (MO)) or in the ISIM or assigned in the PDP Context (in General Packet Radio Service
+ (GPRS)).
+ derived_from: ims.nodes.CSCF
+
+ ims.nodes.I-CSCF:
+ description: >-
+ An Interrogating-CSCF (I-CSCF) is another SIP function located at the edge of an
+ administrative domain. Its IP address is published in the Domain Name System (DNS) of the
+ domain (using NAPTR and SRV type of DNS records), so that remote servers can find it, and use
+ it as a forwarding point (e.g., registering) for SIP packets to this domain.
+ derived_from: ims.nodes.CSCF
+
+ ims.nodes.S-CSCF:
+ description: >-
+ A Serving-CSCF (S-CSCF) is the central node of the signalling plane. It is a SIP server, but
+ performs session control too. It is always located in the home network. It uses Diameter Cx
+ and Dx interfaces to the HSS to download user profiles and upload user-to-S-CSCF associations
+ (the user profile is only cached locally for processing reasons only and is not changed). All
+ necessary subscriber profile information is loaded from the HSS.
+ derived_from: ims.nodes.CSCF
+
+ ims.nodes.AS:
+ description: >-
+ SIP Application servers (AS) host and execute services, and interface with the S-CSCF using
+ SIP. An example of an application server that is being developed in 3GPP is the Voice call
+ continuity Function (VCC Server). Depending on the actual service, the AS can operate in SIP
+ proxy mode, SIP UA (user agent) mode or SIP B2BUA mode. An AS can be located in the home
+ network or in an external third-party network. If located in the home network, it can query
+ the HSS with the Diameter Sh or Si interfaces (for a SIP-AS).
+ derived_from: tosca.nodes.Root
+
+ ims.nodes.SIP-AS:
+ description: >-
+ Host and execute IMS specific services.
+ derived_from: ims.nodes.AS
+
+ ims.nodes.IM-SSF:
+ description: >-
+ IP Multimedia Service Switching Function. Interfaces SIP to CAP to communicate with CAMEL
+ Application Servers.
+ derived_from: ims.nodes.AS
+
+ ims.nodes.OSA-SCS:
+ description: >-
+ OSA service capability server. Interfaces SIP to the OSA framework.
+ derived_from: ims.nodes.AS
+
+ ims.nodes.AS-ILCM:
+ description: >-
+ The AS-ILCM (Application Server - Incoming Leg Control Model) stores transaction state, and
+ may optionally store session state depending on the specific service being executed. The
+ AS-ILCM interfaces to the S-CSCF (ILCM) for an incoming leg. Application Logic provides the
+ service(s) and interacts between the AS-ILCM and AS-OLCM.
+ derived_from: ims.nodes.AS
+
+ ims.nodes.AS-OLCM:
+ description: >-
+ The AS-OLCM (Application Server - Outgoing Leg Control Model) stores transaction state, and
+ may optionally store session state depending on the specific service being executed. The
+ AS-OLCM interfaces to the S-CSCF (OLCM) for an outgoing leg. Application Logic provides the
+ service(s) and interacts between the AS-ILCM and AS-OLCM.
+ derived_from: ims.nodes.AS
+
+ ims.nodes.MRF:
+ description: >-
+ The Media Resource Function (MRF) provides media related functions such as media manipulation
+ (e.g. voice stream mixing) and playing of tones and announcements.
+
+ Each MRF is further divided into a media resource function controller (MRFC) and a media
+ resource function processor (MRFP).
+ derived_from: tosca.nodes.Root
+
+ ims.nodes.MRFC:
+ description: >-
+ The MRFC is a signalling plane node that interprets information coming from an AS and S-CSCF
+ to control the MRFP.
+ derived_from: tosca.nodes.Root
+
+ ims.nodes.MRFP:
+ description: >-
+ The MRFP is a media plane node used to mix, source or process media streams. It can also
+ manage access right to shared resources.
+ derived_from: tosca.nodes.Root
+
+ ims.nodes.MRB:
+ description: >-
+ The Media Resource Broker (MRB) is a functional entity that is responsible for both collection
+ of appropriate published MRF information and supplying of appropriate MRF information to
+ consuming entities such as the AS. MRB can be used in two modes:
+ * Query mode: AS queries the MRB for media and sets up the call using the response of MRB
+ * In-Line Mode: AS sends a SIP INVITE to the MRB. The MRB sets up the call
+ derived_from: tosca.nodes.Root
+
+ ims.nodes.BGCF:
+ description: >-
+ A Breakout Gateway Control Function (BGCF) is a SIP proxy which processes requests for routing
+ from an S-CSCF when the S-CSCF has determined that the session cannot be routed using DNS or
+ ENUM/DNS. It includes routing functionality based on telephone numbers.
+ derived_from: tosca.nodes.Root
+
+ ims.nodes.PTSNGateway:
+ description: >-
+ A PSTN/CS gateway interfaces with PSTN circuit switched (CS) networks. For signalling, CS
+ networks use ISDN User Part (ISUP) (or BICC) over Message Transfer Part (MTP), while IMS uses
+ SIP over IP. For media, CS networks use Pulse-code modulation (PCM), while IMS uses Real-time
+ Transport Protocol (RTP).
+ derived_from: tosca.nodes.Root
+
+ ims.nodes.SGW:
+ description: >-
+ A signalling gateway (SGW) interfaces with the signalling plane of the CS. It transforms lower
+ layer protocols as Stream Control Transmission Protocol (SCTP, an IP protocol) into Message
+ Transfer Part (MTP, an Signalling System 7 (SS7) protocol), to pass ISDN User Part (ISUP) from
+ the MGCF to the CS network.
+ derived_from: ims.nodes.PTSNGateway
+
+ ims.nodes.MGCF:
+ description: >-
+ A media gateway controller function (MGCF) is a SIP endpoint that does call control protocol
+ conversion between SIP and ISUP/BICC and interfaces with the SGW over SCTP. It also controls
+ the resources in a Media Gateway (MGW) across an H.248 interface.
+ derived_from: ims.nodes.PTSNGateway
+
+ ims.nodes.MGW:
+ description: >-
+ A media gateway (MGW) interfaces with the media plane of the CS network, by converting between
+ RTP and PCM. It can also transcode when the codecs don't match (e.g., IMS might use AMR, PSTN
+ might use G.711).
+ derived_from: ims.nodes.PTSNGateway
+
\ No newline at end of file