From 0e7cf180513e03a8ffb60dde3ab9f76e7449b85c Mon Sep 17 00:00:00 2001 From: "O'Connor, Lina (lo8949)" Date: Fri, 6 Oct 2017 11:48:43 -0600 Subject: Adding Developer Environment Setup Document Issue ID: AAI-218 Change-Id: I68f8780056511f1cd32fca6527bfbbda6f462017 Signed-off-by: O'Connor, Lina (lo8949) --- .../AAI_Developer_Environment_Setup.rst | 264 +++++++++++++++++++++ 1 file changed, 264 insertions(+) create mode 100644 docs/Getting Started/AAI_Developer_Environment_Setup.rst (limited to 'docs/Getting Started') diff --git a/docs/Getting Started/AAI_Developer_Environment_Setup.rst b/docs/Getting Started/AAI_Developer_Environment_Setup.rst new file mode 100644 index 00000000..ed7a7397 --- /dev/null +++ b/docs/Getting Started/AAI_Developer_Environment_Setup.rst @@ -0,0 +1,264 @@ +.. contents:: + :depth: 3 +.. + +A&AI Developer Environment Setup +================================ + +This guide will illustrate setting up an A&AI development environment in +Ubuntu 16.04.   + +For this exercise, I set up a new instance of Ubuntu in Virtualbox and +gave it 16G RAM, 200GB dynamically allocated storage, and 3 processors. + +1. install openjdk 8 + + 1. sudo apt install openjdk-8-jdk + +2. Install single node hadoop/titan + + 1. $ wget + http://s3.thinkaurelius.com/downloads/titan/titan-1.0.0-hadoop1.zip + + 2. $ unzip titan-1.0.0-hadoop1.zip + + 3. $ cd titan-1.0.0-hadoop1 + + 4. $ sudo ./bin/titan.sh start + +3. Install haproxy + + 1. $ sudo apt-get -y install haproxy + + 2. | $ haproxy -v + | HA-Proxy version 1.6.3 2015/12/25 + | Copyright 2000-2015 Willy Tarreau + `__> + + 3. Install this haproxy.cfg file in /etc/haproxy + + `haproxy.cfg `__ + +1. $ sudo cp aai.pem /etc/ssl/private/aai.pem + +2. $ sudo chmod 640 /etc/ssl/private/aai.pem + +3. | $ sudo chown root:ssl-cert /etc/ssl/private/aai.pem + | `aai.pem `__ + +4. sudo mkdir /usr/local/etc/haproxy + +5. Add these hostnames to the loopback interface in /etc/hosts:  + + 1. 127.0.0.1 localhost + `aai-traversal.api.simpledemo.openecomp.org `__ + aai-resour\ `ces.api.simpledemo.openecomp.or `__\ g + +6. $ sudo service haproxy restart + +1. Set up repos. First, follow the initial setup instructions + in \ `Setting Up Your Development + Environment `__ + + 1. $ mkdir -p ~/LF/AAI + + 2. $ cd ~/LF/AAI + + 3. $ git clone + ssh://%3Cusername%3E@gerrit.onap.org:29418/aai/aai-common + + 4. $ git + clone \ `ssh://@gerrit.onap.org:29418/aai/traversal `__ + + 5. $ git + clone \ `ssh://@gerrit.onap.org:29418/aai/resources `__ + + 6. $ git clone + ssh://%3Cusername%3E@gerrit.onap.org:29418/aai/logging-service + + 7. If you did not originally create a settings.xml file when setting + up the dev environment, you may get an error on some of the repos + saying that oparent is unresolvable.  Using the example + settings.xml file should solve this problem: \ `Setting Up Your + Development + Environment#MavenExamplesettings.xml `__ + +2. Build aai-common, traversal, and resources + + 1. $ cd ~/LF/AAI/aai-common + + 2. | $ mvn clean install + | Should result in BUILD SUCCESS + + 3. $ cd ~/LF/AAI/resources + + 4. | $ mvn clean install + | Should result in BUILD SUCCESS + + 5. $ cd ~/LF/AAI/logging-service + + 6. | $ mvn clean install + | Should result in BUILD SUCCESS + + 7. | $ cd ~/LF/AAI/traversal + | I had to add the following to traversal/pom.xml to get + traversal to build:  + + 8. + + 9. + + 10. maven-restlet + + 11. Restlet repository + + 12. https://maven.restlet.com + + 13. + + + +1. | mvn clean install + | Should result in BUILD SUCCESS + +1. Titan setup + + 1. | Modify both titan-cached.properties and + titan-realtime.properties to the following (for all MS’s that + will connect to the local Cassandra backend) + | storage.backend=\ *cassandra* + | storage.hostname=\ *localhost* + + 2. update + ~/LF/AAI/resources/aai-resources/bundleconfig-local/etc/appprops/titan-cached.properties + + 3. update + ~/LF/AAI/resources/aai-resources/bundleconfig-local/etc/appprops/titan-realtime.properties + + 4. update + ~/LF/AAI/traversal/aai-traversal/bundleconfig-local/etc/appprops/titan-cached.properties + + 5. update + ~/LF/AAI/traversal/aai-traversal/bundleconfig-local/etc/appprops/titan-realtime.properties + + 6. | The following property can be added to specify the keyspace + name, each time you do this step (g) should be done. If not + specified Titan will try to create/use a defaulted keyspace + named titan. + | storage.cassandra.keyspace= + + 7. From the resources MS run the create db schema standalone program. + + 8. ***NOTE***: The first thing that would need to be done is adding + the schema to the local instance. (this will need to be done + whenever using a new keyspace or after wiping the data). + + Runnable class com.att.aai.dbgen.GenTester with the following vm + args. + +                 -DAJSC\_HOME=~/LF/AAI/resources + -DBUNDLECONFIG\_DIR="bundleconfig-local" + +1. | Here's the command I used, and it worked: + | $ cd ~/LF/AAI; java + -DAJSC\_HOME=/home/jimmy/LF/AAI/resources/aai-resources + -DBUNDLECONFIG\_DIR="bundleconfig-local" -cp + aai-common/aai-core/target/aai-core-1.1.0-SNAPSHOT.jar:resources/aai-resources/target/aai-resources.jar:resources/aai-resources/target/userjars/\* + org.openecomp.aai.dbgen.GenTester + +1. Start the "resources" microservice + + 1. | Resources runs on port 8446.  Go to the resources directory + | $ cd ~/LF/AAI/resources + + 2. | Set the debug port to 9446 + | $ export MAVEN\_OPTS="-Xms1024m -Xmx5120m -XX:PermSize=2024m + -Xdebug -Xnoagent -Djava.compiler=NONE + -Xrunjdwp:transport=dt\_socket,address=9446,server=y,suspend=n" + + 3. | Start the microservice + | $ mvn -P runAjsc + +2. Verify the resources microservice (this example uses Postman utility + for Google Chrome) + + 1. Use basic auth, user = AAI, pw = AAI + + 2. Set the X-TransactionId header (in the example below, the value is + 9999) + + 3. Set the X-FromAppId header (in the example below, the value is + jimmy-postman) + + 4. Perform a GET of https://127.0.0.1:8443/aai/v11/network/vces + + 5. You should see an error as below, 404 Not Found, ERR.5.4.6114.  + This indicates that the service is functioning normally: + ++------------------------------------------+ +| |C:\\9cb03b5a507d917b3f460df1c1d95eea| | ++------------------------------------------+ + +1. +2. Start the "traversal" microservice + + 1. | Traversal runs on port 8447.  Go to the traversal directory + | $ cd ~/LF/AAI/traversal + + 2. | Set the debug port to 9447 + | $ export MAVEN\_OPTS="-Xms1024m -Xmx5120m -XX:PermSize=2024m + -Xdebug -Xnoagent -Djava.compiler=NONE + -Xrunjdwp:transport=dt\_socket,address=9447,server=y,suspend=n" + + 3. | Start the microservice + | $ mvn -P runAjsc  + | Should see something like this: 2017-07-26 + 12:46:35.524:INFO:oejs.Server:com.att.ajsc.runner.Runner.main(): + Started @25827ms + +3. Verify the traversal microservice + + 1. | Set up the widget models + | This will set up the postman to add widget models: \ `Add Widget + Models.postman\_collection.json `__\ `NamedQuery.postman\_collection.json `__ + + 2. Create a runner using this + file: \ `models.csv `__ + + 3. | Run the test runner + | |C:\\de01805e8408f48478705feb59a27e02| + + 4. | Add a named query called "getComponentList" (this named query is + used by + VID): \ `NamedQuery.postman\_collection.json `__ + | |C:\\5cdb29c4d0655cf5ede2011736938e58| + + 5. Add objects: \ `Add Instances for Named + Query.postman\_collection.json `__ (replacing + the xmlns "http://org.openecomp.aai.inventory/v11" with + "http://org.onap.aai.inventory/v11" in the Body of the PUT + request) + + 6. | Execute named-query: \ `Execute Named + Query.postman\_collection.json `__ + | You should see something like the following: + | |C:\\a67954cfbcfebb8d7a7f48bba2a26195| + +4. Your A&AI instance is now running, both the resources and traversal + microservices are working properly with a local titan graph.  + +5. Next: \ `Tutorial: Making and Testing a Schema Change in + A&AI `__ + +.. |C:\\9cb03b5a507d917b3f460df1c1d95eea| image:: media/image1.png + :width: 4.87500in + :height: 2.87500in +.. |C:\\de01805e8408f48478705feb59a27e02| image:: media/image2.tmp + :width: 4.87500in + :height: 3.75000in +.. |C:\\5cdb29c4d0655cf5ede2011736938e58| image:: media/image3.png + :width: 4.87500in + :height: 4.15000in +.. |C:\\a67954cfbcfebb8d7a7f48bba2a26195| image:: media/image4.png + :width: 4.87500in + :height: 4.15000in -- cgit 1.2.3-korg