[ninux-dev] Convertire NetJSON a UCI
Nemesis
nemesis at ninux.org
Tue Oct 6 18:02:51 CEST 2015
Ho scritto di più sull'argomento qui:
http://nemesisdesign.net/blog/coding/netjsonconfig-convert-netjson-to-openwrt-uci/
Nemesis
On 09/18/2015 07:13 PM, Nemesis wrote:
> A lavoro sto scrivendo un tool per convertire NetJSON a UCI che mi
> aiuterà a mandare in pensione OpenWISP Manager.
>
> La libreria si chiama netjsonconfig
> <https://github.com/openwisp/netjsonconfig>.
>
> L'obiettivo finale è poter salvare la configurazione dei device in un
> unico campo JSONinvece che 3mila tabelle SQL tutte intrecciate.
>
> Sto ottenendo risultati incoraggianti, ad esempio, questo NetJSON:
>
> {
> "type": "DeviceConfiguration",
> "interfaces": [
> {
> "name": "wlan0",
> "type": "wireless",
> "addresses": [
> {
> "address": "192.168.1.1",
> "mask": 24,
> "proto": "static",
> "family": "ipv4"
> }
> ],
> "wireless": {
> "radio": "radio0",
> "mode": "access_point",
> "ssid": "MyWifiAP",
> "hidden": True
> }
> }
> ],
> "radios": [
> {
> "name": "radio0",
> "phy": "phy0",
> "driver": "mac80211",
> "protocol": "802.11n",
> "channel": 3,
> "channel_width": 20,
> "tx_power": 3
> }
> ]
> }
>
> Diventa:
>
> package network
>
> config interface 'wlan0'
> option ifname 'wlan0'
> option ipaddr '192.168.1.1/24'
> option proto 'static'
>
> package wireless
>
> config wifi-device 'radio0'
> option channel '3'
> option htmode 'HT20'
> option hwmode '11g'
> option phy 'phy0'
> option txpower '3'
> option type 'mac80211'
>
> config wifi-iface
> option device 'radio0'
> option hidden '1'
> option mode 'ap'
> option network 'wlan0'
> option ssid 'MyWifiAP'
>
> Qui c'è il codice del test, se ci buttate un occhio dovreste capire
> facilmente cosa succede, è molto leggibile:
> https://github.com/openwisp/netjsonconfig/blob/master/tests/test_openwrt.py#L625-L684
>
> Per svilupparla sto seguendo la documentazione di UCI
> <http://wiki.openwrt.org/doc/uci> e sto imparando una marea di cose!
>
> Ogni tanto provo le config generate su un routerino e pare che
> funzionano, ma sicuramente quando si andrà a regime ne scoprirò delle
> belle ... :-D
>
> Cmq la buona notizia in tutto questo è che lo strumento finale che
> uscirà fuori da tutto questo lavoro lo potremo utilizzare anche in
> ninux, ogni isola, gruppo o individuo potrebbe farsi il suo
> configuratore con i suoi template ecc.
>
> L'altra buona notizia è che l'architettura della libreria permette di
> aggiungere il supporto a più firmware creando nuovi backend. Quindi si
> possono potenzialmente scrivere backend per versioni customizzate di
> OpenWRT, DDWRT, Libremesh o addirittura AirOS (che ha un file di
> configurazione che non è molto lontano da quello che esce fuori
> facendo "uci show" su OpenWRT), l'importante è che il backend avrà
> come output una configurazione installabile.
>
> Nemesis
>
>
> _______________________________________________
> ninux-dev mailing list
> ninux-dev at ml.ninux.org
> http://ml.ninux.org/mailman/listinfo/ninux-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ml.ninux.org/pipermail/ninux-dev/attachments/20151006/a0b8732d/attachment-0001.html>
More information about the ninux-dev
mailing list