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

_images/architecture.png

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

get_active()[source]
get_email()[source]
get_id()[source]
get_name()[source]
get_password()[source]
get_permission()[source]
get_user_ldap()[source]
get_username()[source]
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
has_perm_menu(write=None, read=None)[source]

Validates that the user has access permission in top menu

Parameters:
  • write – permission be write
  • read – permission be read
set_password(password)[source]
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.business.get_ambiente_by_id(ambientes, id_ambiente)[source]
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.business.to_complete_list(user_list, group_list)[source]
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.business.is_valid_ipv4(ip)[source]

Validates IPv4 addresses.

CadVlan.Net.business.is_valid_ipv6(ip)[source]

Validates IPv6 addresses.

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.converters.util module
CadVlan.Util.converters.util.replace_id_to_name(main_list, type_list, str_main_id, str_type_id, str_prop)[source]

Return list replacing type id to type name

CadVlan.Util.converters.util.split_to_array(string, sep=';')[source]

Returns an array of strings separated by regex

Module contents
CadVlan.Util.extends package
Submodules
CadVlan.Util.extends.formsets module
Module contents
CadVlan.Util.forms package
Submodules
CadVlan.Util.forms.customRenderer module
CadVlan.Util.forms.decorators module
CadVlan.Util.forms.validators module
Module contents
CadVlan.Util.templatetags package
Submodules
CadVlan.Util.templatetags.util module
Module contents
Submodules
CadVlan.Util.Decorators module
CadVlan.Util.Enum module
class CadVlan.Util.Enum.Enum[source]

Bases: set

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
classmethod remove(file_name)[source]

Removing File

Parameters:file_name – File name
Raises FileError:
 Failed to removing file
classmethod write(file_name, content)[source]

Writing File

Parameters:
  • file_name – File name
  • content – File content
Raises FileError:
 

Failed to writing file

exception CadVlan.Util.file.FileError(error)[source]

Bases: exceptions.Exception

CadVlan.Util.models module
CadVlan.Util.shortcuts module
CadVlan.Util.utility module
Module contents

CadVlan.VipRequest package

Submodules
CadVlan.VipRequest.encryption module
CadVlan.VipRequest.forms module
CadVlan.VipRequest.views module
Module contents

CadVlan.Vlan package

Submodules
CadVlan.Vlan.business module
CadVlan.Vlan.forms module
CadVlan.Vlan.views module
Module contents

Submodules

CadVlan.forms module

CadVlan.manage module

CadVlan.messages module

CadVlan.permissions module

CadVlan.permissions.ACL_APPLY = 'aplicar_acl'

Pool Permissions

CadVlan.processExceptionMiddleware module

class CadVlan.processExceptionMiddleware.LoggingMiddleware[source]

Bases: object

process_exception(request, exception)[source]

HIDE PASSWORD VALUES

CadVlan.settings module

CadVlan.templates module

CadVlan.urls module

Module contents

Indices and tables