Overview
========
-DFC will orchestrate the collection of bulk PM data flow:
- 1. Subscribes to fileReady DMaaP topic
- 2. Collects the file from the xNF
- 3. Sends new event to DataRouter with file.
+Component description can be found under `DFC`_.
-Introduction
-============
-
-DFC is delivered as one **Docker container** which hosts application server and can be started by `docker-compose`.
-
-Functionality
-=============
-.. image:: ../images/DFC.png
+.. _DFC: ../../services/dfc/index.html
Paths
Configuration file: Config/datafile_endpoints.json
-Main API Endpoints
-==================
-
-Running with dev-mode of DFC
- - Heartbeat: **http://<container_address>:8100/heartbeat** or **https://<container_address>:8433/heartbeat**
- - Start DFC: **http://<container_address>:8100/start** or **https://<container_address>:8433/start**
- - Stop DFC: **http://<container_address>:8100/stopDatafile** or **https://<container_address>:8433/stopDatafile**
-
-The external port allocated for 8100 (http) is 30245.
-
Maven GroupId:
==============
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Administration
+==============
+DFC has a healthcheck functionality. The service can then be started and stopped through an API. One can also check the liveliness of the service.
+
+Main API Endpoints
+""""""""""""""""""
+Running with dev-mode of DFC
+ - Heartbeat: **http://<container_address>:8100/heartbeat** or **https://<container_address>:8433/heartbeat**
+ - Start DFC: **http://<container_address>:8100/start** or **https://<container_address>:8433/start**
+ - Stop DFC: **http://<container_address>:8100/stopDatafile** or **https://<container_address>:8433/stopDatafile**
+
+The external port allocated for 8100 (http) is 30245.
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Architecture
+============
+
+Introduction
+""""""""""""
+DataFile Collector (DFC) is a part of DCAEGEN2. Some information about DFC and the reasons of its implementation can be found here: `5G bulk PM wiki page`_.
+
+.. _5G bulk PM wiki page: https://wiki.onap.org/display/DW/5G+-+Bulk+PM
+
+DFC will handle the collection of bulk PM data flow:
+ 1. Subscribes to fileReady DMaaP topic
+ 2. Collects the file from the xNF
+ 3. Sends new event to DataRouter with file.
+
+
+DFC is delivered as one **Docker container** which hosts application server and can be started by `docker-compose`.
+See `Delivery`_ for more information about the docker container.
+
+.. _Delivery: ./delivery.html
+
+Functionality
+"""""""""""""
+.. image:: ../../images/DFC.png
+
+Interaction
+"""""""""""
+DFC will interact with the DMaaP Message Router and with the Data Router via secured protocol, using json files.
+So far, the implemented protocols are sftp and ftp(e)s.
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
+.. http://creativecommons.org/licenses/by/4.0\r
+\r
+Configuration\r
+=============\r
+\r
+**datafile** configuration is controlled via a single JSON file called datafile_endpoints.json.\r
+This is located under datafile-app-server/config.\r
+\r
+JSON CONFIGURATION EXPLAINED\r
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^\r
+\r
+Variables of interest (e.g. variables that should be inspected/modifed for a specific runtime environment) are listed below for convenience. The entire file is provided later in this page for reference.\r
+\r
+dmaapConsumerConfiguration\r
+""""""""""""""""""""""""""\r
+\r
+.. code-block:: json\r
+\r
+ "dmaapHostName": <name of DMaaP/MR host>\r
+ "dmaapPortNumber": <DMaaP/MR host port>\r
+ "dmaapTopicName": "/events/unauthenticated.VES_NOTIFICATION_OUTPUT"\r
+ "dmaapProtocol": "http"\r
+ "dmaapUserName": ""\r
+ "dmaapUserPassword": ""\r
+ "dmaapContentType": "application/json"\r
+ "consumerId": "C12"\r
+ "consumerGroup": "OpenDcae-c12"\r
+ "timeoutMS": -1\r
+ "messageLimit": 1\r
+\r
+dmaapProducerConfiguration\r
+""""""""""""""""""""""""""\r
+\r
+.. code-block:: json\r
+\r
+ "dmaapHostName": <name of DMaaP/DR host>\r
+ "dmaapPortNumber": <DMaaP/DR host port>\r
+ "dmaapTopicName": "publish"\r
+ "dmaapProtocol": "httpa"\r
+ "dmaapUserName": "dradmin"\r
+ "dmaapUserPassword": "dradmin"\r
+ "dmaapContentType": "application/octet-stream"\r
+\r
+ftpesConfiguration\r
+""""""""""""""""""\r
+\r
+.. code-block:: json\r
+\r
+ "keyCert": <path to DFC certificate>\r
+ "keyPassword": <pssword for DFC certificate>\r
+ "trustedCA": <path to xNF certificate>\r
+ "trustedCAPassword": <password for xNF certificate>\r
+\r
+\r
+Sample JSON configuration\r
+"""""""""""""""""""""""""\r
+\r
+The format of the JSON configuration that drives all behavior of DFC is probably best described using an example:\r
+\r
+.. code-block:: json\r
+\r
+ {\r
+ "configs": {\r
+ "dmaap": {\r
+ "dmaapConsumerConfiguration": {\r
+ "dmaapHostName": "localhost",\r
+ "dmaapPortNumber": 2222,\r
+ "dmaapTopicName": "/events/unauthenticated.VES_NOTIFICATION_OUTPUT",\r
+ "dmaapProtocol": "http",\r
+ "dmaapUserName": "",\r
+ "dmaapUserPassword": "",\r
+ "dmaapContentType": "application/json",\r
+ "consumerId": "C12",\r
+ "consumerGroup": "OpenDcae-c12",\r
+ "timeoutMS": -1,\r
+ "messageLimit": 1\r
+ },\r
+ "dmaapProducerConfiguration": {\r
+ "dmaapHostName": "localhost",\r
+ "dmaapPortNumber": 3907,\r
+ "dmaapTopicName": "publish",\r
+ "dmaapProtocol": "https",\r
+ "dmaapUserName": "dradmin",\r
+ "dmaapUserPassword": "dradmin",\r
+ "dmaapContentType": "application/octet-stream"\r
+ }\r
+ },\r
+ "ftp": {\r
+ "ftpesConfiguration": {\r
+ "keyCert": "config/ftpKey.jks",\r
+ "keyPassword": "secret",\r
+ "trustedCA": "config/cacerts",\r
+ "trustedCAPassword": "secret"\r
+ }\r
+ }\r
+ }\r
+ }\r
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
+.. http://creativecommons.org/licenses/by/4.0\r
+\r
+Delivery\r
+========\r
+\r
+Docker Container\r
+----------------\r
+\r
+**datafile** is delivered as a docker container that can be downloaded from onap:\r
+\r
+ ``docker run -d -p 8100:8100 -p 8433:8433 nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile``\r
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
+.. http://creativecommons.org/licenses/by/4.0\r
+\r
+\r
+DATAFILE COLLECTOR MS (DFC)\r
+=============================\r
+\r
+.. Add or remove sections below as appropriate for the platform component.\r
+\r
+.. toctree::\r
+ :maxdepth: 1\r
+\r
+ ./architecture.rst\r
+ ./delivery.rst\r
+ ./logging.rst\r
+ ./installation.rst\r
+ ./configuration.rst\r
+ ./administration.rst\r
+ ./release-notes.rst\r
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
+.. http://creativecommons.org/licenses/by/4.0\r
+\r
+Installation\r
+============\r
+\r
+An environment suitable for running docker containers is recommended.\r
+\r
+As a docker container\r
+---------------------\r
+\r
+**datafile** is delivered as a docker container based on openjdk:8-jre-alpine. The\r
+host or VM that will run this container must have the docker application\r
+loaded and available to the userID that will be running the DFC container.\r
+\r
+Also required is a working DMAAP/MR and DMAAP/DR environment. datafile\r
+subscribes to DMAAP/MR fileReady event as JSON messages and publishes the downloaded files to the DMAAP/DR.\r
+\r
+Installation\r
+^^^^^^^^^^^^\r
+\r
+The following command will download the latest datafile container from\r
+nexus and launch it in the container named "datafile":\r
+\r
+ ``docker run -d -p 8100:8100 -p 8433:8433 nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile``\r
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.\r
+.. http://creativecommons.org/licenses/by/4.0\r
+\r
+Logging\r
+=======\r
+\r
+Logging is controlled by the configuration provided to **datafile** in the application.yaml\r
+file located in datafile-app-server/config folder.\r
+\r
+\r
+**Where is the log file?**\r
+\r
+The log file is located under /opt/log and called application.log.\r
--- /dev/null
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Release Notes
+=============
+
+Version: 1.0.4
+--------------
+
+:Release Date: 2018-11-08 (Casablanca)
+
+
+**New Features**
+
+All DFC features from v1.0.4 are new.
+
+
+**Bug Fixes**
+
+This is the initial release.
+
+
+**Known Issues**
+
+No known issues.
+
+
+**Known limitations**
+
+ - DFC has only be tested successfully with one node.
+ - The certificates are distributed hand to hand, no automated process.
+
+
+**Security Issues**
+
+No known security issues.
+
+
+**Upgrade Notes**
+
+This is the initial release.