Welcome to GloboNetworkAPI WebUI’s documentation!¶
Contents:
About Globo NetworkAPI WebUI¶
Description¶
Globo NetworkAPI WebUI is a Front End tool to manage and automate networking resources (routers, switches and load balancers) and document logical and physical networking.
They were created to be vendor agnostic and to support different orquestrators and environments without loosing the centralized view of all network resources allocated.
It was not created to be and inventory database, so it does not have CMDB functionalities.
Features¶
- LDAP authentication
- Supports cabling documentation (including patch-panels/DIO’s)
- Separated Layer 2 and Layer 3 documentation (vlan/network)
- IPv4 and IPv6 support
- Automatic allocation of Vlans, Networks and IP’s
- ACL (access control list) automation (documentation/versioning/applying)
- Load-Balancer support
- Automated deploy of allocated resources on switches, routers and load balancers
- Load balancers management
- Expandable plugins for automating configuration
Architecture¶

Installing GloboNetworkAPI WebUI¶
Using pre-configured VM¶
In order to use the pre-configured VM you need to have vagrant <https://www.vagrantup.com/downloads.html> and VirtualBox <https://www.virtualbox.org/wiki/Downloads> installed in your machine.
After that, go to the directory you want to install and do:
git clone https://github.com/globocom/GloboNetworkAPI-WebUI
cd GloboNetworkAPI-WebUI
vagrant plugin install vagrant-omnibus
vagrant up
After this you’ll have the WebUI running on http://10.0.0.3:8080/
Installing from scratch¶
Following examples were based on CentOS 7.0.1406 installation.
All root passwords were configured to “default”.
Create a specific User/Group¶
useradd -m -U webui
passwd webui
visudo
webui ALL=(ALL) ALL
sudo mkdir /opt/app/
sudo chmod 777 /opt/app/
Download Code¶
Download GloboNetworkAPI code from Globocom GitHub.
In this example we are downloading code to /opt/app/:
sudo yum install git
cd /opt/app/
git clone https://github.com/globocom/GloboNetworkAPI-WebUI
We are exporting this variable below to better document the install process:
export WEBUI_FOLDER=/opt/app/GloboNetworkAPI-WebUI/
echo "export WEBUI_FOLDER=/opt/app/GloboNetworkAPI-WebUI/" >> ~/.bashrc
Create a VirtualEnv¶
sudo yum install python-virtualenv
sudo easy_install pip
virtualenv ~/virtualenvs/webui_env
source ~/virtualenvs/webui_env/bin/activate
echo "source ~/virtualenvs/webui_env/bin/activate" >> ~/.bashrc
Install Dependencies¶
You will need the following packages in order to install the next python packages via pip:
sudo yum install gcc
yum install openldap-devel
Install the packages listed on $WEBUI_FOLDER/requirements.txt file:
pip install -r $WEBUI_FOLDER/requirements.txt
Create a sitecustomize.py inside your /path/to/lib/python2.X folder with the following content:
import sys
sys.setdefaultencoding('utf-8')
echo -e "import sys\nsys.setdefaultencoding('utf-8')\n" > ~/virtualenvs/webui_env/lib/python2.7/sitecustomize.py
Install Memcached¶
You can run memcached locally or you can set file variable CACHES{default{LOCATION to use a remote memcached farm in file $WEBUI_FOLDER/settings.py.
In case you need to run locally:
sudo yum install memcached
sudo systemctl start memcached
sudo systemctl enable memcached
HTTP Server Configuration¶
For a better performance, install Green Unicorn to run NetworkAPI.
pip install gunicorn
There is no need to install a nginx or apache to proxy pass the requests, once there is no static files in the API.
Edit $WEBUI_FOLDER/gunicorn.conf.py to use your log files location and user preferentes and run gunicorn:
cd $WEBUI_FOLDER/
gunicorn wsgi:application
Install CVS¶
You will need the JDK software in order to install CVS
sudo yum install java-x-openjdk.x86_64
Set the JAVA_HOME variable with the path to java folder
JAVA_HOME=/etc/java-x-openjdk.x86_64
Download CVS software
sudo yum install cvs
Uncomment and set the variable CVS_JAVA_HOME in cvs.sh
Run cvs
Put the following command in .bashrc
export CVSROOT=:pserver:<user>@<host>:/<path>
Folder: GloboNetworkAPI-WebUI/Cadvlan/ACLS:
cvs checkout <repo>/ACLS
Test installation¶
Try to access the root location of the API:
http://your_location:8080/
This should take you the login page.
LDAP Server Configuration¶
If you want to use LDAP authentication, configure the following variables in FILE:
!TODO
Working with Documentation¶
If you want to generate documentation, you need the following python modules installed:
pip install sphinx==1.2.2
pip install sphinx-rtd-theme==0.1.6
pip install pytest==2.2.4
GloboNetworkAPI WebUI package¶
Subpackages¶
CadVlan.AccessType package¶
Submodules¶
CadVlan.AccessType.forms module¶
CadVlan.AccessType.views module¶
Module contents¶
CadVlan.Acl package¶
Submodules¶
CadVlan.Acl.acl module¶
CadVlan.Acl.forms module¶
CadVlan.Acl.views module¶
Module contents¶
CadVlan.Auth package¶
Submodules¶
CadVlan.Auth.AuthSession module¶
CadVlan.Auth.business module¶
CadVlan.Auth.forms module¶
CadVlan.Auth.models module¶
- class CadVlan.Auth.models.User(id, user, nome, email, pwd, permission, ativo, user_ldap)[source]¶
Bases: object
- has_perm(permission, write=None, read=None)[source]¶
Validates that the user has access permission
Parameters: - permission – access permission to be validated
- write – permission be write
- read – permission be read
Validates that the user has access permission in top menu
Parameters: - write – permission be write
- read – permission be read
CadVlan.Auth.views module¶
Module contents¶
CadVlan.BlockRules package¶
Submodules¶
CadVlan.BlockRules.forms module¶
CadVlan.BlockRules.views module¶
Module contents¶
CadVlan.Environment package¶
Submodules¶
CadVlan.Environment.forms module¶
CadVlan.Environment.views module¶
Module contents¶
CadVlan.EnvironmentVip package¶
Submodules¶
CadVlan.EnvironmentVip.business module¶
CadVlan.EnvironmentVip.form module¶
CadVlan.EnvironmentVip.views module¶
Module contents¶
CadVlan.EquipAccess package¶
Submodules¶
CadVlan.EquipAccess.forms module¶
CadVlan.EquipAccess.views module¶
Module contents¶
CadVlan.EquipGroup package¶
Submodules¶
CadVlan.EquipGroup.forms module¶
CadVlan.EquipGroup.views module¶
Module contents¶
CadVlan.EquipInterface package¶
Submodules¶
CadVlan.EquipInterface.business module¶
CadVlan.EquipInterface.forms module¶
CadVlan.EquipInterface.views module¶
Module contents¶
CadVlan.EquipScript package¶
Submodules¶
CadVlan.EquipScript.forms module¶
CadVlan.EquipScript.views module¶
Module contents¶
CadVlan.Equipment package¶
Submodules¶
CadVlan.Equipment.business module¶
CadVlan.Equipment.forms module¶
CadVlan.Equipment.views module¶
Module contents¶
CadVlan.EquipmentType package¶
Submodules¶
CadVlan.EquipmentType.forms module¶
CadVlan.EquipmentType.views module¶
Module contents¶
CadVlan.EventLog package¶
Submodules¶
CadVlan.EventLog.forms module¶
CadVlan.EventLog.views module¶
Module contents¶
CadVlan.Filter package¶
Submodules¶
CadVlan.Filter.form module¶
CadVlan.Filter.views module¶
Module contents¶
CadVlan.GroupEquip package¶
Submodules¶
CadVlan.GroupEquip.business module¶
CadVlan.GroupEquip.forms module¶
CadVlan.GroupEquip.views module¶
Module contents¶
CadVlan.GroupUser package¶
Submodules¶
CadVlan.GroupUser.forms module¶
CadVlan.GroupUser.models module¶
CadVlan.GroupUser.views module¶
Module contents¶
CadVlan.HealthcheckExpect package¶
Submodules¶
CadVlan.HealthcheckExpect.forms module¶
CadVlan.HealthcheckExpect.views module¶
Module contents¶
CadVlan.Ldap package¶
Submodules¶
CadVlan.Ldap.form module¶
CadVlan.Ldap.model module¶
CadVlan.Ldap.views module¶
Module contents¶
CadVlan.Net package¶
Submodules¶
CadVlan.Net.business module¶
CadVlan.Net.forms module¶
CadVlan.Net.views module¶
Module contents¶
CadVlan.NetworkType package¶
Submodules¶
CadVlan.NetworkType.forms module¶
CadVlan.NetworkType.views module¶
Module contents¶
CadVlan.OptionVip package¶
Submodules¶
CadVlan.OptionVip.forms module¶
CadVlan.OptionVip.views module¶
Module contents¶
CadVlan.Script package¶
Submodules¶
CadVlan.Script.forms module¶
CadVlan.Script.views module¶
Module contents¶
CadVlan.ScriptType package¶
Submodules¶
CadVlan.ScriptType.forms module¶
CadVlan.ScriptType.views module¶
Module contents¶
CadVlan.User package¶
Submodules¶
CadVlan.User.forms module¶
CadVlan.User.views module¶
Module contents¶
CadVlan.UserGroup package¶
Submodules¶
CadVlan.UserGroup.forms module¶
CadVlan.UserGroup.views module¶
Module contents¶
CadVlan.Util package¶
Subpackages¶
CadVlan.Util.converters package¶
Submodules¶
CadVlan.Util.Decorators module¶
CadVlan.Util.Json module¶
CadVlan.Util.cvs module¶
CadVlan.Util.file module¶
- class CadVlan.Util.file.File[source]¶
- classmethod create(file_name)[source]¶
Creating File
Parameters: file_name – File name Raises FileError: Failed to creating file
- classmethod read(file_name)[source]¶
Reading File
Parameters: file_name – File name Raises FileError: Failed to reading file