From 3d7081f169f4b0e971f4259b5245861cc2f7c82a Mon Sep 17 00:00:00 2001 From: pwielebs Date: Thu, 13 Sep 2018 13:49:33 +0200 Subject: [PATCH] User documentation added Change-Id: Ic5a14b247123a94fcfb1348b372d1603b6c26107 Issue-ID: DCAEGEN2-398 Signed-off-by: pwielebs --- docs/sections/apis/PRH.rst | 146 +++++++++++++++++++++++++++++++++++++++ docs/sections/apis/PRH.yaml | 76 ++++++++++++++++++++ docs/sections/images/prhAlgo.png | Bin 0 -> 44604 bytes docs/sections/offeredapis.rst | 1 + 4 files changed, 223 insertions(+) create mode 100644 docs/sections/apis/PRH.rst create mode 100644 docs/sections/apis/PRH.yaml create mode 100644 docs/sections/images/prhAlgo.png diff --git a/docs/sections/apis/PRH.rst b/docs/sections/apis/PRH.rst new file mode 100644 index 00000000..f693ef76 --- /dev/null +++ b/docs/sections/apis/PRH.rst @@ -0,0 +1,146 @@ +============================== +PRH (PNF Registration Handler) +============================== + +:Date: 2018-09-13 + +.. contents:: + :depth: 3 +.. + +Overview +======== + +Physical Network Function Registration Handler is responsible for registration of PNF (Physical Network Function) to +ONAP (Open Network Automation Platform) in plug and play manner. + +Introduction +============ + +PRH is delivered as one **Docker container** which hosts application server and can be started by `docker-compose`. + +Functionality +============= +.. image:: ../images/prhAlgo.png + + +Paths +===== + +GET /events/unauthenticated.VES_PNFREG_OUTPUT +----------------------------------------------- + +Description +~~~~~~~~~~~ + +Reads PNF registration fromD DMaaP (Data Movement as a Platform) + + +Responses +~~~~~~~~~ + ++-----------+-------------------------------------------+ +| HTTP Code | Description | ++===========+===========================================+ +| **200** | successful response | ++-----------+-------------------------------------------+ + + +PATCH /aai/v12/network/pnfs/{pnf-name} +-------------------------------------- + +Description +~~~~~~~~~~~ + +Update AAI (Active and Available Inventory) PNF's specific entries: + - ipv4 to ipaddress-v4-oam + - ipv6 to ipaddress-v6-oam + +Parameters +~~~~~~~~~~ + ++----------+---------------+---------------------------------+------------------+ +| Type | Name | Description | Schema | ++==========+===============+=================================+==================+ +| **Path** | | **pnf-name**| Name of the PNF. | string (text) | +| | | *required* | | | ++----------+---------------+---------------------------------+------------------+ +| **Body** | **patchbody** | Required patch body. | | ++----------+---------------+---------------------------------+------------------+ + + +Responses +~~~~~~~~~ + ++-----------+-------------------------------------------+ +| HTTP Code | Description | ++===========+===========================================+ +| **200** | successful response | ++-----------+-------------------------------------------+ + + +POST /events/unauthenticated.PNF_READY +-------------------------------------- + +Description +~~~~~~~~~~~ + +Publish PNF_READY to DMaaP and set: + - pnf-id to correlationID + - ipv4 to ipaddress-v4-oam + - ipv6 to ipaddress-v6-oam + +Parameters +~~~~~~~~~~ + ++----------+----------------+---------------------------------+------------------+ +| Type | Name | Description | Schema | ++==========+================+=================================+==================+ +| **Body** | | **postbody** | Required patch body. | `hydratorappput | +| | | *required* | | <#_hydratorapppu | +| | | | t>`__ | ++----------+----------------+---------------------------------+------------------+ + + +Responses +~~~~~~~~~ + ++-----------+-------------------------------------------+ +| HTTP Code | Description | ++===========+===========================================+ +| **200** | successful response | ++-----------+-------------------------------------------+ + +Compiling PRH +============= + +Whole project (top level of PRH directory) and each module (sub module directory) can be compiled using +`mvn clean install` command. + +Main API Endpoints +================== + +Running with dev-mode of PRH + - Heartbeat: **http://:8100/heartbeat** or **https://:8443/heartbeat** + - Start PRH: **http://:8100/start** or **https://:8433/start** + - Stop PRH: **http://:8100/stopPrh** or **https://:8433/stopPrh** + +Maven GroupId: +============== + +org.onap.dcaegen2.services + +Maven Parent ArtifactId: +======================== + +dcae-services + +Maven Children Artifacts: +========================= + +1. prh-app-server: Pnf Registration Handler (PRH) server +2. prh-aai-client: Contains implementation of AAI client +3. prh-dmaap-client: Contains implementation of DmaaP client +4. prh-commons: Common code for whole prh modules + + diff --git a/docs/sections/apis/PRH.yaml b/docs/sections/apis/PRH.yaml new file mode 100644 index 00000000..37040bc8 --- /dev/null +++ b/docs/sections/apis/PRH.yaml @@ -0,0 +1,76 @@ +--- +swagger: '2.0' +info: + description: This page lists all the rest apis for PRH app server. + version: '1.0' + title: PRH app server +host: localhost:8100 +basePath: "/" +tags: +- name: heartbeat-controller + description: Check liveness of PRH service +- name: schedule-controller + description: Schedule Controller +paths: + "/heartbeat": + get: + tags: + - heartbeat-controller + summary: Returns liveness of PRH service + operationId: heartbeatUsingGET + produces: + - "*/*" + responses: + '200': + description: PRH sevice is living + schema: + "$ref": "#/definitions/Mono«ResponseEntity«string»»" + '401': + description: You are not authorized to view the resource + '403': + description: Accessing the resource you were trying to reach is forbidden + '404': + description: The resource you were trying to reach is not found + "/start": + get: + tags: + - schedule-controller + summary: Start scheduling worker request + operationId: startTasksUsingGET + produces: + - "*/*" + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/Mono«ResponseEntity«string»»" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found + "/stopPrh": + get: + tags: + - schedule-controller + summary: Stop scheduling worker request + operationId: stopTaskUsingGET + produces: + - "*/*" + responses: + '200': + description: OK + schema: + "$ref": "#/definitions/Mono«ResponseEntity«string»»" + '401': + description: Unauthorized + '403': + description: Forbidden + '404': + description: Not Found +definitions: + Mono«ResponseEntity«string»»: + type: object + title: Mono«ResponseEntity«string»» + diff --git a/docs/sections/images/prhAlgo.png b/docs/sections/images/prhAlgo.png new file mode 100644 index 0000000000000000000000000000000000000000..3d3c80937333dad2d93c476ac2dfe0a13d6d0577 GIT binary patch literal 44604 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