Setting up IDE
You can set up the SDNC IDE by following instructions from Setting Up Your Development Environment with the additions described below.
Install sonarlint plugin
<coming soon>
Download the Source Code
Create Your Linux Foundation Account
If you already have a Linux Foundation account, you can skip this section.
You will need linux foundation account to submit code change to ONAP projects repos. If you only want to read the code, you can skip this step.
To create your linux foundation account, go to Linux Foundation Identity page, and select I need to create a Linux Foundation ID, the following page will be shown:
Filling the information and click on Create new account to proceed account creation.
Download SDNC Projects
Follow steps in Get git command from ONAP gerrit to get the git clone command and clone each of the following SDNC projects:
Project Name | Project Description | has code |
---|---|---|
sdnc/adaptors | SDNC adaptors | |
sdnc/architecture | SDNC architectural artifacts (e.g. blueprints) | |
sdnc/core | SDNC core platform | |
sdnc/features | SDNC Karaf features | |
sdnc/northbound | SDNC northbound adaptors | java |
sdnc/oam | SDNC OA&M tools | bash, javascript, python, DGs |
sdnc/parent | Parent POMS to be used by SDNC components | |
sdnc/plugin | SDNC plugins |
Note: The ONAP SDNC projects are more like a demo version of ECOMP's SDN-GC.
Download CCSDK Projects
Follow steps in Get git command from ONAP gerrit to get the git clone command and clone each of the following CCSDK projects:
Project Name | Project Description | has code |
---|---|---|
ccsdk/dashboard | Opeations Manager Dashboard | |
ccsdk/distribution | CCSDK distribution packaging (e.g. docker containers) | |
ccsdk/parent | Parent POMs to be used by CCSDK clients | |
ccsdk/platform/blueprints | Blueprints. not in Amesterdam release | |
ccsdk/platform/nbapi | Northbound API | |
ccsdk/platform/plugins | Platform plugins | |
ccsdk/sli/adaptors | Common adaptors for use by directed graphs | |
ccsdk/sli/core | Core Service Logic Interpreter classes | |
ccsdk/sli/northbound | Common northbound APIS related to service logic interpreter | |
ccsdk/sli/plugins | Common plugins used by direcged graphs | python |
ccsdk/storage/esaas | Elastic Storage as a Service. not in Amesterdam release | |
ccsdk/storage/pgaas | PGAAS (PostgreSQL as a Service) | java, python, bash |
ccsdk/utils | Utilities | bash, yaml |
Get git clone Command From ONAP gerrit
Use your linux foundation account to login onto ONAP projects.
Get Project list by entering the project key name in the Filter, for example sdnc, this list of projects under sdnc will be shown as below:
Click on the wanted project from the list, the General page of the selected project will be shown. the following is the General page of sdnc/adaptors:
Now click on Clone with commit-msg hook, then click on http, then click on the notepad icon.
The git clone command for the selected project is now copied into your clipboard. You do paste to use it at where-ever you want to.
View Code in gerrit Website
ONAP code can also be viewed from gerrit web site as below (sdnc/adaptors project is used as the example here):
To view the coce through gerrit client, first follow steps in SDNC - Development Environment Setup to get the Projects list page.
Then, choose either one of the following option to view the code of the desired project.
Option 1: view through "gitweb" option in project list page
Note: this option will bring you to, and only to, the HEAD branch which is the master branch.
In the project list page, click on the gitweb under the Repository Browser column of your project row.
The master branch's summary page will be shown up. Click on the tree option.
Now, the repo details page will be shown and you can view the code in master branch from there.
Option 2: view from "Branches" option in project page
Note: this option allows you to select a particular branch to view it code.
In the project list page, click the project under the Project Name column. (using sdnc/adaptors project as example here)
It takes you to the project General page, click on the Branches option.
The project page will be switched to Branches page. Check out the Branch Name column, click the gitweb on the same row of the desired branch.
The project Summary page of the selected branch will be shown up. Click on the tree option.
Now, the repo details page will be shown and you can view the code in master branch from there.
Compiling
coming soon
Unit Testing
coming soon
How to Commit Code
coming soon
How to Deploy a minimal ONAP sdnc environment
This tutorial is based on ONAP-integration project[1] which utilizes Vagrant[2], a deployment tool to build an ONAP environment.
ONAP-integration
"Integration framework, automated tools, code and scripts, best practice guidance related to cross-project Continuous System Integration Testing (CSIT), and delivery of ONAP."
Prerequisites
Tool | version | Introduction | Download Link |
---|---|---|---|
Vagrant | 1.9.5 | https://www.vagrantup.com/ | https://releases.hashicorp.com/vagrant/?_ga=2.74767696.373821479.1506869076-1225456615.1499750393 |
Virtualbox | 5.1.20 | https://www.virtualbox.org/ | https://www.virtualbox.org/wiki/Download_Old_Builds_5_1 |
Git | 2.14.3 | https://git-scm.com/ | https://git-scm.com/downloads |
(1) After installation, make sure that your system is restarted in order to let configuration be activated.
(2) Instead of using Git bash, Cygwin could be also used and make sure "dos2unix" package is installed which will be used during setup
Basic setup
Windows 10
Download the exe and install.
Ubuntu 16.04
install virtualbox
Add the following line to your /etc/apt/sources.list:
deb http://download.virtualbox.org/virtualbox/debian xenial contrib
Run the command below
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install virtualbox-5.2
install vagrant
wget https://releases.hashicorp.com/vagrant/1.9.5/vagrant_1.9.5_x86_64.deb
sudo dpkg -i vagrant_1.9.5_x86_64.deb
install git
sudo apt-get install git
install dos2unix
sudo apt install dos2unix
Download The Project
git clone https://git.onap.org/integration'
- Hint: More information could be found under integration\bootstrap\vagrant-onap\README.md
Windows: Open Gitbash As Administrator
Convert Line Ending
cd integration/bootstrap/vagrant-onap/lib
find . -type f -print0 | xargs -0 dos2unix
Hint: This issue might be fixed later
Configure Deployment Mode
- There is an settings.yaml.development under integration\bootstrap\vagrant-onap\etc used for different deployment scenarios.
- The goal of this tutorial is to have a running SDNC environment, so in the configuration, it turns off clone and build project.
- Only file name called settings.yaml will be picked-up by the deployment script.
- There is an issue in the sample file that "build_images" should be replaced by "build_image", otherwise, this configuration won't work.
cp settings.yaml.development settings.yaml
vim settings.yaml
The example shows below
build_image: "False" clone_repo: "False" compile_repo: "False" enable_oparent: "False" skip_get_images: "False" skip_install: "False"
- Hint: Under integration\bootstrap\vagrant-onap\doc\source\features\configure_execution.rst, it talks about the functionality of these attributes.
- Hint: Under integration\bootstrap\vagrant-onap\doc\source\features\example_usage.rst, it talks about the use cases of using this tool.
Modify Vagrantfile
vim integration/bootstrap/vagrant-onap/Vagrantfile
- In configuration = {...}, find docker_version and update the corresponding value to '1.2-STAGING-latest'
For example,
... configuration = { ... 'docker_version' => '1.2-STAGING-latest', ... } ...
Modify SDNC Deployment Script
vim integration/bootstrap/vagrant-onap/lib/sdnc
Find function get_sdnc_images{...} in the file and modify
Mainly use pull_onap_image to replace pull_openecomp_image
Pull onap/ccsdk-dgbuilder-image instead of openecomp one
For example,
... # get_sdnc_images() - Build or retrieve necessary images function get_sdnc_images { if [[ "$build_image" == "True" ]]; then _build_sdnc_images else # pull_openecomp_image sdnc-image openecomp/sdnc-image:latest # pull_openecomp_image admportal-sdnc-image openecomp/admportal-sdnc-image:latest # pull_openecomp_image dgbuilder-sdnc-image openecomp/dgbuilder-sdnc-image:latest pull_onap_image sdnc-image onap/sdnc-image:latest pull_onap_image admportal-sdnc-image onap/admportal-sdnc-image:latest pull_docker_image nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image:latest onap/ccsdk-dgbuilder-image:latest fi pull_docker_image mysql/mysql-server:5.6 } ...
Start Deployment
cd integration/bootstrap/vagrant-onap
./tools/run.sh sdnc
Configure Port Forward
This could be replaced by adding scripts in Vagrantfile.
Open RestConf Page
http://127.0.0.1:8282/apidoc/explorer/index.html
Credentials: admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U
Basic usage of vagrant and docker
// check running vm instances
vagrant global-status
// ssh to the vm
vagrant ssh ${vm-id}
// check docker images
docker images
// check running docker instances
docker ps -a
// ssh to the docker instance
docker exec it ${docker-instance} bash
Reference:
[1] ONAP integration: https://git.onap.org/integration/
[2] Vagrant: https://www.vagrantup.com/
[3] ONAP SDC setup: Using Vagrant-Onap for local deployment of SDC project - WIP!!!
[4] Virtualbox Download link: https://www.virtualbox.org/wiki/Linux_Downloads
How to Deploy New Code (based on standard ONAP lab setup)
coming soon
Remote Debugging
coming soon