Documentation for DFC El-Alto

Change-Id: I84e8dd5d9c861e710aeb8d252fa4877e5c41d5af
Issue-ID: DCAEGEN2-1662
Signed-off-by: maximesson <maxime.bonneau@est.tech>
diff --git a/docs/sections/services/dfc/configuration.rst b/docs/sections/services/dfc/configuration.rst
index bb60fa2..f3a1847 100644
--- a/docs/sections/services/dfc/configuration.rst
+++ b/docs/sections/services/dfc/configuration.rst
@@ -4,20 +4,27 @@
 =============================

 Configuration and Performance

 =============================

+The DataFile Collector (DFC) gets fileReady messages from the Message Router (MR) sent from xNFs, via the VES Collector.

+These messages contains data about files ready to get from the xNF. DFC then collects these files from the xNF and

+publishes them to the DataRouter (DR) on a feed. Consumers can subscribe to the feed from DR and process the file for

+its specific purpose. The connection between a file type and the feed it will be published to is the

+**changeIdentifier**. DFC can handle multiple **changeIdentifier**/feed combinations, see picture below.

+

+.. image:: ../../images/DFC_config.png

+

+

 

 Configuration

 ^^^^^^^^^^^^^

 By default, DFC handles the "PM_MEAS_FILES" change identifier and publishes these files on the "bulk_pm_feed" feed.

-But it can also be configured to handle other change identifiers and publish them to other feeds, see picture below.

-

-.. image:: ../../images/DFC_config.png

-

-The configuration of DFC is controlled via a blueprint.

+But it can also be configured to handle more/other change identifiers and publish them to more/other feeds. The

+configuration of DFC is controlled via a blueprint.

 

 Blueprint Configuration Explained

 """""""""""""""""""""""""""""""""

 

-For the communication with the Message Router, the user must provide the **host name**, **port**, and **protocol** of the DMaaP Message router.

+For the communication with the Message Router, the user must provide the **host name**, **port**, and **protocol** of

+the DMaaP Message router.

 

 .. code-block:: yaml

   :emphasize-lines: 2,6,10

@@ -58,67 +65,74 @@
         description: enable certificate based connection with DMaap

         default: false

 

-DFC can handle multiple change identifiers. This will require to create manually a new block for each change identifier.

+DFC can handle multiple change identifiers. For each change identifier/feed combination the user must provide the

+**change identifier**, **feed name**, and **feed location**.

 

-.. code-block:: yaml

-  :emphasize-lines: 2

-  

-    streams_publishes:

-      dfcFeed00ChangeIdentifier:

-        dmaap_info: <<bulk_pm_feed>>

-        type: data_router

+**Note!** The **feed name** provided should be used by the consumer/s to set up the subscription to the feed.

 

-For each feed related to a change identifier the user must provide the **feed name**, and **feed description**.

+The **feed name** and **feed location** are defined as inputs for the user to provide.

 

 .. code-block:: yaml

   :emphasize-lines: 2,6

 

     inputs:

-      dfcFeed00Name:

+      feed0_name:

         type: string

         description: The name of the feed the files will be published to. Should be used by the subscriber.

         default: "bulk_pm_feed"

-      dfcFeed00Description:

+      feed0_location:

         type: string

-        description: A description of the feed the files will be published to.

-        default: "Feed for Bulk PM files"

+        description: The location of the feed.

+        default: "loc00"

 

-**Note!** The feed name provided should be used by the subscriber/s to set up the subscription to the feed.

-

-To dynamically create the feeds, DFC uses the DCAE DMaaP plugin. This means that for each feed the user must also add an

-item under the "**node_templates**" section of the blueprint. The feed is identified within the blueprint with a feed identifier, "**dfcFeed00**" in the example.

+The **feed name** shall be used in the definition of the feed for the DMaaP plugin under the "**node_templates**"

+section under a tag for the  internal "**feed identifier**" for the feed (feed0 in the example).

 

 .. code-block:: yaml

-  :emphasize-lines: 2

+  :emphasize-lines: 1,5

 

-    node_templates:

-      dfcFeed00:

-        type: ccsdk.nodes.Feed

-        properties:

-          feed_name: { get_input: dfcFeed00Name }

-          feed_description: { get_input: dfcFeed00Description }

+    feed0:

+      type: ccsdk.nodes.Feed

+      properties:

+        feed_name:

+          get_input: feed0_name

+        useExisting: true

 

-To configure DFC micro service itself, the user must also add the change identifier and the feed identifier to the "**application_config**" section

-under the tag "**dmaap.dmaapProducerConfiguration**" in the blueprint. **Note!** The identifier should be surrounded by **<<>>** for the feed's configuration to be bound to the DFC configuration in CBS.

+The **feed location** shall be used under the **streams_publishes** section under a tag for the internal

+"**feed identifier**" for the feed.

 

 .. code-block:: yaml

-  :emphasize-lines: 4

+  :emphasize-lines: 2,4

 

-          application_config:

-            dmaap.dmaapProducerConfiguration:

-              - changeIdentifier: {get_input: dfcFeed00ChangeIdentifier}

-                feedInfo: <<dfcFeed00>>

+      streams_publishes:

+      - name: feed0

+        location:

+          get_input: feed0_location

+        type: data_router

 

-And, lastly, to set up the publication to the feed, the feed identifier must be added to the "**streams_publishes**" section

-of the blueprint.

+The **change identifier** shall be defined as an item under the **streams_publishes** tag in the "**application_config**"

+section. Under this tag the internal "**feed identifier**" for the feed shall also be added to get the

+info about the feed substituted in by CBS (that's what the <<>> tags are for).

 

 .. code-block:: yaml

-  :emphasize-lines: 2

+  :emphasize-lines: 4,5

 

-          streams_publishes:

-            - name: dfcFeed00

-              type: data_router

-              location: "loc00"

+      application_config:

+        service_calls: []

+        streams_publishes:

+          PM_MEAS_FILES:

+            dmaap_info: <<feed0>>

+            type: data_router

+

+And, lastly, to set up the publication relationship for the feed, the "**feed identifier**" must be added to the

+"**relationships**" section of the blueprint.

+

+.. code-block:: yaml

+  :emphasize-lines: 3

+

+   relationships:

+    - type: ccsdk.relationships.publish_files

+      target: feed0

 

 Sample blueprint configuration

 """"""""""""""""""""""""""""""

@@ -153,82 +167,83 @@
         type: boolean

         description: enable certificate based connection with DMaap

         default: false

-      dfcFeed00Name:

+      envs:

+        default: {}

+      feed0_name:

         type: string

         description: The name of the feed the files will be published to. Should be used by the subscriber.

         default: "bulk_pm_feed"

-      dfcFeed00Description:

+      feed0_location:

         type: string

-        description: A description of the feed the files will be published to.

-        default: "Feed for Bulk PM files"

-      dfcFeed01Name:

+        description: The location of the feed.

+        default: "loc00"

+      feed1_name:

         type: string

         description: The name of the feed the files will be published to. Should be used by the subscriber.

         default: "log_feed"

-      dfcFeed01Description:

+      feed1_location:

         type: string

-        description: A description of the feed the files will be published to.

-        default: "Feed for log files"

-

+        description: The location of the feed.

+        default: "loc00"

     node_templates:

-      dfcFeed00:

-        type: ccsdk.nodes.Feed

-        properties:

-          feed_name: { get_input: dfcFeed00Name }

-          feed_description: { get_input: dfcFeed00Description }

-      dfcFeed01:

-        type: ccsdk.nodes.Feed

-        properties:

-          feed_name: { get_input: dfcFeed01Name }

-          feed_description: { get_input: dfcFeed01Description }

-

       datafile-collector:

         type: dcae.nodes.ContainerizedServiceComponentUsingDmaap

-

-        relationships:

-          - type: ccsdk.relationships.publish_files

-            target: dfcFeed00

-          - type: ccsdk.relationships.publish_files

-            target: dfcFeed01

-

         interfaces:

           cloudify.interfaces.lifecycle:

             start:

               inputs:

-                ports:

-                  - concat: ["8100:0"]

-                  - concat: ["8433:0"]

-

+            envs:

+              get_input: envs

         properties:

-          service_component_type: 'dcae-datafile'

           application_config:

+            service_calls: []

             dmaap.security.enableDmaapCertAuth: { get_input: secureEnableCert }

-            streams_publishes:

-              dfcFeed00ChangeIdentifier:

-                dmaap_info: <<dfcFeed00>>

-                type: data_router

-              dfcFeed01ChangeIdentifier:

-                dmaap_info: <<dfcFeed01>>

-                type: data_router

             streams_subscribes:

               dmaap_subscriber:

-                type:

-                  "message_router"

                 dmaap_info:

                   topic_url:

                     { concat: [{ get_input: dmaap_mr_protocol },"://",{ get_input: dmaap_mr_host },

                                ":",{ get_input: dmaap_mr_port },"/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12"]}

+            streams_publishes:

+              PM_MEAS_FILES:

+                dmaap_info: <<feed0>>

+                type: data_router

+              LOG_FILES:

+                dmaap_info: <<feed1>>

+                type: data_router

+          image:

+            get_input: tag_version

+          service_component_type: datafile-collector

           streams_publishes:

-            - name: dfcFeed00

-              type: data_router

-              location: "loc00"

-            - name: dfcFeed01

-              type: data_router

-              location: "loc00"

+          - name: feed0

+            location:

+              get_input: feed0_location

+            type: data_router

+          - name: feed1

+            location:

+              get_input: feed1_location

+            type: data_router

+        relationships:

+          - type: ccsdk.relationships.publish_files

+            target: feed0

+          - type: ccsdk.relationships.publish_files

+            target: feed1

+      feed0:

+        type: ccsdk.nodes.Feed

+        properties:

+          feed_name:

+            get_input: feed0_name

+          useExisting: true

+      feed1:

+        type: ccsdk.nodes.Feed

+        properties:

+          feed_name:

+            get_input: feed1_name

+          useExisting: true

 

 Performance

 ^^^^^^^^^^^

 

 To see the performance of DFC, see "`Datafile Collector (DFC) performance baseline results`_".

 

-.. _Datafile Collector (DFC) performance baseline results: https://wiki.onap.org/display/DW/Datafile+Collector+%28DFC%29+performance+baseline+results
\ No newline at end of file
+.. _Datafile Collector (DFC) performance baseline results: https://wiki.onap.org/display/DW/Datafile+Collector+%28DFC%29+performance+baseline+results