| .. This work is licensed under a Creative Commons Attribution 4.0 International License. |
| .. http://creativecommons.org/licenses/by/4.0 |
| .. Copyright (C) 2019 IBM. |
| |
| Resource Source |
| --------------- |
| |
| Input: |
| ====== |
| Expects the value to be provided as input to the request. |
| |
| |
| .. code-block:: json |
| :linenos: |
| |
| { |
| "source-input" : |
| { |
| "description": "This is Input Resource Source Node Type", |
| "version": "1.0.0", |
| "properties": {}, |
| "derived_from": "tosca.nodes.ResourceSource" |
| } |
| } |
| |
| |
| |
| Default: |
| ======== |
| Expects the value to be defaulted in the model itself. |
| |
| |
| .. code-block:: json |
| :linenos: |
| |
| { |
| "source-default" : |
| { |
| "description": "This is Default Resource Source Node Type", |
| "version": "1.0.0", |
| "properties": {}, |
| "derived_from": "tosca.nodes.ResourceSource" |
| } |
| } |
| |
| |
| sql: |
| ==== |
| |
| Expects the SQL query to be modeled; that SQL query can be parameterized, and the parameters be other resources resolved through other means. If that's the case, this data dictionary definition will have to define key-dependencies along with input-key-mapping. |
| |
| CDS is currently deployed along the side of SDNC, hence the primary database connection provided by the framework is to SDNC database. |
| |
| |image0| |
| |
| .. |image0| image:: media/sqltable.JPG |
| :width: 7.88889in |
| :height: 4.43750in |
| |
| .. toctree:: |
| :maxdepth: 1 |
| |
| sourceprimarydbcode |
| |
| Connection to a specific database can be expressed through the endpoint-selector property, which refers to a macro defining the information about the database the connect to. Understand TOSCA Macro in the context of CDS. |
| |
| .. toctree:: |
| :maxdepth: 1 |
| |
| dbsystemcode |
| |
| |
| REST: |
| ===== |
| |
| Expects the URI along with the VERB and the payload, if needed. |
| |
| CDS is currently deployed along the side of SDNC, hence the default rest connection provided by the framework is to SDNC MDSAL. |
| |
| |image1| |
| |
| .. |image1| image:: media/resttable.JPG |
| :width: 7.88889in |
| :height: 4.43750in |
| |
| .. toctree:: |
| :maxdepth: 1 |
| |
| restsourcecode |
| |
| Connection to a specific REST system can be expressed through the endpoint-selector property, which refers to a macro defining the information about the REST system the connect to. Understand TOSCA Macro in the context of CDS. |
| |
| Few ways are available to authenticate to the REST system: |
| |
| * token-auth |
| * basic-auth |
| * ssl-basic-auth |
| |
| For source code of Authentication click below link: |
| |
| .. toctree:: |
| :maxdepth: 1 |
| |
| restauth |
| |
| Capability: |
| =========== |
| |
| Expects a script to be provided. |
| |
| |image2| |
| |
| .. |image2| image:: media/capabilitytable.JPG |
| :width: 7.88889in |
| :height: 4.43750in |
| |
| |
| .. toctree:: |
| :maxdepth: 1 |
| |
| sourcecapabilitycode |
| |
| Complex Type: |
| ============= |
| |
| Value will be resolved through REST., and output will be a complex type. |
| |
| Modeling reference: Modeling Concepts#rest |
| |
| In this example, we're making a POST request to an IPAM system with no payload. |
| |
| Some ingredients are required to perform the query, in this case, $prefixId. Hence It is provided as an input-key-mapping and defined as a key-dependencies. Please refer to the modeling guideline for more in depth understanding. |
| |
| As part of this request, the expected response will be as below. |
| |
| .. toctree:: |
| :maxdepth: 1 |
| |
| complexResponse |
| |
| What is of interest is the address and id fields. For the process to return these two values, we need to create a custom data-type, as bellow |
| |
| .. toctree:: |
| :maxdepth: 1 |
| |
| dt-netbox-ip |
| |
| The type of the data dictionary will be dt-netbox-ip. |
| |
| To tell the resolution framework what is of interest in the response, the output-key-mapping section is used. The process will map the output-key-mapping to the defined data-type. |
| |
| .. toctree:: |
| :maxdepth: 1 |
| |
| create_netbox_ip_address |