blob: 598cd451ed44078fbe1eeb789035535ea73a85c0 [file] [log] [blame]
.. This work is a derivative of https://wiki.onap.org/display/DW/Modeling+Concepts#Concepts-2026349199
.. This work is licensed under a Creative Commons Attribution 4.0
.. International License. http://creativecommons.org/licenses/by/4.0
.. Copyright (C) 2020 Deutsche Telekom AG.
.. _external_system:
External Systems support
------------------------
Interaction with **external systems** is made **dynamic** and **plug-able**
removing development cycle to support new endpoint.
In order to share the external system information, TOSCA provides a way to create macros using **dsl_definitions**:
Link to TOSCA spec:
`info 1 <http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.2/csd01/TOSCA-Simple-Profile-YAML-v1.2-csd01.html#_Toc494454160>`_,
`info 2 <http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.2/csd01/TOSCA-Simple-Profile-YAML-v1.2-csd01.html#_Toc494454173>`_.
Use cases:
* Resource resolution using **REST** (see tab Node Type) or **SQL** (see tab Node Type) external systems
* **gRPC** is supported for remote execution
* Any REST endpoint can be dynamically injected as part of the scripting framework.
Here are some examples on how to populate the system information within the package:
.. list-table::
:widths: 100
:header-rows: 1
* - token-auth
* - .. code-block:: json
{
. . .
"dsl_definitions": {
"ipam-1": {
"type": "token-auth",
"url": "http://netbox-nginx.netprog:8080",
"token": "Token 0123456789abcdef0123456789abcdef01234567"
}
}
.. list-table::
:widths: 100
:header-rows: 1
* - basic-auth
* - .. code-block:: json
{
. . .
"dsl_definitions": {
"ipam-1": {
"type": "basic-auth",
"url": "http://localhost:8080",
"username": "bob",
"password": "marley"
}
}
. . .
}
.. list-table::
:widths: 100
:header-rows: 1
* - ssl-basic-auth
* - .. code-block:: json
{
. . .
"dsl_definitions": {
"ipam-1": {
"type" : "ssl-basic-auth",
"url" : "http://localhost:32778",
"keyStoreInstance": "JKS or PKCS12",
"sslTrust": "trusture",
"sslTrustPassword": "trustore password",
"sslKey": "keystore",
"sslKeyPassword: "keystore password"
}
}
. . .
}
.. list-table::
:widths: 100
:header-rows: 1
* - grpc-executor
* - .. code-block:: json
{
. . .
"dsl_definitions": {
"remote-executor": {
"type": "token-auth",
"host": "cds-command-executor.netprog",
"port": "50051",
"token": "Basic Y2NzZGthcHBzOmNjc2RrYXBwcw=="
}
}
. . .
}
.. list-table::
:header-rows: 1
* - maria-db
* - .. code-block:: json
{
. . .
"dsl_definitions": {
"netprog-db": {
"type": "maria-db",
"url": "jdbc:mysql://10.195.196.123:32050/netprog",
"username": "netprog",
"password": "netprog"
}
}
. . .
}