aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/Getting Started/AAI_Developer_Environment_Setup.rst3
-rw-r--r--docs/Getting Started/Edge_Rules.rst161
-rw-r--r--docs/Getting Started/How_to_AAI_data_snapshot_and_restore_in_ONAP_1_1.rst46
-rw-r--r--docs/Getting Started/How_to_Docker_setup_on_Single_VM.rst56
-rw-r--r--docs/Getting Started/Queries/Policy_Named_Query.rst182
-rw-r--r--docs/Getting Started/Queries/vnf_to_esr_system_info_Named_Query.rst368
-rw-r--r--docs/index.rst10
7 files changed, 822 insertions, 4 deletions
diff --git a/docs/Getting Started/AAI_Developer_Environment_Setup.rst b/docs/Getting Started/AAI_Developer_Environment_Setup.rst
index ed7a7397..10f45dfa 100644
--- a/docs/Getting Started/AAI_Developer_Environment_Setup.rst
+++ b/docs/Getting Started/AAI_Developer_Environment_Setup.rst
@@ -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
index 00000000..8950d3eb
--- /dev/null
+++ b/docs/Getting Started/Edge_Rules.rst
@@ -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
index 00000000..004a0c98
--- /dev/null
+++ b/docs/Getting Started/How_to_AAI_data_snapshot_and_restore_in_ONAP_1_1.rst
@@ -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
index 00000000..7776ebdb
--- /dev/null
+++ b/docs/Getting Started/How_to_Docker_setup_on_Single_VM.rst
@@ -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
index 00000000..0dd004d0
--- /dev/null
+++ b/docs/Getting Started/Queries/Policy_Named_Query.rst
@@ -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
index 00000000..7ad412a9
--- /dev/null
+++ b/docs/Getting Started/Queries/vnf_to_esr_system_info_Named_Query.rst
@@ -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": {}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
+
+}
+
+]
+
+}
diff --git a/docs/index.rst b/docs/index.rst
index 833e1aa9..f1c8c617 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -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*