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]

Example of animated maps in matplotlib + geopandas using entire time series of congressional district maps from UCLA archive. rendered, interactive version below

Example of animated maps in matplotlib + geopandas using entire time series of congressional district maps from UCLA archive. rendered, interactive version below

Apoorva Lal 5 May 18, 2022
An API built to format given addresses using Python and Flask.

An API built to format given addresses using Python and Flask. About The API returns properly formatted data, i.e. removing duplicate fields, distingu

1 Feb 27, 2022
WIP: extracting Geometry utilities from datacube-core

odc.geo This is still work in progress. This repository contains geometry related code extracted from Open Datacube. For details and motivation see OD

Open Data Cube 34 Jan 09, 2023
Streamlit Component for rendering Folium maps

streamlit-folium This Streamlit Component is a work-in-progress to determine what functionality is desirable for a Folium and Streamlit integration. C

Randy Zwitch 224 Dec 30, 2022
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
Geospatial web application developed uisng earthengine, geemap, and streamlit.

geospatial-streamlit Geospatial web applications developed uisng earthengine, geemap, and streamlit. App 1 - Land Surface Temperature A simple, code-f

13 Nov 27, 2022
Earthengine-py-notebooks - A collection of 360+ Jupyter Python notebook examples for using Google Earth Engine with interactive mapping

earthengine-py-notebooks A collection of 360+ Jupyter Python notebook examples for using Google Earth Engine with interactive mapping Contact: Qiushen

Qiusheng Wu 1.1k Dec 29, 2022
A modern, geometric typeface by @chrismsimpson (last commit @ 85fa625 Jun 9, 2020 before deletion)

Metropolis A modern, geometric typeface. Influenced by other popular geometric, minimalist sans-serif typefaces of the new millenium. Designed for opt

Darius 183 Dec 25, 2022
leafmap - A Python package for geospatial analysis and interactive mapping in a Jupyter environment.

A Python package for geospatial analysis and interactive mapping with minimal coding in a Jupyter environment

Qiusheng Wu 1.4k Jan 02, 2023
Tool to display your current position and angle above your radar

🛠 Tool to display your current position and angle above your radar. As a response to the CS:GO Update on 1.2.2022, which makes cl_showpos a cheat-pro

Miko 6 Jan 04, 2023
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
Daily social mapping project in November 2021. Maps made using PyGMT whenever possible.

Daily social mapping project in November 2021. Maps made using PyGMT whenever possible.

Wei Ji 20 Nov 24, 2022
Track International space station with python

NASA-ISS-tracker Track International space station with python Modules import json import turtle import urllib.request import time import webbrowser i

Nikhil Yadav 8 Aug 12, 2021
A service to auto provision devices in Aruba Central based on the Geo-IP location

Location Based Provisioning Service for Aruba Central A service to auto provision devices in Aruba Central based on the Geo-IP location Geo-IP auto pr

Will Smith 3 Mar 22, 2022
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
🌐 Local tile server for viewing geospatial raster files with ipyleaflet or folium

🌐 Local Tile Server for Geospatial Rasters Need to visualize a rather large (gigabytes) raster you have locally? This is for you. A Flask application

Bane Sullivan 192 Jan 04, 2023
Creates 3D geometries from 2D vector graphics, for use in geodynamic models

geomIO - creating 3D geometries from 2D input This is the Julia and Python version of geomIO, a free open source software to generate 3D volumes and s

3 Feb 01, 2022
This app displays interesting statistical weather records and trends which can be used in climate related research including study of global warming.

This app displays interesting statistical weather records and trends which can be used in climate related research including study of global warming.

0 Dec 27, 2021
Google maps for Jupyter notebooks

gmaps gmaps is a plugin for including interactive Google maps in the IPython Notebook. Let's plot a heatmap of taxi pickups in San Francisco: import g

Pascal Bugnion 747 Dec 19, 2022
A Python tool to display geolocation information in the traceroute.

IP2Trace Python IP2Trace Python is a Python tool allowing user to get IP address information such as country, region, city, latitude, longitude, zip c

IP2Location 22 Jan 08, 2023