Git Product home page Git Product logo

globonetworkapi-webui's Introduction

GloboNetworkAPI Web UI

This web tool helps network administrator manage and automate networking resources (routers, switches and load balancers) and document logical and physical networking.

It lays on top of GloboNetworkAPI, so you need it installed and acessible in order to use the WebUI. 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

Documentation

Documentation

Authors

Authors

globonetworkapi-webui's People

Contributors

arumeida avatar brizzil avatar gustavosoares avatar henriquebonadio avatar henriquebonadio-zz avatar malinoski avatar pantuza avatar rafaelcassau avatar renan-lopes-rodrigues avatar renanlopes97s avatar s2it-globo avatar stockrt avatar treviza153 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

globonetworkapi-webui's Issues

Error when copying pool

When copying pool in https://.../vip-request/form a "list index out range" error is showed when the pool have members.
workaroud: remove all members and readd before saving the copied pool.

Flag vip created - vip request visualization

The vip request visualization is always showing that the vip is not created. Apparently it is checking a wrong flag.

It must show the same result as "vip request list" for this status.

No IP available to NETWORK

In networks with mask /31 or /126 (IPv6). When we try to allocate IPs for a equipament from the web interface it does not allocate. And return the error: "No IP available to NETWORK 28452"

log:
[DEBUG] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/network/ipv4/id/28452/, T:1CT5OPYQSPEYR9PK8NBV7W, MSG:INICIO da requisição GET. Data: [].
[DEBUG] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/network/ipv4/id/28452/, T:1CT5OPYQSPEYR9PK8NBV7W, MSG:Requisição concluída com sucesso.
[DEBUG] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/network/ipv4/id/28452/, T:1CT5OPYQSPEYR9PK8NBV7W, MSG:FIM da requisição.
[DEBUG] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/vlan/29754/network/, T:QB-YESVPQ8UKYBFM9HBPIA, MSG:INICIO da requisição GET. Data: [].
[INFO] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/vlan/29754/network/, T:QB-YESVPQ8UKYBFM9HBPIA, MSG:Search VLAN by ID
[DEBUG] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/vlan/29754/network/, T:QB-YESVPQ8UKYBFM9HBPIA, MSG:Requisição concluída com sucesso.
[DEBUG] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/vlan/29754/network/, T:QB-YESVPQ8UKYBFM9HBPIA, MSG:FIM da requisição.
[DEBUG] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/api/dhcprelayv4/?networkipv4=28452&, T:37LXOKQVS9AIVDHSKSIGUQ, MSG:INICIO da requisição GET. Data: [].
[DEBUG] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/api/dhcprelayv4/?networkipv4=28452&, T:37LXOKQVS9AIVDHSKSIGUQ, MSG:Requisição concluída com sucesso.
[DEBUG] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/api/dhcprelayv4/?networkipv4=28452&, T:37LXOKQVS9AIVDHSKSIGUQ, MSG:FIM da requisição.
[DEBUG] 19/Oct/2015:16:58:07 +0000 - U:SABINO, P:/net_type/, T:ESOYKZA_SDUQIRTN9EHSQG, MSG:INICIO da requisição GET. Data: [].
[DEBUG] 19/Oct/2015:16:58:08 +0000 - U:SABINO, P:/net_type/, T:ESOYKZA_SDUQIRTN9EHSQG, MSG:Requisição concluída com sucesso.
[DEBUG] 19/Oct/2015:16:58:08 +0000 - U:SABINO, P:/net_type/, T:ESOYKZA_SDUQIRTN9EHSQG, MSG:FIM da requisição.
[DEBUG] 19/Oct/2015:16:58:08 +0000 - U:SABINO, P:/ip/id_network_ipv4/28452/, T:18LECL5MRQQ6FQIIKDBJOA, MSG:INICIO da requisição GET. Data: [].
[WARNING] 19/Oct/2015:16:58:08 +0000 - U:SABINO, P:/ip/id_network_ipv4/28452/, T:18LECL5MRQQ6FQIIKDBJOA, MSG:Requisição concluída com falha. Conteúdo: [].
[DEBUG] 19/Oct/2015:16:58:08 +0000 - U:SABINO, P:/ip/id_network_ipv4/28452/, T:18LECL5MRQQ6FQIIKDBJOA, MSG:FIM da requisição.
[DEBUG] 19/Oct/2015:16:58:14 +0000 - U:SABINO, P:/network/ipv4/id/28452/, T:XYV-GHQJRI2OCFE8UFSQLQ, MSG:INICIO da requisição GET. Data: [].
[DEBUG] 19/Oct/2015:16:58:14 +0000 - U:SABINO, P:/network/ipv4/id/28452/, T:XYV-GHQJRI2OCFE8UFSQLQ, MSG:Requisição concluída com sucesso.
[DEBUG] 19/Oct/2015:16:58:14 +0000 - U:SABINO, P:/network/ipv4/id/28452/, T:XYV-GHQJRI2OCFE8UFSQLQ, MSG:FIM da requisição.
[DEBUG] 19/Oct/2015:16:58:14 +0000 - U:SABINO, P:/ip/availableip4/28452/, T:V6R9DRQGTICW-SITEANN7G, MSG:INICIO da requisição GET. Data: [].
[INFO] 19/Oct/2015:16:58:14 +0000 - U:SABINO, P:/ip/availableip4/28452/, T:V6R9DRQGTICW-SITEANN7G, MSG:Get an IP4 available
[WARNING] 19/Oct/2015:16:58:14 +0000 - U:SABINO, P:/ip/availableip4/28452/, T:V6R9DRQGTICW-SITEANN7G, MSG:Requisição concluída com falha. Conteúdo: [].
[DEBUG] 19/Oct/2015:16:58:14 +0000 - U:SABINO, P:/ip/availableip4/28452/, T:V6R9DRQGTICW-SITEANN7G, MSG:FIM da requisição.

Alert box displaying apache license

Several strings/messages loaded using javascript are displaying the commented Apache license.

  • The message_confirm variable (
    if needs_confirmation == 'True':
    message_confirm = "a vlan de número " + \
    str(number) + " já existe no ambiente " + \
    str(vlan['ambiente_name'])
    ) displays the HTML commented apache license.
  • When you click "Sugerir nome do arquivo ACL", the displayed ACL name also exhibits the license.

webui

Internacionalization

We would like to add internacionalization to prepare the system for localization, in order to be able to support translations.

Non-readable error pop-up in network search feature

In the vlan list screen, if the user inserts and invalid value in the network fields (ie. letters) the UI is generating an non-readable error pop-up (HTML code). Fix this to show a better error description.

Create and manage a pool without any VIP request association

Today, when we allocate a VIP requisition, it creates one server pool for each group of servers that attend the same VIP port.
We need to be able to allocate these server pools "request" apart from VIP request. We need similar form, but to be able to allocate a server pool by itself, not connected to any VIP request. We also need the server pool to have this healthcheck configuration by itself, today the healthcheck configuration is a feature of the VIP request (one per VIP).
We need the same kind of functionalities that we have in the VIP request:

  • We need to be able to deploy(create)/delete this server pool in the LB via web GUI.
  • We need to be able to deploy/create this server pool in the LB via web GUI.
  • We need a screen to be able to add, delete, enable and disable a member (server:port) in the server pool via Web UI.
  • This screen should check and show the status of a member (server:port) in a server pool via Web UI. This status should be checked in the load balancer by the external plugin (scripts).

Error when inserting ipv6 member in pool

31/Mar/2016:17:03:39 +0000 - Start of the request[POST] for URL[/pool/manage/tab4/25552] with DATA[pool_created=&environment=570&id_default_port=80&id_balancing=least-conn&id_servicedownaction=least-conn&csrfmiddlewaretoken=DhjdmTv4FHE8dktEX6Zczk1YP69yothK&equip_name=test&equip=test&id_equip=71054&ip=fdbe%3Ab0b0%3Ab0b0%3Ab0b0%3Ab0b0%3Ab0b0%3A0160%3A0134&id_ip=1684&priority=0&weight=0&ports_real_reals=80&id_pool_member=].
[ERROR] 31/Mar/2016:17:03:40 +0000 - M:base, P:19982, T:47164828074320, MSG:Internal Server Error: /pool/manage/tab4/25552
Traceback (most recent call last):
File "/opt/cadvlan/virtualenv/lib/python2.7/site-packages/django/core/handlers/base.py", line 109, in get_response
response = callback(request, _callback_args, *_callback_kwargs)
File "/mnt/projetos/deploy-be/cadvlan/app/current/CadVlan/Util/Decorators.py", line 119, in _decorated
return view_func(request, _args, *_kwargs)
File "/mnt/projetos/deploy-be/cadvlan/app/current/CadVlan/Util/Decorators.py", line 54, in _decorated
return view_func(request, _args, *_kwargs)
File "/mnt/projetos/deploy-be/cadvlan/app/current/CadVlan/Util/Decorators.py", line 54, in _decorated
return view_func(request, _args, *_kwargs)
File "/mnt/projetos/deploy-be/cadvlan/app/current/CadVlan/Util/Decorators.py", line 94, in _has_perm
return view_func(request, _args, *_kwargs)
File "/mnt/projetos/deploy-be/cadvlan/app/current/CadVlan/Pool/views.py", line 1403, in manage_tab4
members[idx]['ipv6']['ip_formated'] = ips[idx]
TypeError: 'str' object does not support item assignment

Keep the VIP request on the screen after deleting vip

When we remove a VIP (either when we use the remove option inside or outside the request), the page is refreshed and we loose the request form (either if it was filtered or if you were at the exact page the request is). This is specially annoying, because generally after removing a VIP we also want to delete the request form, and so we need to search for it again to finish the process of removing a VIP.

Create a VIP request using pools that already exist

When creating a VIP request, we need to have the option to use existing pools instead of specifing the servers:ports and create new pool entries in the DB/API.
Today, deleting the VIP request deletes every server pool associated with it. User should have the option to remove the VIP request AND the server pool or to remove ONLY the VIP request, withoud removing the server pool from the LB and from the API database. The default option should be to delete everything, as this is the most used functionality.

Show vlan number in IP network details screen

Users (Op. Team) requested that the screen that shows the IPs allocated for the network (network details box) also shows the respective vlan number that the network is related to.

Show previous results after filtering vlans, clicking on a result, then coming back

When we filter some vlans and then choose one result (click one vlan, then visualize/edit networks, etc) and then try to come back (using the "back"/"voltar" bottom or the browser go back), we loose our filtered vlans and return to inicial vlan page (blank). So, if we want to see the second result, we need to filter them again, and again and again for each vlan found.

Search VIPs by server IP

We would like to search for Virtual Servers and/or pools by the server IP or IP:port.
The Web UI should return all the Virtual Server requisitions or pools that uses those IP or IP:ports.

Error messages are shown too quick

The error messages are shown for a few seconds and than hidden. Users complained that several times they "miss" the error when switching screens.
Enhance the error messages so they keep showing until hidden by user command.

Automatic allocation of vlan numbers

In the add vlan screen, there is a possibility to automatic allocate an L3 network when adding the vlan.
We need to enhance this screen to allow the automatic allocation of vlan numbers also. The user may only insert the NAME and ENVIRONMENT and the system should allocate the vlan number.

Delete empty vlan

When we try to delete an empty vlan from the web interface it does not delete it.

[watcher@riomp74lb05 app]$ cat networkapi-app-be-main.log | grep PUPVSXGPQCMFLPNIQQ
[DEBUG] 07/Aug/2015:16:07:42 +0000 - U:CLAUDINEY, P:/vlan/21949/deallocate/, T:CUS-PUPVSXGPQCMFLPNIQQ, MSG:INICIO da requisição DELETE. Data: [].
[INFO] 07/Aug/2015:16:07:42 +0000 - U:CLAUDINEY, P:/vlan/21949/deallocate/, T:CUS-PUPVSXGPQCMFLPNIQQ, MSG:Deallocate all relationships between Vlan.
[WARNING] 07/Aug/2015:16:07:42 +0000 - U:CLAUDINEY, P:/vlan/21949/deallocate/, T:CUS-PUPVSXGPQCMFLPNIQQ, MSG:Added=True
[DEBUG] 07/Aug/2015:16:07:42 +0000 - U:CLAUDINEY, P:/vlan/21949/deallocate/, T:CUS-PUPVSXGPQCMFLPNIQQ, MSG:Requisição concluída com falha. Conteúdo: [0293Dont Deallocate all relationships between Vlan be because is active.].
[DEBUG] 07/Aug/2015:16:07:42 +0000 - U:CLAUDINEY, P:/vlan/21949/deallocate/, T:CUS-PUPVSXGPQCMFLPNIQQ, MSG:FIM da requisição.

Choose member status (enable/disable) before adding server to VIP

Today is not possible to add a server to a VIP with disabled status a priori. We have this restriction both when creating the request form and when we already have a vip and want to add a new server (only workaround today is to set different priority to prevent the "should-be-disabled-member" from receiving requests).

Search pools by member error when the server is member of a pool that has no relation with vip

When we have a server that is member of a pool that hasn't a entry in "VipPortToPool" (so the pool is not correlated to any vip - ie, with any instance from table RequisicaoVips), the API is unable to display anything when searching for pools that a server is member from (note that the API knows it is a member of at least one pool, but is unable to list it/them). Error shown: "unable to access data source/Falha ao acessar a fonte de dados".

Automatic allocation of network with defined length

In the add vlan screen, there is a possibility to automatic allocate an L3 network when adding the vlan.
We need to enhance this screen to allow the user to define the length of the IP network. Today it is allocating the default length configured on each environment.

Add new port service to VIP that already exists without removing it first

Today, if we want to add more services in a VIP (e.j.: we have a VIP that responds at port 80 and 443, and we want to add 1935 as well), we need to remove the VIPs we have configured for that IP in the equipments, edit the request form, and them create all services together. The ideal would be being able to add as much services as we want, without needing to delete existing services to a VIP.

Set SRT equal 0 as default

We need to set a pool parameter called SRT equal 0 (disable) as a default configuration to prevent an unexpected behavior when we have members with different priority.

Treat ldap_user['initials'] field as an optional field

ldap_user['initials'] should not be mandatory.

[ERROR] 03/Jan/2018:10:41:07 +0000 - M:base, - N:django.request:213, P:32118, T:47003215528272, MSG:Internal Server Error: /ldap/pop_ldap_user_mail/jonathan.silva/
Traceback (most recent call last):
File "/opt/cadvlan/virtualenv/lib/python2.7/site-packages/django/core/handlers/base.py", line 109, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "(...)/CadVlan/Util/Decorators.py", line 119, in _decorated
return view_func(request, *args, **kwargs)
File "(...)/CadVlan/Util/Decorators.py", line 54, in _decorated
return view_func(request, *args, **kwargs)
File "(...)/CadVlan/Util/Decorators.py", line 94, in _has_perm
return view_func(request, *args, **kwargs)
File "(...)/CadVlan/User/views.py", line 61, in ajax_ldap_pop_name_mail
ldap_user['initials'] + ' ' + ldap_user['sn']
KeyError: 'initials'

Need to use same acl file/name for several different vlans

check networkapi issue globocom/GloboNetworkAPI#55

Behavior changes in cadvlan ACL file handling (git files):

Old behavior:

when removing vlan, the ACL file used was deleted
when removing environment, as all acls from environment are removed, those repesctive files are removed also.
New behavior:

as ACL may be used in several different vlans, when deleting vlan, do NOT remove acl file.
when deleting environment, acl files that are used in vlans for that environment will NOT be removed
acl files are only removed when clicking 'Excluir ACL' button This behavior could lead to several orphan files in acl directory and that should be managed by other methods.

Can't change vlan environment

When change the vlan environment from web interface, it doesn't change it and return no answer or error code.
log:
[watcher@riomp74lb05 ~]$ cat /opt/logs/networkapi/app/networkapi_app.log | grep U:SABINO | grep 20276
[DEBUG] 19/Oct/2015:17:24:12 +0000 - U:SABINO, P:/vlan/20276/network/, T:34_PF-TDR6M6ZVV2AM5MCA, MSG:INICIO da requisição GET. Data: [].
[INFO] 19/Oct/2015:17:24:12 +0000 - U:SABINO, P:/vlan/20276/network/, T:34_PF-TDR6M6ZVV2AM5MCA, MSG:Search VLAN by ID
[DEBUG] 19/Oct/2015:17:24:12 +0000 - U:SABINO, P:/vlan/20276/network/, T:34_PF-TDR6M6ZVV2AM5MCA, MSG:Requisição concluída com sucesso.
[DEBUG] 19/Oct/2015:17:24:12 +0000 - U:SABINO, P:/vlan/20276/network/, T:34_PF-TDR6M6ZVV2AM5MCA, MSG:FIM da requisição.
[DEBUG] 19/Oct/2015:17:25:06 +0000 - U:SABINO, P:/vlan/check_number_available/738/297/20276, T:4SRCFESDSTIPEBRBSK3LNA, MSG:INICIO da requisição GET. Data: [].
[DEBUG] 19/Oct/2015:17:25:06 +0000 - U:SABINO, P:/vlan/check_number_available/738/297/20276, T:4SRCFESDSTIPEBRBSK3LNA, MSG:Requisição concluída com sucesso.
[DEBUG] 19/Oct/2015:17:25:06 +0000 - U:SABINO, P:/vlan/check_number_available/738/297/20276, T:4SRCFESDSTIPEBRBSK3LNA, MSG:FIM da requisição.
[DEBUG] 19/Oct/2015:17:25:06 +0000 - U:SABINO, P:/vlan/check_number_available/738/297/20276/, T:1TN8TFNZQI-259KYXOFCDA, MSG:INICIO da requisição GET. Data: [].
[DEBUG] 19/Oct/2015:17:25:06 +0000 - U:SABINO, P:/vlan/check_number_available/738/297/20276/, T:1TN8TFNZQI-259KYXOFCDA, MSG:Requisição concluída com sucesso.
[DEBUG] 19/Oct/2015:17:25:06 +0000 - U:SABINO, P:/vlan/check_number_available/738/297/20276/, T:1TN8TFNZQI-259KYXOFCDA, MSG:FIM da requisição.
[DEBUG] 19/Oct/2015:17:25:17 +0000 - U:SABINO, P:/vlan/20276/network/, T:ZOZDFV5OQFM2ROZRQPNEQW, MSG:INICIO da requisição GET. Data: [].
[INFO] 19/Oct/2015:17:25:18 +0000 - U:SABINO, P:/vlan/20276/network/, T:ZOZDFV5OQFM2ROZRQPNEQW, MSG:Search VLAN by ID
[DEBUG] 19/Oct/2015:17:25:18 +0000 - U:SABINO, P:/vlan/20276/network/,
T:ZOZDFV5OQFM2ROZRQPNEQW, MSG:Requisição concluída com sucesso.
[DEBUG] 19/Oct/2015:17:25:18 +0000 - U:SABINO, P:/vlan/20276/network/, T:ZOZDFV5OQFM2ROZRQPNEQW, MSG:FIM da requisição.
[DEBUG] 19/Oct/2015:17:25:21 +0000 - U:SABINO, P:/vlan/edit/, T:ZOGYNIAITD6BHMECRO2RHA, MSG:INICIO da requisição POST. Data: [<environment_id>738</environment_id>HOSTS_FE_ACS297<acl_file></acl_file><acl_file_v6></acl_file_v6><vlan_id>20276</vlan_id>].

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.