1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. http://creativecommons.org/licenses/by/4.0
3 .. Copyright (C) 2019 IBM.
5 .. _hello_world_resource_resolution_cba:
7 How to create a “Hello World” Package with CDS Designer UI? The Resource Resolution Type
8 ========================================================================================
14 **How to Get Started with CDS Designer UI**
16 If you’re new to CDS Designer UI and need to get set up, the following guides may be helpful:
18 - :ref:`running_cds_ui_locally`
19 - :ref:`designer_guide`
24 In order to see the latest version described below in the tutorial, we will need to use the latest cds-ui-server docker image:
25 nexus3.onap.org:10001/onap/ccsdk-cds-ui-server:1.1.0-STAGING-latest
28 Create New CBA Package
29 ~~~~~~~~~~~~~~~~~~~~~~
31 In the Package List, click on the **Create Package** button.
35 Define Package MetaData
36 ~~~~~~~~~~~~~~~~~~~~~~~
40 1. Package name (Required), type **"hello_world"**
41 2. Package version (Required), type **"1.0.0"**
42 3. Package description (Required), type **"Hello World, the New CBA Package created with CDS Designer UI"**
43 4. Package Tags (Required), type **"tag1"** then use the **Enter** key on the keyboard
47 Once you enter all fields you will be able to save your package. Click on the **Save** button and continue to define your package.
51 Define Template And Mapping
52 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
54 In the Template & Mapping Tab:
56 1. Enter template name **"hello_world_template"**, then go to **Template section**
57 2. Choose the template type **"Velocity"**
58 3. Type the Template parameter **"Hello, ${image_name}!"** in the code editor
62 Now, go to the **Manage Mapping section.**
66 Click on the **Use Current Template Instance** button to resolve the value within the template and to auto-map it.
70 Inside the **Mapping table**, change **Dictionary Source** from **default** to **input**
74 Click on the **Finish** button to save the template and close it.
78 After the new template is added to the **Template and Mapping list**, click on the **Save** button to save the package updates.
85 From the Package information box on top, click on the **Designer Mode** button.
89 Click on the **Skip to Designer Canvas** button to go directly to Designer Mode.
93 Now the designer has zero action added. Let's start adding the first Action.
97 Go to the left side of the designer screen and in the **ACTIONS tab**, click on the **+ New Action** button.
101 Now, the first Action **Action1** is added to the **Actions list** and in the **Workflow canvas**.
105 Add Resource Resolution Function To The Action
106 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
108 On the left side of the designer screen, Click on the **FUNCTIONS tab** to view all the **Functions List.**
112 **Drag** the function type **"component-resource-resolution"**
116 **Drop** the function to the **"Action1"** Action container.
120 Define Action Attributes
121 ~~~~~~~~~~~~~~~~~~~~~~~~
123 Click on **Action1** from the ACTIONS tab to open **the ACTION ATTRIBUTES** section on designer screens’ right side.
127 Let's customize the first action's attribute by click on the **+ Create Custom** button to open **Add Custom Attributes** modal window.
131 In the **Add Custom Attributes** **Window**, and the **INPUTS tab** starts to add the first input attribute for **Action1**.
133 **INPUTS Tab:** Enter the required properties for the inputs’ attribute:
135 1. Name: **"template-prefix"**
137 3. Required: **"True"**
141 After you add the **template-prefix** input's attribute, click on In the OUTPUT Tab to create the output attribute too.
145 **OUTPUTS Tab:** Enter the required properties for the output’ attribute:
147 1. Name: **"hello-world-output"**
148 2. Required: **"True"**
150 4. Type name: **"json"**
151 5. Value (get_attribute): From the **Functions list**, select **"component-resource-resolution"** that will show all attributes included in this function
152 6. Select parameter name **"assignment-params"**
153 7. Click on the **Submit Attributes** button to add input and output attributes to **Actions' Attributes list**
154 8. Click on the **Close** button to close the modal window and go backto the designer screen.
158 Now, you can see all the added attributes listed in the **ACTION ATTRIBUTES** area.
162 Define Function Attributes
163 ~~~~~~~~~~~~~~~~~~~~~~~~~~
165 From **ACTIONS** List, Click on the function name **"component-resource-resolution"**.
169 When you click on the **component-resource-resolution** function, the **FUNCTION ATTRIBUTES** section will be open on the right side of the designers' screen.
173 Now, you need to add the values of **Inputs** or **Outputs** required attributes in **the Interfaces** **section**.
175 - **artifact-prefix-names**:
177 1. Click on the **Select Templates** button
178 2. In the modal window that lists all templates you created, click on the **"hello_world_template"** name
179 3. Click on the **Add Template** button to insert it in **the Artifacts** section and to close the modal window.
185 Now, the **hello_world_template** template is listed inside the **Artifacts section.**
189 From the page header and inside **the Save** **menu**, click on the **Save** button to save all the changes.
193 Enrich And Deploy The CBA Package
194 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
196 From the page header and inside the **Save menu**, click on the **Enrich & Deploy** button.
200 Once the process is done, a confirmation message will appear.
204 Test The CBA package With CDS REST API
205 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
207 To test the CDS hello_world package we created, we can use the REST API shown below to run the resource resolution workflow in the hello_wold
208 package, which will resolve the value of the "image_name" resource from the REST Call input, and will send it back to the user in the form of
209 "Hello, $image_name!".
211 **CURL Request to RUN CBA Package**
215 curl --location --request POST
216 'http://cds-blueprint-processor:8080/api/v1/execution-service/process'\\
217 --header 'Content-Type: application/json;charset=UTF-8'\\
218 --header 'Accept: application/json;charset=UTF-8,application/json'\\
219 --header 'Authorization: BasicY2NzZGthcHBzOmNjc2RrYXBwcw=='\\
221 "actionIdentifiers": {
223 "blueprintName": "hello_world",
224 "blueprintVersion": "1.0.0",
225 "actionName": "Action1"
229 "Action1-properties": {
230 "image_name": "Sarah Abouzainah"
235 "subRequestId": "143748f9-3cd5-4910-81c9-a4601ff2ea58",
236 "requestId": "e5eb1f1e-3386-435d-b290-d49d8af8db4c",
237 "originatorId": "SDNC_DG"
242 **CDS Response showing result of running package**
247 "correlationUUID": null,
249 "timestamp": "2020-12-13T11:43:10.993Z",
250 "originatorId": "SDNC_DG",
251 "requestId": "e5eb1f1e-3386-435d-b290-d49d8af8db4c",
252 "subRequestId": "143748f9-3cd5-4910-81c9-a4601ff2ea58",
255 "actionIdentifiers": {
256 "blueprintName": "hello_world",
257 "blueprintVersion": "1.0.0",
258 "actionName": "Action1",
263 "eventType": "EVENT_COMPONENT_EXECUTED",
264 "timestamp": "2020-12-13T11:43:11.028Z",
265 "errorMessage": null,
269 "Action1-response": {
270 "hello-world-output": {
271 "hello_world_template": "Hello, Sarah Abouzainah!"
277 Screenshot from POSTMAN showing how to run the hello_world package, and the CDS Response:
284 :ref:`Script Executor Type Hello World CBA Package <hello_world_script_executor_cba>`
287 .. |image1| image:: https://wiki.onap.org/download/attachments/93003036/1.png?version=4&modificationDate=1607534831000&api=v2
289 .. |image2| image:: https://wiki.onap.org/download/attachments/93003036/2.png?version=5&modificationDate=1609170583000&api=v2
291 .. |image3| image:: https://wiki.onap.org/download/attachments/93003036/3.png?version=4&modificationDate=1609170695000&api=v2
293 .. |image4| image:: https://wiki.onap.org/download/attachments/93003036/4.png?version=3&modificationDate=1609170995000&api=v2
295 .. |image5| image:: https://wiki.onap.org/download/attachments/93003036/5.png?version=3&modificationDate=1607538358000&api=v2
297 .. |image6| image:: https://wiki.onap.org/download/attachments/93003036/6.png?version=2&modificationDate=1607538455000&api=v2
299 .. |image7| image:: https://wiki.onap.org/download/attachments/93003036/7.png?version=2&modificationDate=1607538653000&api=v2
301 .. |image8| image:: https://wiki.onap.org/download/attachments/93003036/8.png?version=3&modificationDate=1609171068000&api=v2
303 .. |image9| image:: https://wiki.onap.org/download/attachments/93003036/9.png?version=3&modificationDate=1609171129000&api=v2
305 .. |image10| image:: https://wiki.onap.org/download/attachments/93003036/10.png?version=3&modificationDate=1609171172000&api=v2
307 .. |image11| image:: https://wiki.onap.org/download/attachments/93003036/11.png?version=2&modificationDate=1607540629000&api=v2
309 .. |image12| image:: https://wiki.onap.org/download/attachments/93003036/12.png?version=2&modificationDate=1607540920000&api=v2
311 .. |image13| image:: https://wiki.onap.org/download/attachments/93003036/13.png?version=3&modificationDate=1607542672000&api=v2
313 .. |image14| image:: https://wiki.onap.org/download/attachments/93003036/14.png?version=2&modificationDate=1607541858000&api=v2
315 .. |image15| image:: https://wiki.onap.org/download/attachments/93003036/15.png?version=2&modificationDate=1607542785000&api=v2
317 .. |image16| image:: https://wiki.onap.org/download/attachments/93003036/16.png?version=3&modificationDate=1607543088000&api=v2
319 .. |image17| image:: https://wiki.onap.org/download/attachments/93003036/17.png?version=2&modificationDate=1607543299000&api=v2
321 .. |image18| image:: https://wiki.onap.org/download/attachments/93003036/18.png?version=2&modificationDate=1607543587000&api=v2
323 .. |image19| image:: https://wiki.onap.org/download/attachments/93003036/19.png?version=3&modificationDate=1607543849000&api=v2
325 .. |image20| image:: https://wiki.onap.org/download/attachments/93003036/20.png?version=2&modificationDate=1607544576000&api=v2
327 .. |image21| image:: https://wiki.onap.org/download/attachments/93003036/21.png?version=2&modificationDate=1607544745000&api=v2
329 .. |image22| image:: https://wiki.onap.org/download/attachments/93003036/22.png?version=2&modificationDate=1607545959000&api=v2
331 .. |image23| image:: https://wiki.onap.org/download/attachments/93003036/23.png?version=2&modificationDate=1607546223000&api=v2
333 .. |image24| image:: https://wiki.onap.org/download/attachments/93003036/24.png?version=2&modificationDate=1607548321000&api=v2
335 .. |image25| image:: https://wiki.onap.org/download/attachments/93003036/25.png?version=3&modificationDate=1612796664000&api=v2
337 .. |image26| image:: https://wiki.onap.org/download/attachments/93003036/26.png?version=2&modificationDate=1607551324000&api=v2
339 .. |image27| image:: https://wiki.onap.org/download/attachments/93003036/27.png?version=3&modificationDate=1607551567000&api=v2
341 .. |image28| image:: https://wiki.onap.org/download/attachments/93003036/28.png?version=2&modificationDate=1607551732000&api=v2
343 .. |image29| image:: https://wiki.onap.org/download/attachments/93003036/29.png?version=3&modificationDate=1607553177000&api=v2
345 .. |image30| image:: https://wiki.onap.org/download/attachments/93003036/30.png?version=2&modificationDate=1607552712000&api=v2
347 .. |image31| image:: https://wiki.onap.org/download/attachments/93003036/32.png?version=4&modificationDate=1612796710000&api=v2
349 .. |image32| image:: https://wiki.onap.org/download/attachments/93003036/33.png?version=1&modificationDate=1607554073000&api=v2
351 .. |image33| image:: https://wiki.onap.org/download/attachments/93003036/34.png?version=1&modificationDate=1607608398000&api=v2