#Let's say ya wanna build yourself a DHCP server... One thing you gonna need to do is provide a way to generate IP addresses. SIPASA does this part for ya.
Curl's an easy way to operate with this bad boy.
Run in dev rerun 'rackup'
List pools: curl -XGET http://127.0.0.1:9292/pools
Show a pool: curl -XGET http://127.0.0.1:9292/pools/first
Add a pool: curl -XPUT http://127.0.0.1:9292/pools/second -d @poolcreate.json or stdin: curl -XPUT http://127.0.0.1:9292/pools/third -d @- {"range": "10.10.0.0/24"}
Show interfaces: curl -XGET http://127.0.0.1:9292/interfaces
Show an interface: curl -XGET http://127.0.0.1:9292/interfaces/cheddarcheese.example.com
Create an interface: curl -XPUT http://127.0.0.1:9292/pools/second/mahchegocheese.example.com -v -d @- {"mac":"12:34:56:78:99","type":"primary","host":"manchegocheese"} ^D
Show IPs: curl -XGET http://127.0.0.1:9292/ips
Show an IP: curl -XGET http://127.0.0.1:9292/ips/192.168.2.4
Show hosts: curl -XGET http://127.0.0.1:9292/hosts
Show an interface: curl -XGET http://127.0.0.1:9292/hosts/manchegocheese
You can create a pool with gateway and/or netmask: curl -XPUT http://127.0.0.1:9292/pools/second -d @- {"range": ["10.10.10.55", "10.10.10.75"], "netmask": "255.255.255.0", "gateway": "10.10.10.1"} ^D If your pool has a gateway/netmask, interfaces from that pool will get those returned curl -XPUT http://127.0.0.1:9292/pools/second/mahchegocheese.example.com -d @- {"mac":"12:34:56:78:99","type":"primary","host":"manchegocheese"} ^D curl -XGET http://127.0.0.1:9292/interfaces/cheddarcheese.example.com
For comprehensive & up to date details see tests/rest_test.rb