guilhem / tentacool

REST API to manage Linux networking via netlink

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tentacool

Build Status Go report

Description

tentacool is a Go server controlled via RESTful API through a Unix Domain Socket.

Goal

Main goal is to manage all under the hood services for a simple "box". All done with a auditable, fast and bulletproof software.

So many software do frontend, backend and system... And finally run in root by easiness.

Configuration

Recommended /etc/network/interfaces config for your default interface (for instance eth0):

auto eth0
iface eth0 inet manual
  pre-up ifconfig $IFACE up
  post-down ifconfig $IFACE down

API

addresses

address object

  • link: interface to manage
  • ip: ip to add (CIDR format)
  • id

GET /addresses

List all current addresses

Response

GET /addresses/:id

Response

POST /addresses

Add a new address to manage.

parameters
Response
  • address
  • headers
    • X-Error: if address is stored in BD but fail to by apply.
Example
  • without id
==>
{
  "link":"eth0",
  "ip":"192.168.32.11/32",
}
<==
{
  "id":"1",
  "link":"eth0",
  "ip":"192.168.32.11/32",
}
  • with id
==>
{
  "id":"foo",
  "link":"eth0",
  "ip":"192.168.32.12/32",
}
<==
{
  "id":"foo",
  "link":"eth0",
  "ip":"192.168.32.12/32",
}

PUT /addresses/:id

Modify an existing address

parameters
Response
  • address
  • headers
    • X-Error: if address is stored in BD but fail to by apply.

dhcp

GET /dhcp

Checks if DHCP is running on the default interface.

Response

{'active': true|false}

POST /dhcp

Activate/deactive DHCP for default interface.

parameters
  • active true or false

About

REST API to manage Linux networking via netlink

License:Apache License 2.0


Languages

Language:Go 100.0%