aboutsummaryrefslogtreecommitdiffstats
path: root/docs/developer-guide.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/developer-guide.rst')
-rw-r--r--docs/developer-guide.rst106
1 files changed, 106 insertions, 0 deletions
diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst
new file mode 100644
index 0000000..9e29d2c
--- /dev/null
+++ b/docs/developer-guide.rst
@@ -0,0 +1,106 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Developer Guide
+===============
+
+Etsicatalog is a web application based on python3 and Django framework.
+
+Pre-requisites
+--------------
+
+* Python3 & pip
+* MariaDB
+
+Etsicatalog can run standalone. However, if you want to try the whole functionality, you should have other components like SDC, DMaap(Non-mandatory), MSB(Non-mandatory) running.
+
+You should set the component information in the environment variables as followed:
+::
+
+ SDC_ADDR=https://{SDC_IP}:30204
+ MSB_ENABLED=true
+ MSB_ADDR=https://{MSB_IP}:30283
+ DMAAP_ENABLED=true
+ DMAAP_ADDR=https://{DMAAP_IP}:30226
+
+Note:
+
+* The default value of MSB_ENABLED is **false**. Since Guilin Release, MSB is a **Non-mandatory** component. If you have no MSB installed or intention to use it, you can just omit MSB_ADDR and MSB_ENABLED.
+* The default value of DMAAP_ENABLED is **false**. If you want to use SDC subscription and notification function, you should set it true and set DMAAP_ADDR properly.
+
+Build & Run
+-----------
+
+**Clone repository**:
+::
+
+ $ git clone https://gerrit.onap.org/r/modeling/etsicatalog
+ $ cd etsicatalog
+
+**Create database**::
+
+ $ cd /resources/dbscripts/mysql
+
+Run modeling-etsicatalog-createdb.sql to create database.
+
+Run commands followed to init database::
+
+ $ python manage.py makemigrations
+ $ python manage.py makemigrations database
+ $ python manage.py migrate
+ $ python manage.py migrate database
+
+Review and edit \catalog\pub\config\config.py
+
+MySQL default configuration is as follows::
+
+ DB_IP = "127.0.0.1"
+ DB_PORT = 3306
+ DB_NAME = "etsicatalog"
+ DB_USER = "etsicatalog"
+ DB_PASSWD = "etsicatalog"
+
+**Start server**::
+
+ $ python manage.py runserver 8806
+
+
+
+Test
+----
+
+**Run Healthcheck**::
+
+ GET /api/catalog/v1/health_check
+
+You should get::
+
+ {
+ "status": "active"
+ }
+
+**View API document**:
+
+http://127.0.0.1:8806/api/catalog/v1/swagger
+
+
+Run from Docker image
+----------------------
+
+You can run Modeling/etsicatalog directly from the docker image by following commands:
+::
+
+ $ docker run -d -p 3306:3306 --name etsicatalog-db -v /var/lib/mysql -e MYSQL_USER="etsicatalog" -e MYSQL_PASSWORD="etsicatalog" -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE="etsicatalog" nexus3.onap.org:10001/library/mariadb
+
+ $ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' etsicatalog-db
+ Get the IP of etsicatalog-db
+
+ $ docker run -d --name modeling-etsicatalog -v /var/lib/mysql -e DB_IP=<ip address> -e SDC_ADDR=<ip address> nexus3.onap.org:10001/onap/modeling/etsicatalog
+
+**Note**:
+
+You can also build the docker image instead of using the existed image from nexus3.onap.org:10001.
+::
+
+ $ cd docker
+ $ docker build -t ${IMAGE_NAME} . \ No newline at end of file