Getting Started Documents 73/17973/1
authorO'Connor, Lina (lo8949) <lo8949@att.com>
Tue, 10 Oct 2017 14:26:14 +0000 (08:26 -0600)
committerO'Connor, Lina (lo8949) <lo8949@att.com>
Tue, 10 Oct 2017 14:31:10 +0000 (08:31 -0600)
Issue-ID: AAI-255

Change-Id: I73d20bc0d67c9b243edab159c2f6bf5837225d34
Signed-off-by: O'Connor, Lina (lo8949) <lo8949@att.com>
docs/Getting Started/AAI_Developer_Environment_Setup.rst
docs/Getting Started/Edge_Rules.rst [new file with mode: 0644]
docs/Getting Started/How_to_AAI_data_snapshot_and_restore_in_ONAP_1_1.rst [new file with mode: 0644]
docs/Getting Started/How_to_Docker_setup_on_Single_VM.rst [new file with mode: 0644]
docs/Getting Started/Queries/Policy_Named_Query.rst [new file with mode: 0644]
docs/Getting Started/Queries/vnf_to_esr_system_info_Named_Query.rst [new file with mode: 0644]
docs/index.rst

index ed7a739..10f45df 100644 (file)
@@ -1,6 +1,7 @@
 .. contents::
    :depth: 3
-..
+.. _dev-setup:
+
 
 A&AI Developer Environment Setup
 ================================
diff --git a/docs/Getting Started/Edge_Rules.rst b/docs/Getting Started/Edge_Rules.rst
new file mode 100644 (file)
index 0000000..8950d3e
--- /dev/null
@@ -0,0 +1,161 @@
+.. contents::
+   :depth: 3
+..
+
+Edge Rules
+==========
+
+-  `Edge Rules Location <#EdgeRules-EdgeRulesLocation>`__
+
+-  `How to Interpret an Edge
+   Rule <#EdgeRules-HowtoInterpretanEdgeRule>`__
+
+   -  `Mentally Constructing an
+      Edge <#EdgeRules-MentallyConstructinganEdge>`__
+
+      -  `Quick guide for which is your in node and which is your out
+         node <#EdgeRules-Quickguideforwhichisyourinnod>`__
+
+-  `How to Read Multiplicity <#EdgeRules-HowtoReadMultiplicity>`__
+
+-  `Internal Edge Properties <#EdgeRules-InternalEdgeProperties>`__
+
+   -  `Quick guide to our direction
+      syntax: <#EdgeRules-Quickguidetoourdirectionsynta>`__
+
+Edge Rules Location
+-------------------
+
+The edge rules json files are located in
+aai-common/aai-core/src/main/resources/dbedgerules.
+
+How to Interpret an Edge Rule
+-----------------------------
+
+Mentally Constructing an Edge
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Read the from/to/direction as a recipe for how to construct the edge.
+
+{
+
+    | "from": "tenant",
+    | "to": "vserver",
+    | "label": "owns",
+    | "direction": "OUT",
+    | "multiplicity": "One2Many",
+    | "contains-other-v": "${direction}",
+    | "delete-other-v": "NONE",
+    | "SVC-INFRA": "!${direction}",
+    | "prevent-delete": "${direction}"
+
+}
+
+1. Start by drawing the "from" node.
+
+2. Draw an edge off this node in the specified. So if it's OUT, point
+   the edge out away from the from node, if it's IN, point it into the
+   node.
+
+3. Draw the "to" node on the empty end of that edge.
+
+Essentially, "from" and "to" do not imply direction. Think of them as
+more like "NodeA" and "NodeB".
+
+Quick guide for which is your in node and which is your out node
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
++-----------------+---------------+----------------+
+| **direction**   | **in node**   | **out node**   |
++=================+===============+================+
+| OUT             | to            | from           |
++-----------------+---------------+----------------+
+| IN              | from          | to             |
++-----------------+---------------+----------------+
+
+How to Read Multiplicity
+------------------------
+
+Multiplicity, by itself, has nothing to do with the edge direction or
+the from/to nodes. Think of it as a property of the edge label. It
+defines how many IN edges of this label and how many OUT edges of this
+label are allowed. The format we use is defined by Titan to be In2Out.
+
+Ex: One2Many means on a node, there may be only one IN edge, and many
+OUT edges.
+
+The from and to node types come in on top of this at the A&AI layer.
+A&AI's code defines which node types may have those IN and OUT edges of
+this label.
+
+{
+
+    | "from": "tenant",
+    | "to": "vserver",
+    | "label": "owns",
+    | "direction": "OUT",
+    | "multiplicity": "One2Many",
+    | "contains-other-v": "${direction}",
+    | "delete-other-v": "NONE",
+    | "SVC-INFRA": "!${direction}",
+    | "prevent-delete": "${direction}"
+
+}
+
+In this example, the vserver gets the IN edge, so it may have only one
+edge from a tenant. The tenant gets the OUT edge, so it may get many
+edges to vservers.
+
+Internal Edge Properties
+------------------------
+
+A&AI uses the following edge properties for internal processing.
+
+-  contains-other-v
+
+   -  This property defines whether or not the other vertex is contained
+      within another when rendering the resources view
+
+   -  This property was previously known as isParent
+
+   -  If contains-other-v=OUT, this means that the outVertex contains
+      the inVertex
+
+   -  Or in other words, you can read contains-other-v=OUT as "I am an
+      edge, my OUT vertex contains my IN vertex"
+
+-  delete-other-v
+
+   -  defines whether or not the other vertex is automatically included
+      in delete processing
+
+   -  this property was previously known as hasDelTarget
+
+   -  if delete-other-v=IN, this means that when deleting the inVertex
+      also delete the outVertex
+
+-  SVC-INFRA
+
+   -  what direction should the traverser continue in when running
+      edge-tag-query
+
+   -  if SVC-INFRA=OUT, when on the outVertex traverse to the inVertex
+      and continue
+
+-  prevent-delete
+
+   -  defines whether or not this edge can be deleted from a particular
+      direction
+
+   -  if prevent-delete=IN, prevent the deletion of the inVertex of the
+      edge, allow the outVertex to be deleted.
+
+   -  Or in other words, you can read it as "I am an edge, my IN vertex
+      cannot be deleted"
+
+Quick guide to our direction syntax:
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+${direction} = same as value of "direction" property
+
+!${direction} = opposite
diff --git a/docs/Getting Started/How_to_AAI_data_snapshot_and_restore_in_ONAP_1_1.rst b/docs/Getting Started/How_to_AAI_data_snapshot_and_restore_in_ONAP_1_1.rst
new file mode 100644 (file)
index 0000000..004a0c9
--- /dev/null
@@ -0,0 +1,46 @@
+.. contents::
+   :depth: 3
+..
+
+How to A&AI data snapshot and restore in ONAP 1.1
+=================================================
+
+1. Check the containers that are running and get the container name for
+   resources micro service as this container contains both dataSnapshot
+   and restore scripts
+
+2. If the deployment was followed properly, then the container name
+   would have been
+   testconfig\_aai-resources.api.simpledemo.openecomp.org\_1
+
+3. Run the following command to save the current snapshot of your data:
+
+    docker exec -u aaiadmin -it
+    testconfig\_aai-resources.api.simpledemo.openecomp.org\_1
+    /opt/app/aai-resources/bin/dataSnapshot.sh
+
+1. After running that command, you should see the following line in the
+   standard output:
+
+    Snapshot written to
+    /opt/app/aai-resources/logs/data/dataSnapshots/dataSnapshot.graphSON.201709221713
+
+1. This file dataSnapshot.graphSON.201709221713 can be found in
+   /opt/aai/logroot/AAI-RESOURCES/data/dataSnapshots on the host vm
+
+2. If you want to restore the data from the snapshot, then you would run
+   this command:
+
+    docker exec -u aaiadmin -it
+    testconfig\_aai-resources.api.simpledemo.openecomp.org\_1
+    /opt/app/aai-resources/bin/dataRestoreFromSnapshot.sh
+    dataSnapshot.graphSON.201709221713
+
+1. The argument to the dataRestoreFromSnapshot.sh is the dataSnapshot
+   graphson file and it only needs the base name and expects to be found
+   in the host vm /opt/aai/logroot/AAI-RESOURCES/data/dataSnapshots.
+
+2. Once that command is run, you will be given a warning of 5 seconds to
+   quit the process as it will replace whatever you have in your A&AI
+   data with that snapshot and any current data thats not saved into a
+   snapshot will be lost.
diff --git a/docs/Getting Started/How_to_Docker_setup_on_Single_VM.rst b/docs/Getting Started/How_to_Docker_setup_on_Single_VM.rst
new file mode 100644 (file)
index 0000000..7776ebd
--- /dev/null
@@ -0,0 +1,56 @@
+.. contents::
+   :depth: 3
+..
+
+How to Docker setup on Single VM
+================================
+
+Step-by-step guide
+------------------
+
+1.  You would need to have root access to the vm
+
+2.  sudo su - root
+
+3.  cd /opt
+
+4.  git clone http://gerrit.onap.org/r/aai/test-config
+
+5.  cd test-config
+
+6.  In deploy\_vm1.sh comment out the lines 89-94 which should be an if
+    statement checking for the /opt/message-router folder
+
+7.  Create a directory called /opt/config
+
+    1. mkdir /opt/config/
+
+8.  Create a file called /opt/config/nexus\_username.txt containing the
+    text: docker
+
+    1. echo "docker" > /opt/config/nexus\_username.txt
+
+9.  Create a file called /opt/config/nexus\_password.txt containing the
+    text: docker
+
+    1. echo "docker" > /opt/config/nexus\_password.txt
+
+10. Create a file called /opt/config/dmaap\_topic.txt containing the
+    text: AAI-EVENT
+
+    1. echo " AAI-EVENT" > /opt/config/dmaap\_topic.txt
+
+11. Create a file called /opt/config/nexus\_docker\_repo.txt containing
+    text: nexus3.onap.org:10001
+
+    echo "nexus3.onap.org:10001" > /opt/config/nexus\_docker\_repo.txt
+
+1. Create a file called /opt/config/docker\_version.txt containing text:
+   1.1-STAGING-latest
+
+    echo "1.1-STAGING-latest" > /opt/config/docker\_version.txt
+
+1. Please note that in the previous step, docker version is currently
+   1.1-STAGING-latest and this will be changed later
+
+    ./deploy\_vm2.sh && ./deploy\_vm1.sh
diff --git a/docs/Getting Started/Queries/Policy_Named_Query.rst b/docs/Getting Started/Queries/Policy_Named_Query.rst
new file mode 100644 (file)
index 0000000..0dd004d
--- /dev/null
@@ -0,0 +1,182 @@
+.. contents::
+   :depth: 3
+..
+
+Policy Named Query
+==================
+
+**Example Request**
+
+POST /aai/search/named-query
+
+{
+
+"query-parameters": {
+
+"named-query": {
+
+"named-query-uuid": "a93ac487-409c-4e8c-9e5f-334ae8f99087"
+
+}
+
+},
+
+"instance-filters":{
+
+"instance-filter":[ {
+
+"generic-vnf": {
+
+"vnf-id": "de7cc3ab-0212-47df-9e64-da1c79234deb"
+
+}
+
+} ] }
+
+}
+
+**Example Response**
+
+{
+
+"inventory-response-item": [
+
+{
+
+"model-name": "service-instance",
+
+"generic-vnf": {
+
+"vnf-id": "de7cc3ab-0212-47df-9e64-da1c79234deb",
+
+"vnf-name": "ZRDM2MMEX39",
+
+"vnf-type": "vMME Svc Jul 14/vMME VF Jul 14 1",
+
+"service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+
+"orchestration-status": "active",
+
+"in-maint": false,
+
+"is-closed-loop-disabled": false,
+
+"resource-version": "1503082370097",
+
+"model-invariant-id": "82194af1-3c2c-485a-8f44-420e22a9eaa4",
+
+"model-version-id": "46b92144-923a-4d20-b85a-3cbd847668a9"
+
+},
+
+"extra-properties": {},
+
+"inventory-response-items": {
+
+"inventory-response-item": [
+
+{
+
+"model-name": "service-instance",
+
+"service-instance": {
+
+"service-instance-id": "37b8cdb7-94eb-468f-a0c2-4e3c3546578e",
+
+"service-instance-name": "Changed Service Instance NAME",
+
+"model-invariant-id": "82194af1-3c2c-485a-8f44-420e22a9eaa4",
+
+"model-version-id": "46b92144-923a-4d20-b85a-3cbd847668a9",
+
+"resource-version": "1503082993532",
+
+"orchestration-status": "Active"
+
+},
+
+"extra-properties": {},
+
+"inventory-response-items": {
+
+"inventory-response-item": [
+
+{
+
+"model-name": "pnf",
+
+"generic-vnf": {
+
+"vnf-id": "jimmy-test",
+
+"vnf-name": "jimmy-test-vnf",
+
+"vnf-type": "vMME Svc Jul 14/vMME VF Jul 14 1",
+
+"service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+
+"orchestration-status": "active",
+
+"in-maint": false,
+
+"is-closed-loop-disabled": false,
+
+"resource-version": "1504013830207",
+
+"model-invariant-id": "862b25a1-262a-4961-bdaa-cdc55d69785a",
+
+"model-version-id": "e9f1fa7d-c839-418a-9601-03dc0d2ad687"
+
+},
+
+"extra-properties": {}
+
+},
+
+{
+
+"model-name": "service-instance",
+
+"generic-vnf": {
+
+"vnf-id": "jimmy-test-vnf2",
+
+"vnf-name": "jimmy-test-vnf2-named",
+
+"vnf-type": "vMME Svc Jul 14/vMME VF Jul 14 1",
+
+"service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+
+"orchestration-status": "active",
+
+"in-maint": false,
+
+"is-closed-loop-disabled": false,
+
+"resource-version": "1504014833841",
+
+"model-invariant-id": "82194af1-3c2c-485a-8f44-420e22a9eaa4",
+
+"model-version-id": "46b92144-923a-4d20-b85a-3cbd847668a9"
+
+},
+
+"extra-properties": {}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
diff --git a/docs/Getting Started/Queries/vnf_to_esr_system_info_Named_Query.rst b/docs/Getting Started/Queries/vnf_to_esr_system_info_Named_Query.rst
new file mode 100644 (file)
index 0000000..7ad412a
--- /dev/null
@@ -0,0 +1,368 @@
+.. contents::
+   :depth: 3
+..
+
+vnf to esr-system-info Named Query
+==================================
+
+**Example Request**
+
+POST https://127.0.0.1:8443/aai/search/named-query
+
+{
+
+"query-parameters": {
+
+"named-query": {
+
+"named-query-uuid": "037eb932-edac-48f5-9782-c19c0aa5a031"
+
+}
+
+},
+
+"instance-filters":{
+
+"instance-filter":[ {
+
+"generic-vnf": {
+
+"vnf-id": "de7cc3ab-0212-47df-9e64-da1c79234deb"
+
+}
+
+} ]
+
+}
+
+}
+
+**Example Response**
+
+{
+
+"inventory-response-item": [
+
+{
+
+"model-name": "service-instance",
+
+"generic-vnf": {
+
+"vnf-id": "de7cc3ab-0212-47df-9e64-da1c79234deb",
+
+"vnf-name": "ZRDM2MMEX39",
+
+"vnf-type": "vMME Svc Jul 14/vMME VF Jul 14 1",
+
+"service-id": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+
+"orchestration-status": "active",
+
+"in-maint": false,
+
+"is-closed-loop-disabled": false,
+
+"resource-version": "1504805258328",
+
+"model-invariant-id": "82194af1-3c2c-485a-8f44-420e22a9eaa4",
+
+"model-version-id": "46b92144-923a-4d20-b85a-3cbd847668a9"
+
+},
+
+"extra-properties": {},
+
+"inventory-response-items": {
+
+"inventory-response-item": [
+
+{
+
+"vserver": {
+
+"vserver-id": "example-vserver-id-val-90579",
+
+"vserver-name": "example-vserver-name-val-92986",
+
+"vserver-name2": "example-vserver-name2-val-77692",
+
+"prov-status": "example-prov-status-val-23854",
+
+"vserver-selflink": "example-vserver-selflink-val-14328",
+
+"in-maint": true,
+
+"is-closed-loop-disabled": true,
+
+"resource-version": "1504808495581"
+
+},
+
+"extra-properties": {},
+
+"inventory-response-items": {
+
+"inventory-response-item": [
+
+{
+
+"tenant": {
+
+"tenant-id": "example-tenant-id-val-89637",
+
+"tenant-name": "example-tenant-name-val-36717",
+
+"resource-version": "1504808495527"
+
+},
+
+"extra-properties": {},
+
+"inventory-response-items": {
+
+"inventory-response-item": [
+
+{
+
+"cloud-region": {
+
+"cloud-owner": "example-cloud-owner-val-44086",
+
+"cloud-region-id": "example-cloud-region-id-val-67393",
+
+"cloud-type": "example-cloud-type-val-13758",
+
+"owner-defined-type": "example-owner-defined-type-val-38571",
+
+"cloud-region-version": "example-cloud-region-version-val-130",
+
+"identity-url": "example-identity-url-val-73825",
+
+"cloud-zone": "example-cloud-zone-val-97510",
+
+"complex-name": "example-complex-name-val-28459",
+
+"sriov-automation": false,
+
+"resource-version": "1504808495472"
+
+},
+
+"extra-properties": {},
+
+"inventory-response-items": {
+
+"inventory-response-item": [
+
+{
+
+"esr-system-info": {
+
+"esr-system-info-id": "example-esr-system-info-id-val-25777",
+
+"system-name": "example-system-name-val-29070",
+
+"type": "example-type-val-85254",
+
+"vendor": "example-vendor-val-94515",
+
+"version": "example-version-val-71880",
+
+"service-url": "example-service-url-val-36193",
+
+"user-name": "example-user-name-val-77399",
+
+"password": "example-password-val-46071",
+
+"system-type": "example-system-type-val-76197",
+
+"protocal": "example-protocal-val-52954",
+
+"ssl-cacert": "example-ssl-cacert-val-75021",
+
+"ssl-insecure": true,
+
+"ip-address": "example-ip-address-val-44431",
+
+"port": "example-port-val-93234",
+
+"cloud-domain": "example-cloud-domain-val-76370",
+
+"default-tenant": "example-tenant-id-val-89637",
+
+"resource-version": "1504808496522"
+
+},
+
+"extra-properties": {}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
+
+},
+
+{
+
+"vserver": {
+
+"vserver-id": "example-vserver-id-val-2",
+
+"vserver-name": "example-vserver-name-val-2",
+
+"vserver-name2": "example-vserver-name2-val-2",
+
+"prov-status": "example-prov-status-val-2",
+
+"vserver-selflink": "example-vserver-selflink-val-2",
+
+"in-maint": true,
+
+"is-closed-loop-disabled": true,
+
+"resource-version": "1504817435622"
+
+},
+
+"extra-properties": {},
+
+"inventory-response-items": {
+
+"inventory-response-item": [
+
+{
+
+"tenant": {
+
+"tenant-id": "example-tenant-id-val-2",
+
+"tenant-name": "example-tenant-name-val-2",
+
+"resource-version": "1504817435574"
+
+},
+
+"extra-properties": {},
+
+"inventory-response-items": {
+
+"inventory-response-item": [
+
+{
+
+"cloud-region": {
+
+"cloud-owner": "example-cloud-owner-val-2",
+
+"cloud-region-id": "example-cloud-region-id-val-2",
+
+"cloud-type": "example-cloud-type-val-2",
+
+"owner-defined-type": "example-owner-defined-type-val-2",
+
+"cloud-region-version": "example-cloud-region-version-val-2",
+
+"identity-url": "example-identity-url-val-2",
+
+"cloud-zone": "example-cloud-zone-val-2",
+
+"complex-name": "example-complex-name-val-2",
+
+"sriov-automation": false,
+
+"resource-version": "1504817435502"
+
+},
+
+"extra-properties": {},
+
+"inventory-response-items": {
+
+"inventory-response-item": [
+
+{
+
+"esr-system-info": {
+
+"esr-system-info-id": "example-esr-system-info-id-val-2",
+
+"system-name": "example-system-name-val-2",
+
+"type": "example-type-val-2",
+
+"vendor": "example-vendor-val-2",
+
+"version": "example-version-val-2",
+
+"service-url": "example-service-url-val-2",
+
+"user-name": "example-user-name-val-2",
+
+"password": "example-password-val-2",
+
+"system-type": "example-system-type-val-2",
+
+"protocal": "example-protocal-val-2",
+
+"ssl-cacert": "example-ssl-cacert-val-2",
+
+"ssl-insecure": true,
+
+"ip-address": "example-ip-address-val-2",
+
+"port": "example-port-val-2",
+
+"cloud-domain": "example-cloud-domain-val-2",
+
+"default-tenant": "example-tenant-id-val-2",
+
+"resource-version": "1504817436023"
+
+},
+
+"extra-properties": {}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
index 833e1aa..f1c8c61 100644 (file)
@@ -1,8 +1,12 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 
-TODO Add files to toctree and delete this header
+A&AI Common Documentation Repository
 ------------------------------------------------
 .. toctree::
-   :maxdepth: 1
-
+   :maxdepth: 3
+   :numbered:
+   :titlesonly:
+   :glob:
 
+   :AAI*
+   :Getting*