All Projects → internap → Netman

internap / Netman

Licence: apache-2.0
A unified REST API to provide vendor-agnostic network automation

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Netman

Server
Serve your Rubix ML models in production with scalable stand-alone model inference servers.
Stars: ✭ 30 (-31.82%)
Mutual labels:  rest-api
Acf To Rest Api Recursive
Get ACF fields recursively
Stars: ✭ 38 (-13.64%)
Mutual labels:  rest-api
Generator Expressjs Rest
Project template for an ExpressJS application
Stars: ✭ 41 (-6.82%)
Mutual labels:  rest-api
Easyappointments Mobile Client
Mobile client for Easy!Appointments Web Scheduler
Stars: ✭ 33 (-25%)
Mutual labels:  rest-api
Drive
☁️ A distributed cloud based lazy drive to files integrated with Dropbox, Google Drive.
Stars: ✭ 36 (-18.18%)
Mutual labels:  rest-api
Moveit
🚀 NLW #4 | React+ TypeScript + NextJS + StyledComponents + Firebase + MongoDb +Axios
Stars: ✭ 39 (-11.36%)
Mutual labels:  rest-api
Laravel Realworld Example App
Exemplary real world backend API built with Laravel
Stars: ✭ 954 (+2068.18%)
Mutual labels:  rest-api
Yadisk
Библиотека-клиент REST API Яндекс.Диска для Python / Yandex.Disk REST API client library for Python
Stars: ✭ 42 (-4.55%)
Mutual labels:  rest-api
Aquameta
Web development platform built entirely in PostgreSQL
Stars: ✭ 987 (+2143.18%)
Mutual labels:  rest-api
Rest Epub
Roy Fielding's REST dissertation in .epub
Stars: ✭ 40 (-9.09%)
Mutual labels:  rest-api
Openapi To Graphql
Translate APIs described by OpenAPI Specifications (OAS) into GraphQL
Stars: ✭ 973 (+2111.36%)
Mutual labels:  rest-api
Taliesin
Lightweight audio streaming server
Stars: ✭ 35 (-20.45%)
Mutual labels:  rest-api
React At Rest
A toolkit for building ridiculously fast web applications using React and RESTful APIs.
Stars: ✭ 40 (-9.09%)
Mutual labels:  rest-api
Restful Lenny
A lenny API. Use this to bring Lenny face to your applications
Stars: ✭ 31 (-29.55%)
Mutual labels:  rest-api
Axios Rest
A simple axios wrapper to make rest api call delightful
Stars: ✭ 41 (-6.82%)
Mutual labels:  rest-api
Siodb
The simplicity of REST and the power of SQL combined in a database that automatized security and performance. Forget the database, develop faster and safer!
Stars: ✭ 31 (-29.55%)
Mutual labels:  rest-api
Mvp
PowerShell Module to interact with the Microsoft MVP API
Stars: ✭ 38 (-13.64%)
Mutual labels:  rest-api
Snmpbot
Golang SNMP library + SNMP REST API
Stars: ✭ 44 (+0%)
Mutual labels:  rest-api
Contentjet Ui
Headless API-first content management system
Stars: ✭ 42 (-4.55%)
Mutual labels:  rest-api
Laravel Compass
A REST client inside your Laravel app
Stars: ✭ 1,002 (+2177.27%)
Mutual labels:  rest-api

Build Status Documentation Status PyPI version

Netman

Netman is a unified REST API that provides vendor-agnostic network automation. It abstracts the vendor-specific bits and leaves you with a clean and simplified API.

Python code usage

switch_factory = SwitchFactory(MemoryStorage(), ThreadingLockFactory())
switch = switch_factory.get_anonymous_switch(
    model="cisco", 
    hostname="hostname_or_ip", 
    username="username", 
    password="password", 
)

switch.add_vlan(1000, name="myvlan")

REST API usage

First, start the service

tox
.tox/py27/bin/python netman/main.py
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Then you can access it by http

curl -X POST http://127.0.0.1:5000/switches/hostname_or_ip/vlans -d '{"number": 1000, "name": "myvlan"}' 
    -H "Content-Type: application/json" 
    -H "Netman-model: cisco" 
    -H "Netman-username: username" 
    -H "Netman-password: password"

Disaggregated mode

Netman supports a disaggregated mode. This is a special mode of operation where netman will use a remote netman server to access the network equipment. This mode is particularly useful in the case where your network equipment is not available to your main netman server. You can start a server somewhere, let's say at 192.168.1.1, running netman as described above. And use the proxy like this for direct code usage :

switch_factory = SwitchFactory(MemoryStorage(), ThreadingLockFactory())
switch = switch_factory.get_anonymous_switch(
    model="cisco", 
    hostname="hostname_or_ip", 
    username="username", 
    password="password", 
    netman_server="http://192.168.1.1")

switch.add_vlan(1000, name="myvlan")

Or when invoked using the REST API, you can call the main server and provide the proxy netman server to be used.

curl -X POST http://127.0.0.1:5000/switches/hostname_or_ip/vlans -d '{"number": 1000, "name": "myvlan"}' 
    -H "Content-Type: application/json" 
    -H "Netman-model: cisco" 
    -H "Netman-username: username" 
    -H "Netman-password: password"
    -H "Netman-Proxy-Server: http://192.168.1.1"

Docker usage

From your computer, start a Netman container and a fake-switch container in order to mock a switch Netman will configure.

$ docker-compose up -d

Create a Vlan

curl -X POST http://localhost:32771/switches/netman_tsr1.yul1.example.net_1/vlans -d '{"number": 1000, "name": "myvlan"}' 
    -H "Content-Type: application/json" 
    -H "Netman-model: cisco" 
    -H "Netman-username: root" 
    -H "Netman-password: root"

Get information of an existing Vlan

curl -X GET http://localhost:32771/switches/netman_tsr1.yul1.example.net_1/vlans/1000 
    -H "Content-Type: application/json" 
    -H "Netman-model: cisco" 
    -H "Netman-username: root" 
    -H "Netman-password: root"

Contributing

Feel free to raise issues and send some pull request, we'll be happy to look at them!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].