A service to auto provision devices in Aruba Central based on the Geo-IP location

Overview

Location Based Provisioning Service for Aruba Central

A service to auto provision devices in Aruba Central based on the Geo-IP location

GAPS

Geo-IP auto provisioning service (GAPS) will auto assign any new AP to a group in Central based on the location of the device.

How It Works:

  • New AP is plugged in and automatically connects to Aruba Central.
  • Central via webhook posts a message to GAPS which then does a REST API call to Central for AP details.
  • The details are parsed for the public IP. GAPS makes an API call to a public GEO IP service which return the physical location of the installed AP.
  • The location data parsed for the two letter state code. This is checked against a local dictionary that maps the state to a group in Central (IE East-Group / West-Group).
  • GAPS then sends the group info to Central and provisions the AP into the proper group.

First Steps:

  1. Log into Aruba Central from the Account Home page:
    • API Gateway > System Apps & Tokens > Create a new key
    • Webhooks > Click the + sign > Enter the URL where the GAPS service will be posted "https://your-server.com/webhook"
  2. Launch the Network Dashboard:
    • Global > Alerts & Events > Config
    • Under Access Point > Enable AP Detect > Select the Webhook for GAPS

Install Instructions:

  1. Copy the files to host
  2. Open location_mapping.py
    • Match the two letter state code to the Central Group
    • Add a Group for the default for any Geo-IP locations that don't match
  3. Open dockerfile and add the Aruba Central Credentials
> ENV [email protected]  
> ENV PASSWORD=xxxxxxxxxx  
> ENV CLIENT_ID=xxxxxxxxxx  
> ENV CLIENT_SECRET=xxxxxxxxxx  
> ENV CUSTOMER_ID=xxxxxxxxxx  
> ENV BASE_URL=https://apigw-prod2.central.arubanetworks.com   
> ENV WEBHOOK_TOKEN=xxxxxxxxxx  
  1. Create the container "docker build -t gaps:latest ."
  2. Start the container "docker run -p 5000:5000 gaps"

This container includes gunicorn web-server, modify the wsgi config as needed.

Question - Feel free to contact me:
#(c) 2021 Will Smith - [email protected]

Software for Advanced Spatial Econometrics

GeoDaSpace Software for Advanced Spatial Econometrics GeoDaSpace current version 1.0 (32-bit) Development environment: Mac OSX 10.5.x (32-bit) wxPytho

GeoDa Center 38 Jan 03, 2023
Using SQLAlchemy with spatial databases

GeoAlchemy GIS Support for SQLAlchemy. Introduction GeoAlchemy is an extension of SQLAlchemy. It provides support for Geospatial data types at the ORM

109 Dec 01, 2022
ColoringMapAlgorithm-CSP- - Graphical Coloring of Countries with Condition Satisfaction Algorithm

ColoringMapAlgorithm-CSP- Condition Satisfaction Algorithm Output Condition

Kerem TAN 2 Jan 10, 2022
Blender addons to make the bridge between Blender and geographic data

Blender GIS Blender minimal version : 2.8 Mac users warning : currently the addon does not work on Mac with Blender 2.80 to 2.82. Please do not report

5.9k Jan 02, 2023
A short term landscape evolution using a path sampling method to solve water and sediment flow continuity equations and model mass flows over complex topographies.

r.sim.terrain A short-term landscape evolution model that simulates topographic change for both steady state and dynamic flow regimes across a range o

Brendan Harmon 7 Oct 21, 2022
Spatial Interpolation Toolbox is a Python-based GUI that is able to interpolate spatial data in vector format.

Spatial Interpolation Toolbox This is the home to Spatial Interpolation Toolbox, a graphical user interface (GUI) for interpolating geographic vector

Michael Ward 2 Nov 01, 2021
Tools for the extraction of OpenStreetMap street network data

OSMnet Tools for the extraction of OpenStreetMap (OSM) street network data. Intended to be used in tandem with Pandana and UrbanAccess libraries to ex

Urban Data Science Toolkit 47 Sep 21, 2022
GeoIP Legacy Python API

MaxMind GeoIP Legacy Python Extension API Requirements Python 2.5+ or 3.3+ GeoIP Legacy C Library 1.4.7 or greater Installation With pip: $ pip instal

MaxMind 230 Nov 10, 2022
Python tools for geographic data

GeoPandas Python tools for geographic data Introduction GeoPandas is a project to add support for geographic data to pandas objects. It currently impl

GeoPandas 3.5k Jan 03, 2023
When traveling in the backcountry during winter time, updating yourself on current and recent weather data is important to understand likely avalanche danger.

Weather Data When traveling in the backcountry during winter time, updating yourself on current and recent weather data is important to understand lik

Trevor Allen 0 Jan 02, 2022
r.cfdtools 7 Dec 28, 2022
:earth_asia: Python Geocoder

Python Geocoder Simple and consistent geocoding library written in Python. Table of content Overview A glimpse at the API Forward Multiple results Rev

Denis 1.5k Jan 02, 2023
Python library to decrypt Airtag reports, as well as a InfluxDB/Grafana self-hosted dashboard example

Openhaystack-python This python daemon will allow you to gather your Openhaystack-based airtag reports and display them on a Grafana dashboard. You ca

Bezmenov Denys 19 Jan 03, 2023
Implementation of Trajectory classes and functions built on top of GeoPandas

MovingPandas MovingPandas implements a Trajectory class and corresponding methods based on GeoPandas. Visit movingpandas.org for details! You can run

Anita Graser 897 Jan 01, 2023
Geographic add-ons for Django REST Framework. Maintained by the OpenWISP Project.

django-rest-framework-gis Geographic add-ons for Django Rest Framework - Mailing List. Install last stable version from pypi pip install djangorestfra

OpenWISP 981 Jan 03, 2023
ArcGIS Python Toolbox for WhiteboxTools

WhiteboxTools-ArcGIS ArcGIS Python Toolbox for WhiteboxTools. This repository is related to the ArcGIS Python Toolbox for WhiteboxTools, which is an A

Qiusheng Wu 190 Dec 30, 2022
Manipulation and analysis of geometric objects

Shapely Manipulation and analysis of geometric objects in the Cartesian plane. Shapely is a BSD-licensed Python package for manipulation and analysis

3.1k Jan 03, 2023
Asynchronous Client for the worlds fastest in-memory geo-database Tile38

This is an asynchonous Python client for Tile38 that allows for fast and easy interaction with the worlds fastest in-memory geodatabase Tile38.

Ben 53 Dec 29, 2022
A Python package for delineating nested surface depressions from digital elevation data.

Welcome to the lidar package lidar is Python package for delineating the nested hierarchy of surface depressions in digital elevation models (DEMs). I

Qiusheng Wu 166 Jan 03, 2023
WebGL2 powered geospatial visualization layers

deck.gl | Website WebGL2-powered, highly performant large-scale data visualization deck.gl is designed to simplify high-performance, WebGL-based visua

Vis.gl 10.5k Jan 08, 2023