summaryrefslogtreecommitdiffstats
path: root/docs/userguide
diff options
context:
space:
mode:
Diffstat (limited to 'docs/userguide')
-rw-r--r--docs/userguide/designtime.rst50
-rw-r--r--docs/userguide/developer-guide.rst13
-rw-r--r--docs/userguide/installation.rst92
-rw-r--r--docs/userguide/media/build_logs.pngbin0 -> 126733 bytes
-rw-r--r--docs/userguide/media/create_run_config_java.pngbin0 -> 83005 bytes
-rw-r--r--docs/userguide/media/create_run_config_kt.pngbin0 -> 99443 bytes
-rw-r--r--docs/userguide/media/expand_vm_options.PNGbin0 -> 17547 bytes
-rw-r--r--docs/userguide/media/import_project.pngbin0 -> 33478 bytes
-rw-r--r--docs/userguide/media/reimport_maven.pngbin0 -> 138930 bytes
-rw-r--r--docs/userguide/media/run_config_java.pngbin0 -> 73102 bytes
-rw-r--r--docs/userguide/media/run_config_kt.pngbin0 -> 56159 bytes
-rw-r--r--docs/userguide/media/run_debug.pngbin0 -> 4509 bytes
-rw-r--r--docs/userguide/media/vsc_logs.pngbin0 -> 161184 bytes
-rw-r--r--docs/userguide/resourceassignment.rst73
-rw-r--r--docs/userguide/running-bp-processor-in-ide.rst445
15 files changed, 673 insertions, 0 deletions
diff --git a/docs/userguide/designtime.rst b/docs/userguide/designtime.rst
new file mode 100644
index 000000000..3ec9ebf95
--- /dev/null
+++ b/docs/userguide/designtime.rst
@@ -0,0 +1,50 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright (C) 2019 IBM.
+
+Design Time Tools Guide
+=======================
+
+Below are the requirements to enable automation for a service within ONAP.
+
+For instantiation, the goal is to be able to automatically resolve all the HEAT/Helm variables, called cloud parameters.
+
+For post-instantiation, the goal is to configure the VNF with initial configuration.
+
+Prerequisite
+------------
+
+* Gather the cloud parameters:
+
+Instantiation:
+~~~~~~~~~~~~~~
+
+Have the HEAT template along with the HEAT environment file (or) Have the Helm chart along with the Values.yaml file
+
+(CDS supports, but whether SO → Multicloud support for Helm/K8S is different story)
+
+
+Post-instantiation:
+~~~~~~~~~~~~~~~~~~~
+
+Have the configuration template to apply on the VNF.
+
+* XML for NETCONF
+* JSON / XML for RESTCONF
+* not supported yet - CLI
+* JSON for Ansible [not supported yet]
+* Identify which template parameters are static and dynamic
+* Create and fill-in the a table for all the dynamic values
+
+While doing so, identify the resources using the same process to be resolved; for instance, if two IPs has to be resolved through the same IPAM, the process the resolve the IP is the same.
+
+
+Services:
+---------
+
+.. toctree::
+ :maxdepth: 2
+
+ ../CBA/index
+ ../resourcedefinition/index
+ resourceassignment
diff --git a/docs/userguide/developer-guide.rst b/docs/userguide/developer-guide.rst
new file mode 100644
index 000000000..3f8112244
--- /dev/null
+++ b/docs/userguide/developer-guide.rst
@@ -0,0 +1,13 @@
+.. This work is a derivative of https://wiki.onap.org/display/DW/Running+Blueprints+Processor+Microservice+in+an+IDE
+.. 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.
+
+Developer Guide
+=================
+
+.. toctree::
+ :caption: Table of Contents
+ :maxdepth: 1
+
+ running-bp-processor-in-ide \ No newline at end of file
diff --git a/docs/userguide/installation.rst b/docs/userguide/installation.rst
new file mode 100644
index 000000000..4e15e980b
--- /dev/null
+++ b/docs/userguide/installation.rst
@@ -0,0 +1,92 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright (C) 2019 IBM.
+
+
+Installation Guide
+==================
+
+Installation
+------------
+
+ONAP is meant to be deployed within a Kubernetes environment. Hence, the de-facto way to deploy CDS is through Kubernetes.
+
+ONAP also package Kubernetes manifest as Chart, using Helm.
+
+Prerequisite
+------------
+
+https://docs.onap.org/en/latest/guides/onap-developer/settingup/index.html
+
+Setup local Helm
+----------------
+
+helm repo
+
+* helm serve &
+* helm repo add local http://127.0.0.1:8879
+
+Get the chart
+-------------
+
+Make sure to checkout the release to use, by replacing $release-tag in bellow command
+
+git clone https://gerrit.onap.org/r/oom
+git checkout tags/$release-tag
+cd oom/kubernetes
+make cds
+
+Install CDS
+-----------
+
+helm install --name cds cds
+
+Result
+------
+
+.. code-block:: bash
+ :linenos:
+
+ $ kubectl get all --selector=release=cds
+ NAME READY STATUS RESTARTS AGE
+ pod/cds-blueprints-processor-54f758d69f-p98c2 0/1 Running 1 2m
+ pod/cds-cds-6bd674dc77-4gtdf 1/1 Running 0 2m
+ pod/cds-cds-db-0 1/1 Running 0 2m
+ pod/cds-controller-blueprints-545bbf98cf-zwjfc 1/1 Running 0 2m
+
+ NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
+ service/blueprints-processor ClusterIP 10.43.139.9 <none> 8080/TCP,9111/TCP 2m
+ service/cds NodePort 10.43.254.69 <none> 3000:30397/TCP 2m
+ service/cds-db ClusterIP None <none> 3306/TCP 2m
+ service/controller-blueprints ClusterIP 10.43.207.152 <none> 8080/TCP 2m
+
+ NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
+ deployment.apps/cds-blueprints-processor 1 1 1 0 2m
+ deployment.apps/cds-cds 1 1 1 1 2m
+ deployment.apps/cds-controller-blueprints 1 1 1 1 2m
+
+ NAME DESIRED CURRENT READY AGE
+ replicaset.apps/cds-blueprints-processor-54f758d69f 1 1 0 2m
+ replicaset.apps/cds-cds-6bd674dc77 1 1 1 2m
+ replicaset.apps/cds-controller-blueprints-545bbf98cf 1 1 1 2m
+
+ NAME DESIRED CURRENT AGE
+ statefulset.apps/cds-cds-db 1 1 2m
+
+
+
+Running CDS UI:
+---------------
+
+Client:
+~~~~~~~
+Install Node.js and angularCLI. Refer https://angular.io/guide/quickstart
+npm install in the directory cds/cds-ui/client
+npm run build - to build UI module
+
+
+Loopback Server:
+~~~~~~~~~~~~~~~~
+
+npm install in the directory cds/cds-ui/server
+npm start should bring you the CDS UI page in your local machine with the link https://127.0.0.1:3000/
diff --git a/docs/userguide/media/build_logs.png b/docs/userguide/media/build_logs.png
new file mode 100644
index 000000000..558fd60a8
--- /dev/null
+++ b/docs/userguide/media/build_logs.png
Binary files differ
diff --git a/docs/userguide/media/create_run_config_java.png b/docs/userguide/media/create_run_config_java.png
new file mode 100644
index 000000000..5d006e2ac
--- /dev/null
+++ b/docs/userguide/media/create_run_config_java.png
Binary files differ
diff --git a/docs/userguide/media/create_run_config_kt.png b/docs/userguide/media/create_run_config_kt.png
new file mode 100644
index 000000000..6f86a7e3a
--- /dev/null
+++ b/docs/userguide/media/create_run_config_kt.png
Binary files differ
diff --git a/docs/userguide/media/expand_vm_options.PNG b/docs/userguide/media/expand_vm_options.PNG
new file mode 100644
index 000000000..9cb98d3f9
--- /dev/null
+++ b/docs/userguide/media/expand_vm_options.PNG
Binary files differ
diff --git a/docs/userguide/media/import_project.png b/docs/userguide/media/import_project.png
new file mode 100644
index 000000000..06b36c53d
--- /dev/null
+++ b/docs/userguide/media/import_project.png
Binary files differ
diff --git a/docs/userguide/media/reimport_maven.png b/docs/userguide/media/reimport_maven.png
new file mode 100644
index 000000000..bc49b3dc8
--- /dev/null
+++ b/docs/userguide/media/reimport_maven.png
Binary files differ
diff --git a/docs/userguide/media/run_config_java.png b/docs/userguide/media/run_config_java.png
new file mode 100644
index 000000000..4da5d7f34
--- /dev/null
+++ b/docs/userguide/media/run_config_java.png
Binary files differ
diff --git a/docs/userguide/media/run_config_kt.png b/docs/userguide/media/run_config_kt.png
new file mode 100644
index 000000000..4e88d2d0a
--- /dev/null
+++ b/docs/userguide/media/run_config_kt.png
Binary files differ
diff --git a/docs/userguide/media/run_debug.png b/docs/userguide/media/run_debug.png
new file mode 100644
index 000000000..3aa90577f
--- /dev/null
+++ b/docs/userguide/media/run_debug.png
Binary files differ
diff --git a/docs/userguide/media/vsc_logs.png b/docs/userguide/media/vsc_logs.png
new file mode 100644
index 000000000..886d1b3c5
--- /dev/null
+++ b/docs/userguide/media/vsc_logs.png
Binary files differ
diff --git a/docs/userguide/resourceassignment.rst b/docs/userguide/resourceassignment.rst
new file mode 100644
index 000000000..f4fab4ee3
--- /dev/null
+++ b/docs/userguide/resourceassignment.rst
@@ -0,0 +1,73 @@
+.. 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 Assignment
+-------------------
+.. toctree::
+ :maxdepth: 1
+
+
+Component executor:
+===================
+Workflow:
+=========
+
+A workflow defines an overall action to be taken for the service; it can be composed of a set of sub-actions to execute. Currently, workflows are backed by Directed Graph engine.
+
+A CBA can have as many workflow as needed.
+
+Template:
+=========
+
+A template is an artifact.
+
+A template is parameterized and each parameter must be defined in a corresponding mapping file.
+
+In order to know which mapping correlate to which template, the file name must start with an artifact-prefix, serving as identifier to the overall template + mapping.
+
+The requirement is as follow:
+
+${artifact-prefix}-template
+${artifact-prefix}-mapping
+
+A template can represent anything, such as device config, payload to interact with 3rd party systems, resource-accumulator template, etc...
+
+Mapping:
+========
+Defines the contract of each resource to be resolved. Each placeholder in the template must have a corresponding mapping definition.
+
+A mapping is comprised of:
+
+- name
+- required / optional
+- type (support complex type)
+- dictionary-name
+- dictionary-source
+
+Dependencies:
+=============
+
+This allows to make sure given resources get resolved prior the resolution of the resources defining the dependency.
+The dictionary fields reference to a specific data dictionary.
+
+Resource accumulator:
+=====================
+
+In order to resolve HEAT environment variables, resource accumulator templates are being in used for Dublin.
+
+These templates are specific to the pre-instantiation scenario, and relies on GR-API within SDNC.
+
+It is composed of the following sections:
+
+resource-accumulator-resolved-data: defines all the resources that can be resolved directly from the context. It expresses a direct mapping between the name of the resource and its value.
+
+capability-data: defines what capability to use to create a specific resource, along with the ingredients required to invoke the capability and the output mapping.
+
+- Scripts
+- Library
+- NetconfClient
+
+In order to facilitate NETCONF interaction within scripts, a python NetconfClient binded to our Kotlin implementation is made available. This NetconfClient can be used when using the netconf-component-executor.
+
+The client can be find here: https://github.com/onap/ccsdk-apps/blob/master/components/scripts/python/ccsdk_netconf/netconfclient.py \ No newline at end of file
diff --git a/docs/userguide/running-bp-processor-in-ide.rst b/docs/userguide/running-bp-processor-in-ide.rst
new file mode 100644
index 000000000..1404c42b5
--- /dev/null
+++ b/docs/userguide/running-bp-processor-in-ide.rst
@@ -0,0 +1,445 @@
+.. This work is a derivative of https://wiki.onap.org/display/DW/Running+Blueprints+Processor+Microservice+in+an+IDE
+.. 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.
+
+Running Blueprints Processor Microservice in an IDE
+====================================================
+
+Objective
+~~~~~~~~~~~~
+
+Have the blueprint processor running locally is to use the IDE to run the code, while having the database running in a container.
+This way, code changes can be conveniently tested and debugged.
+
+
+Check out the code
+~~~~~~~~~~~~~~~~~~~
+
+Check out the code from Gerrit: https://gerrit.onap.org/r/#/admin/projects/ccsdk/cds
+
+Build it locally
+~~~~~~~~~~~~~~~~~~
+
+In the checked out directory, type
+
+.. code-block:: bash
+
+ mvn clean install -Pq -Dadditionalparam=-Xdoclint:none
+
+Spin up a Docker container with the database
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The Blueprints Processor project uses a database to store information about the blueprints
+and therefore it needs to be online before attempting to run it.
+
+One way to create the database is by using the :file:`docker-compose.yaml`
+file present on the distribution module. This database will require a local directory to mount a volume, before running docker-compose remember to create following directory:
+
+.. code-block:: bash
+
+ mkdir -p -m 755 /opt/app/cds/mysql/data
+
+Navigate to the docker-compose file in the distribution module:
+
+.. tabs::
+
+ .. group-tab:: Latest
+
+ .. code-block:: bash
+
+ cd ms/blueprintsprocessor/application/src/main/dc
+
+ .. group-tab:: Frankfurt
+
+ .. code-block:: bash
+
+ cd ms/blueprintsprocessor/application/src/main/dc
+
+ .. group-tab:: El Alto
+
+ .. code-block:: bash
+
+ ms/blueprintsprocessor/distribution/src/main/dc
+
+ .. group-tab:: Dublin
+
+ .. code-block:: bash
+
+ ms/blueprintsprocessor/distribution/src/main/dc
+
+And run docker-composer:
+
+.. code-block:: bash
+
+ docker-compose up -d db
+
+This should spin up a container of the MariaDB image in the background.
+To check if it has worked, this command can be used:
+
+.. code-block:: bash
+
+ docker-compose logs -f
+
+The phrase ``mysqld: ready for connections`` indicates that the database was started correctly.
+
+From now on, the Docker container will be available on the computer; if it ever gets stopped,
+it can be started again by the command:
+
+.. code-block:: bash
+
+ docker start <id of mariadb container>
+
+
+Set permissions on the local file system
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Blueprints processor uses the local file system for some operations and, therefore,
+need some existing and accessible paths to run properly.
+
+Execute the following commands to create the needed directories, and grant access to the current user to modify them:
+
+.. code-block:: bash
+
+ mkdir -p -m 755 /opt/app/onap/blueprints/archive
+ mkdir -p -m 755 /opt/app/onap/blueprints/deploy
+ mkdir -p -m 755 /opt/app/onap/scripts
+ sudo chown -R $(id -u):$(id -g) /opt/app/onap/
+
+Import the project into the IDE
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. tabs::
+
+ .. tab:: IntelliJ IDEA
+
+ Go to *File | Open* and choose the :file:`pom.xml` file of the cds directory:
+
+ |imageImportProject|
+
+ Sometimes it may be necessary to reimport Maven project:
+
+ |imageReimportMaven|
+
+
+ **Override some application properties:**
+
+ After the project is compiled, a Run Configuration profile overriding some application properties
+ with custom values needs to be created, to reflect the local environment characteristics.
+
+ .. tabs::
+
+ .. group-tab:: Latest
+
+ Navigate to the main class of the Blueprints Processor, the BlueprintProcessorApplication class:
+
+ ``ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/BlueprintProcessorApplication.kt``.
+
+ Right-click inside it, at any point, to load the context menu and select create
+ BlueprintProcessorApplication configuration from context:
+
+ |imageCreateRunConfigkt|
+
+ **The following window will open:**
+
+ |imageRunConfigKt|
+
+ **Add the following in the field `VM Options`:**
+
+ .. code-block:: bash
+ :caption: **Custom values for properties**
+
+ -Dspring.profiles.active=dev
+
+ You can override any value from **application-dev.properties** file here. Use the following pattern:
+
+ .. code-block:: java
+
+ -D<application-dev.properties key>=<application-dev.properties value>
+
+ .. group-tab:: Frankfurt
+
+ Navigate to the main class of the Blueprints Processor, the BlueprintProcessorApplication class:
+
+ ``ms/blueprintsprocessor/application/src/main/kotlin/org/onap/ccsdk/cds/blueprintsprocessor/BlueprintProcessorApplication.kt``.
+
+ Right-click inside it, at any point, to load the context menu and select create
+ BlueprintProcessorApplication configuration from context:
+
+ |imageCreateRunConfigkt|
+
+ **The following window will open:**
+
+ |imageRunConfigKt|
+
+ **Add the following in the field `VM Options`:**
+
+ .. code-block:: bash
+ :caption: **Custom values for properties**
+
+ -Dspring.profiles.active=dev
+
+ You can override any value from **application-dev.properties** file here. Use the following pattern:
+
+ .. code-block:: java
+
+ -D<application-dev.properties key>=<application-dev.properties value>
+
+ .. group-tab:: El Alto
+
+ Navigate to the main class of the Blueprints Processor, the BlueprintProcessorApplication class:
+
+ ``ms/blueprintsprocessor/application/src/main/java/org/onap/ccsdk/cds/blueprintsprocessor/BlueprintProcessorApplication.java.``
+
+ Right-click inside it, at any point, to load the context menu and select create
+ BlueprintProcessorApplication configuration from context:
+
+ |imageCreateRunConfigJava|
+
+ **The following window will open:**
+
+ |imageRunConfigJava|
+
+ **Add the following in the field `VM Options`:**
+
+ .. code-block:: bash
+ :caption: **Custom values for properties**
+
+ -Dspring.profiles.active=dev
+
+ You can override any value from **application-dev.properties** file here. Use the following pattern:
+
+ .. code-block:: java
+
+ -D<application-dev.properties key>=<application-dev.properties value>
+
+ .. group-tab:: Dublin
+
+ Navigate to the main class of the Blueprints Processor, the BlueprintProcessorApplication class:
+
+ ``ms/blueprintsprocessor/application/src/main/java/org/onap/ccsdk/cds/blueprintsprocessor/BlueprintProcessorApplication.java``.
+
+ Right-click inside it, at any point, to load the context menu and select create
+ BlueprintProcessorApplication configuration from context:
+
+ |imageCreateRunConfigJava|
+
+ **The following window will open:**
+
+ |imageRunConfigJava|
+
+ **Add the following in that field:**
+
+ .. code-block:: java
+ :caption: **Custom values for properties**
+
+ -DappName=ControllerBluePrints
+ -Dms_name=org.onap.ccsdk.apps.controllerblueprints
+ -DappVersion=1.0.0
+ -Dspring.config.location=opt/app/onap/config/
+ -Dspring.datasource.url=jdbc:mysql://127.0.0.1:3306/sdnctl
+ -Dspring.datasource.username=sdnctl
+ -Dspring.datasource.password=sdnctl
+ -Dcontrollerblueprints.loadInitialData=true
+ -Dblueprintsprocessor.restclient.sdncodl.url=http://localhost:8282/
+ -Dblueprintsprocessor.db.primary.url=jdbc:mysql://localhost:3306/sdnctl
+ -Dblueprintsprocessor.db.primary.username=sdnctl
+ -Dblueprintsprocessor.db.primary.password=sdnctl
+ -Dblueprintsprocessor.db.primary.driverClassName=org.mariadb.jdbc.Driver
+ -Dblueprintsprocessor.db.primary.hibernateHbm2ddlAuto=update
+ -Dblueprintsprocessor.db.primary.hibernateDDLAuto=none
+ -Dblueprintsprocessor.db.primary.hibernateNamingStrategy=org.hibernate.cfg.ImprovedNamingStrategy
+ -Dblueprintsprocessor.db.primary.hibernateDialect=org.hibernate.dialect.MySQL5InnoDBDialect
+ -Dblueprints.processor.functions.python.executor.executionPath=./components/scripts/python/ccsdk_blueprints
+ -Dblueprints.processor.functions.python.executor.modulePaths=./components/scripts/python/ccsdk_blueprints,./components/scripts/python/ccsdk_netconf,./components/scripts/python/ccsdk_restconf
+ -Dblueprintsprocessor.restconfEnabled=true
+ -Dblueprintsprocessor.restclient.sdncodl.type=basic-auth
+ -Dblueprintsprocessor.restclient.sdncodl.url=http://localhost:8282/
+ -Dblueprintsprocessor.restclient.sdncodl.username=admin
+ -Dblueprintsprocessor.restclient.sdncodl.password=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
+ -Dblueprintsprocessor.grpcEnable=false
+ -Dblueprintsprocessor.grpcPort=9111
+ -Dblueprintsprocessor.blueprintDeployPath=/opt/app/onap/blueprints/deploy
+ -Dblueprintsprocessor.blueprintArchivePath=/opt/app/onap/blueprints/archive
+ -Dblueprintsprocessor.blueprintWorkingPath=/opt/app/onap/blueprints/work
+ -Dsecurity.user.password={bcrypt}$2a$10$duaUzVUVW0YPQCSIbGEkQOXwafZGwQ/b32/Ys4R1iwSSawFgz7QNu
+ -Dsecurity.user.name=ccsdkapps
+ -Dblueprintsprocessor.messageclient.self-service-api.kafkaEnable=false
+ -Dblueprintsprocessor.messageclient.self-service-api.topic=producer.t
+ -Dblueprintsprocessor.messageclient.self-service-api.type=kafka-basic-auth
+ -Dblueprintsprocessor.messageclient.self-service-api.bootstrapServers=127.0.0.1:9092
+ -Dblueprintsprocessor.messageclient.self-service-api.consumerTopic=receiver.t
+ -Dblueprintsprocessor.messageclient.self-service-api.groupId=receiver-id
+ -Dblueprintsprocessor.messageclient.self-service-api.clientId=default-client-id
+ -Dspring.profiles.active=dev
+ -Dblueprintsprocessor.httpPort=8080
+ -Dserver.port=55555
+
+
+ **Browse Working Directory to your application path** ``.../cds/ms/blueprintsprocessor/application``
+ **if path is not already specified correctly.**
+
+ **Add/replace the following in Blueprint's application-dev.properties file:**
+
+ .. code-block:: java
+
+ blueprintsprocessor.grpcclient.remote-python.type=token-auth
+ blueprintsprocessor.grpcclient.remote-python.host=localhost
+ blueprintsprocessor.grpcclient.remote-python.port=50051
+ blueprintsprocessor.grpcclient.remote-python.token=Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
+
+ blueprintprocessor.remoteScriptCommand.enabled=true
+
+
+ **Run the application:**
+
+ Select either run or debug for this Run Configuration to start the Blueprints Processor:
+
+ |imageRunDebug|
+
+ |imageBuildLogs|
+
+ .. tab:: Visual Studio Code
+
+ .. tabs::
+
+ .. group-tab:: Latest
+
+ * **Step #1** - Make sure your installation of Visual Studio Code is up to date. This guide was writen using version 1.48
+ * **Step #2** - Install `Kotlin extension from the Visual Studio Code Marketplace <https://marketplace.visualstudio.com/items?itemName=fwcd.kotlin>`_
+ * **Step #3** - On the top menu click *Run | Open Configurations*
+
+ .. warning:: This should open the file called `launch.json` but in some cases you'll need to wait for the Kotlin Language Server to be installed before you can do anything.
+ Please watch the bottom bar in Visual Studio Code for messages about things getting installed.
+
+ * **Step #4** - add configuration shown below to your configurations list.
+
+ .. code-block:: json
+
+ {
+ "type": "kotlin",
+ "request": "launch",
+ "name": "Blueprint Processor",
+ "projectRoot": "${workspaceFolder}/ms/blueprintsprocessor/application",
+ "mainClass": "-Dspring.profiles.active=dev org.onap.ccsdk.cds.blueprintsprocessor.BlueprintProcessorApplicationKt"
+ }
+
+ .. warning:: The `projectRoot` path assumes that you created your Workspace in the main CDS repository folder. If not - please change the path accordingly
+
+ .. note:: The `mainClass` contains a spring profile param before the full class name. This is done because `args` is not supported by Kotlin launch.json configuration.
+ If you have a cleaner idea how to solve this - please let us know.
+
+ **Add/replace the following in Blueprint's application-dev.properties file:**
+
+ .. code-block:: java
+
+ blueprintsprocessor.grpcclient.remote-python.type=token-auth
+ blueprintsprocessor.grpcclient.remote-python.host=localhost
+ blueprintsprocessor.grpcclient.remote-python.port=50051
+ blueprintsprocessor.grpcclient.remote-python.token=Basic Y2NzZGthcHBzOmNjc2RrYXBwcw==
+
+ blueprintprocessor.remoteScriptCommand.enabled=true
+
+ **Currently the following entries need to be added in VSC too:**
+
+ .. code-block:: java
+
+ logging.level.web=DEBUG
+ logging.level.org.springframework.web: DEBUG
+
+ #Encrypted username and password for health check service
+ endpoints.user.name=eHbVUbJAj4AG2522cSbrOQ==
+ endpoints.user.password=eHbVUbJAj4AG2522cSbrOQ==
+
+ #BaseUrls for health check blueprint processor services
+ blueprintprocessor.healthcheck.baseUrl=http://localhost:8080/
+ blueprintprocessor.healthcheck.mapping-service-name-with-service-link=[Execution service,/api/v1/execution-service/health-check],[Resources service,/api/v1/resources/health-check],[Template service,/api/v1/template/health-check]
+
+ #BaseUrls for health check Cds Listener services
+ cdslistener.healthcheck.baseUrl=http://cds-sdc-listener:8080/
+ cdslistener.healthcheck.mapping-service-name-with-service-link=[SDC Listener service,/api/v1/sdclistener/healthcheck]
+
+ #Actuator properties
+ management.endpoints.web.exposure.include=*
+ management.endpoint.health.show-details=always
+ management.info.git.mode=full
+
+ In VSC the properties are read from target folder, thats why the following maven command needs to be rerun:
+
+ .. code-block:: bash
+
+ mvn clean install -DskipTests=true -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dadditionalparam=-Xdoclint:none
+
+ Click Run in Menu bar.
+
+ |imageLogsVSC|
+
+
+Testing the application
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+There are two main features of the Blueprints Processor that can be of interest of a developer:
+blueprint publish and blueprint process.
+
+To upload custom blueprints, the endpoint ``api/v1/execution-service/publish`` is used.
+
+To process, the endpoint is ``api/v1/execution-service/process``.
+
+Postman is a software that can be used to send these request, and an example of
+them is present on https://www.getpostman.com/collections/b99863b0cde7565a32fc.
+
+A detailed description of the usage of different APIs of CDS will follow.
+
+Possible Fixes
+~~~~~~~~~~~~~~~~~~~
+
+Imported packages or annotiations are not found, Run Config not available?
+*****************************************************************************
+
+1. Rebuild with ``maven install ...`` (see above)
+2. Potentially change Maven home directory in Settings
+3. Maven reimport in IDE
+
+Compilation error?
+********************
+
+* Change Java Version to 11
+
+
+.. image alignment inside tabs doesn't work
+
+.. |imageRunConfigJava| image:: media/run_config_java.png
+ :width: 500pt
+ :align: middle
+
+.. |imageRunConfigKt| image:: media/run_config_kt.png
+ :width: 500pt
+ :align: middle
+
+.. |imageCreateRunConfigJava| image:: media/create_run_config_java.png
+ :width: 500pt
+ :align: middle
+
+.. |imageCreateRunConfigKt| image:: media/create_run_config_kt.png
+ :width: 500pt
+ :align: middle
+
+.. |imageImportProject| image:: media/import_project.png
+ :width: 300pt
+ :align: middle
+
+.. |imageReimportMaven| image:: media/reimport_maven.png
+ :width: 400pt
+ :align: middle
+
+.. |imageRunDebug| image:: media/run_debug.png
+ :width: 500pt
+ :align: middle
+
+.. |imageBuildLogs| image:: media/build_logs.png
+ :width: 500pt
+ :align: middle
+
+.. |imageLogsVSC| image:: media/vsc_logs.png
+ :width: 500pt
+ :align: middle