This guide will illustrate setting up an A&AI development environment for R3 Casablanca in Ubuntu 16.04.
...
- install openjdk 8
- sudo apt install openjdk-8-jdk
- sudo apt install openjdk-8-jdk
- Install single node hadoop/janusgraph
- $ wget http://github.com/JanusGraph/janusgraph/releases/download/v0.2.0/janusgraph-0.2.0-hadoop2.zip
- $ unzip janusgraph-0.2.0-hadoop2.zip
- $ cd janusgraph-0.2.0-hadoop2/
- $ ./bin/janusgraph.sh start, # make sure you are not a root user as elasticsearch cannot be run as root. Response looks like:
Forking Cassandra...
Running `nodetool statusthrift`... OK (returned exit status 0 and printed string "running").
Forking Elasticsearch...
Connecting to Elasticsearch (127.0.0.1:9200)...... OK (connected to 127.0.0.1:9200).
Forking Gremlin-Server...
Connecting to Gremlin-Server (127.0.0.1:8182).... OK (connected to 127.0.0.1:8182).
Run gremlin.sh to connect.
you can verify whether everything is running by executing
./bin/janusgraph.sh statusGremlin-Server (org.apache.tinkerpop.gremlin.server.GremlinServer) is running with pid 9835
Elasticsearch (org.elasticsearch.bootstrap.Elasticsearch) is running with pid 9567
Cassandra (org.apache.cassandra.service.CassandraDaemon) is running with pid 9207
- Install haproxy
- $ sudo apt-get -y install haproxy
- $ <path-to-haproxy>/haproxy -v
HA-Proxy version 1.6.3 2015/12/25
Copyright 2000-2015 Willy Tarreau <willy@haproxy.org> Install the attached haproxy.cfg file in /etc/haproxy
$ wget https://wiki.onap.org/download/attachments/45306687/haproxy.cfg
- $ sudo cp haproxy.cfg /etc/haproxy
- $ sudo mkdir /usr/local/etc/haproxy
Install the attached aai.pem file in /etc/ssl/private
$ wget https://wiki.onap.org/download/attachments/45306687/aai.pem
- $ sudo cp aai.pem /etc/ssl/private/aai.pem
- $ sudo chmod 640 /etc/ssl/private/aai.pem
- $ sudo chown root:ssl-cert /etc/ssl/private/aai.pem
Add these hostnames to the loopback interface in /etc/hosts:
127.0.0.1 localhost aai-traversal.api.simpledemo.openecomp.org aai-resources.api.simpledemo.openecomp.org
- $ sudo service haproxy restart
- follow the initial setup instructions in Setting Up Your Development Environment e.g.
- $ sudo apt-get install git
- $ sudo apt-get install npm
- $ sudo apt-get install maven
- $ sudo apt-get install docker.ioIf you did not originally create a settings.xml file when setting up the dev environment, you may
- $ wget https://git.onap.org/oparent/plain/settings.xml
- $ mkdir ~/.m2
- cp settings.xml ~/.m2
- If you get an error on some of the repos saying that oparent is unresolvable. Using , using the example settings.xml file should solve this problem: Setting Up Your Development Environment#MavenExamplesettings.xml
- Set up repos.
- $ mkdir -p ~/src/aai
- $ cd ~/src/aai
- $ git clone ssh://<username>@gerrit.onap.org:29418/aai/aai-common
- $ git clone ssh://<username>@gerrit.onap.org:29418/aai/traversal
- $ git clone ssh://<username>@gerrit.onap.org:29418/aai/resources
- $ git clone ssh://<username>@gerrit.onap.org:29418/aai/graphadmin
- $ git clone ssh://<username>@gerrit.onap.org:29418/aai/logging-service
- Build aai-common, traversal, graphadmin, logging-service, and resources
- $ cd ~/src/aai/aai-common
- $ git checkout casablanca
- $ mvn -DskipTests clean install
Should result in BUILD SUCCESS - $ cd ~/src/aai/resources
- $ git checkout casablanca
- $ mvn -DskipTests clean install
Should result in BUILD SUCCESS - $ cd ~/src/aai/graphadmin
- $ git checkout casablanca
- $ mvn -DskipTests clean install
Should result in BUILD SUCCESS - $ cd ~/src/aai/logging-service
- $ git checkout casablanca
- $ mvn -DskipTests clean install
Should result in BUILD SUCCESS - $ cd ~/src/aai/traversal
- $ git checkout casablanca
- mvn -DskipTests clean install
Should result in BUILD SUCCESS
- Janus setup
- Modify both janus-cached.properties and janus-realtime.properties to the following (for all MS’s that will connect to the local Cassandra backend)
storage.backend=cassandra
storage.hostname=localhost
storage.cassandra.keyspace=onap # or different keyspace name of your choosing
- update ~/src/aai/resources/aai-resources/src/main/resources/etc/appprops/janusgraph-cached.properties
- update ~/src/aai/resources/aai-resources/src/main/resources/etc/appprops/janusgraph-realtime.properties
- update ~/src/aai/traversal/aai-traversal/src/main/resources/etc/appprops/janusgraph-cached.properties
- update ~/src/aai/traversal/aai-traversal/src/main/resources/etc/appprops/janusgraph-realtime.properties
- update ~/src/aai/graphadmin/src/main/resources/etc/appprops/janusgraph-cached.properties
- update ~/src/aai/graphadmin/src/main/resources/etc/appprops/janusgraph-realtime.properties
- 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).
- Put createDbSchemaLocal.sh on your dev machine. Adjust your build version accordingly, as of the casablanca release the version is 1.0.1.
$ export PROJECT_HOME=~/src/aai/graphadmin/target/aai-graphadmin-1.0.1-SNAPSHOT-build
$ sh createDbSchemaLocal.sh
You should see:-- loading schema into JanusGraph
Successfully loaded the schema to inmemory
-- loading schema into JanusGraph
Successfully loaded the schema to inmemory
-- Loading new schema elements into JanusGraph --
-- graph commit
-- graph shutdown
- Modify both janus-cached.properties and janus-realtime.properties to the following (for all MS’s that will connect to the local Cassandra backend)
- Start the "resources" microservice
- Resources runs on port 8447. Go to the resources directory
$ cd ~/src/aai/resources - 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" - Start the microservice - adjust your build version accordingly, as of the casablanca release the version is 1.3.4
$ java -DAJSC_HOME=aai-resources -DBUNDLECONFIG_DIR=src/main/resources/ -jar aai-resources/target/aai-resources-1.3.4-SNAPSHOT.jar
Should see something like this: Resources Microservice Started
- Resources runs on port 8447. Go to the resources directory
- Verify the resources microservice (this example uses Postman utility for Google Chrome)
- Use basic auth, user = AAI, pw = AAI
- Set the X-TransactionId header (in the example below, the value is 9999)
- Set the X-FromAppId header (in the example below, the value is jimmy-postman)
- Perform a GET of https://127.0.0.1:8443/aai/v11/network/vces
- You should see an error as below, 404 Not Found, ERR.5.4.6114. This indicates that the service is functioning normally:
- Start the "traversal" microservice
- Traversal runs on port 8446. Go to the traversal directory
$ cd ~/src/aai/traversal - 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" - Start the microservice
$ java -DAJSC_HOME=aai-traversal -DBUNDLECONFIG_DIR=src/main/resources/ -jar aai-traversal/target/aai-traversal-1.2.0-SNAPSHOT.jar
Should see something like this: Traversal Microservice Started
- Traversal runs on port 8446. Go to the traversal directory
- Verify the traversal microservice by executing attached postman AAI API calls
- Set up the widget models
This will set up the postman to add widget models: Add Widget Models.postman_collection.json - Create a runner using this file: models.csv
- Run the test runner
- Add a named query called "getComponentList" (this named query is used by VID): NamedQuery.postman_collection.json
- Add objects: Add Instances for Named Query.postman_collection.json (when using vXX in place of v11, replace the xmlns "http://org.openecomp.aai.inventory/v11" with "http://org.onap.aai.inventory/vXX" in the Body of the PUT request)
- Execute named-query: Execute Named Query.postman_collection.json
You should see something like the following:
- Set up the widget models
- Your A&AI instance is now running, both the resources and traversal microservices are working properly with a local janus graph.
- Next: Tutorial: Making and Testing a Schema Change in A&AI
...