<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Ho scritto di più sull'argomento qui:<br>
<a class="moz-txt-link-freetext" href="http://nemesisdesign.net/blog/coding/netjsonconfig-convert-netjson-to-openwrt-uci/">http://nemesisdesign.net/blog/coding/netjsonconfig-convert-netjson-to-openwrt-uci/</a><br>
      <br>
      Nemesis<br>
      <br>
      <br>
      On 09/18/2015 07:13 PM, Nemesis wrote:<br>
    </div>
    <blockquote cite="mid:55FC4648.2000600@ninux.org" type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=windows-1252">
      <font face="Helvetica, Arial, sans-serif"><font face="Helvetica,
          Arial, sans-serif">A lavoro sto scrivendo u<font
            face="Helvetica, Arial, sans-serif">n <font
              face="Helvetica, Arial, sans-serif">tool per convertire
              NetJSON a UCI che mi aiuterà a mandare in pensione
              OpenWISP Manager.<br>
              <br>
              <font face="Helvetica, Arial, sans-serif">La libreria si
                chiama <a moz-do-not-send="true"
                  href="https://github.com/openwisp/netjsonconfig">netjsonconfig</a>.</font><br>
              <br>
              <font face="Helvetica, Arial, sans-serif">L'obiettivo
                finale è </font>poter salvare la configu<font
                face="Helvetica, Arial, sans-serif">razione dei device
                in <font face="Helvetica, Arial, sans-serif">un unico
                  campo JSON<font face="Helvetica, Arial, sans-serif">
                    invece che 3<font face="Helvetica, Arial,
                      sans-serif">mila tabelle SQL tutte intrecciate.<br>
                      <br>
                      <font face="Helvetica, Arial, sans-serif"><font
                          face="Helvetica, Arial, sans-serif">Sto
                          ottenendo risultati in<font face="Helvetica,
                            Arial, sans-serif">coraggianti, ad esempio,
                            questo NetJSON:<br>
                          </font></font></font></font></font></font></font></font></font></font></font><br>
      <meta http-equiv="content-type" content="text/html;
        charset=windows-1252">
              {<br>
                  "type": "DeviceConfiguration",<br>
                  "interfaces": [<br>
                      {<br>
                          "name": "wlan0",<br>
                          "type": "wireless",<br>
                          "addresses": [<br>
                              {<br>
                                  "address": "192.168.1.1",<br>
                                  "mask": 24,<br>
                                  "proto": "static",<br>
                                  "family": "ipv4"<br>
                              }<br>
                          ],<br>
                          "wireless": {<br>
                              "radio": "radio0",<br>
                              "mode": "access_point",<br>
                              "ssid": "MyWifiAP",<br>
                              "hidden": True<br>
                          }<br>
                      }<br>
                  ],<br>
                  "radios": [<br>
                      {<br>
                          "name": "radio0",<br>
                          "phy": "phy0",<br>
                          "driver": "mac80211",<br>
                          "protocol": "802.11n",<br>
                          "channel": 3,<br>
                          "channel_width": 20,<br>
                          "tx_power": 3<br>
                      }<br>
                  ]<br>
              }<br>
      <br>
      Diventa:<br>
      <blockquote>package network<br>
        <br>
        config interface 'wlan0'<br>
            option ifname 'wlan0'<br>
            option ipaddr '192.168.1.1/24'<br>
            option proto 'static'<br>
        <br>
        package wireless<br>
        <br>
        config wifi-device 'radio0'<br>
            option channel '3'<br>
            option htmode 'HT20'<br>
            option hwmode '11g'<br>
            option phy 'phy0'<br>
            option txpower '3'<br>
            option type 'mac80211'<br>
        <br>
        config wifi-iface<br>
            option device 'radio0'<br>
            option hidden '1'<br>
            option mode 'ap'<br>
            option network 'wlan0'<br>
            option ssid 'MyWifiAP'<br>
      </blockquote>
      Qui c'è il codice del test, se ci buttate un occhio dovreste
      capire facilmente cosa succede, è molto leggibile:<br>
      <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="https://github.com/openwisp/netjsonconfig/blob/master/tests/test_openwrt.py#L625-L684">https://github.com/openwisp/netjsonconfig/blob/master/tests/test_openwrt.py#L625-L684</a><br>
      <br>
      Per svilupparla sto seguendo la <a moz-do-not-send="true"
        href="http://wiki.openwrt.org/doc/uci">documentazione di UCI</a>
      e sto imparando una marea di cose!<br>
      <br>
      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<br>
      <br>
      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.<br>
      <br>
      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.<br>
      <br>
      Nemesis<br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
ninux-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ninux-dev@ml.ninux.org">ninux-dev@ml.ninux.org</a>
<a class="moz-txt-link-freetext" href="http://ml.ninux.org/mailman/listinfo/ninux-dev">http://ml.ninux.org/mailman/listinfo/ninux-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>