Unsolclic: Diferència entre les revisions

De Guifi.net - Wiki Català

Línia 18: Línia 18:
 
== Exemples ==  
 
== Exemples ==  
 
* Nodes Client  
 
* Nodes Client  
** Linksys WRT54GL
+
** Linksys WRT54GL :[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]
[[http://guifi.net/ca/guifi/device/315/view/unsolclic UnSolclic DD-Guifi] del node [http://guifi.net/ca/node/1589 Gurb Castell]
+
** Nanostation 2 : [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]
** Nanostation 2
+
    [http://guifilocal/ca/guifi/device/26702/view/unsolclic AirOS 2.0] del node [http://guifilocal/ca/guifi/device/26702 TRSANord80Rd1]
+
 
* Supernodes  
 
* Supernodes  
 
** Linksys WRT54GL
 
** Linksys WRT54GL
** RouterBoard RB433  
+
** RouterBoard RB433 : [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]
    [http://guifilocal/ca/guifi/device/30084/view/unsolclic RouterOS 4.0+] del node [http://guifilocal/ca/guifi/device/30084 TRSASocietatNord]
+
  
 
= Procés de Generació =  
 
= Procés de Generació =  
Línia 34: Línia 31:
 
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament
 
Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels [https://guifi.net/ca/connectar_a_guifi tres passos per connectar], que ens proporcionarà tota la informació imprescindible, bàsicament
 
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...
 
* 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...
 +
[[File:Addnode1.png]]
 
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.  
 
* 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.  
 +
[[File:Addradio1b.png]]
 
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran
 
* 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran
 +
[[File:Addradio3b.png]]
  
 
== Fitxers involucrats (per ordre d'execució) ==  
 
== Fitxers involucrats (per ordre d'execució) ==  

Revisió de 20:02, 28 set 2012

Introducció i Definició

El UnsolClic és una eina per configurar els aparells que formen part de la xarxa Guifi.net i un dels factors clau per al seu creixement i expansió. Pren la forma d'un fitxer de text que correspòn a una sequència d'ordres escrita en el llenguatge acceptat per el aparell que utilitzem per connectar a la xarxa lliure guifi.net.

Aquest document vol descriure, des de la vessant del desenvolupament del mòdul Drupal-Guifi, tots els processos involucrats en la confecció del UnsolClic

Fortaleses i Febleses

  • Fortaleses
    • Aïlla a l'usuari de la configuració del trasto
    • Actua com a backup de la configuració
    • Fa visibles les configuraciós dels trastos per a tots els usuaris
    • Dona consistencia a la xarxa
  • Febleses
    • Ha de generar codi en diferents llenguatges per a diferents dispositius, per tant s'ha de conèixer mímimament aquests llenguatges
    • La incorporació de dispositius nous requereix aquesta codificació i porta temps.
    • És genera a l'instant i no fa cache ni manté control de versions

Exemples

Procés de Generació

La recepta dels tres passos per connectar

Abans de generar el UnSolClic cal que completem a la web de guifi.net la recepta dels tres passos per connectar, que ens proporcionarà tota la informació imprescindible, bàsicament

  • 1. Crear un node, defineix el nom del node, la zona de la que hereta configuracions, etc...

Addnode1.png

  • 2. Crear un trasto, defineix totes les propietats del nostre aparelli el firmware que executa, així com dades identificatives del nostre trasto.

Addradio1b.png

  • 3. Crear un enllaç, defineix quines seran les connexions del nostre node, l'adreça IP assignada i quins protocols d'enrutament s'utilitzaran

Addradio3b.png

Fitxers involucrats (per ordre d'execució)

├── guifi.module : Definició de rutes
├── guifi_unsolclic.inc.php : Execució Ruta UnSolclic, preparació de dependencies, generació Unsolclic
├── guifi_includes.inc.php : Funcions diverses de guifi.
├── guifi_node.inc.php : Càrrega de la informació del node
├── guifi_devices.inc.php : Càrrega de la informació del trasto
├── guifi_radios.inc.php : Càrrega de la informació de la radio
├── guifi_interfaces.inc.php : Càrrega de la informació de les interfaces
├── guifi_ipv4.inc.php : Càrrega de la informació de les adreces ip
├── guifi_links.inc.php : Càrrega de la informació dels enllaços

Entitats involucrades

  • Zona, la més específica de les diferents zones de la xarxa guifi.net on volem connectar, és a dir, que no tingui altres subzones
  • Node, la ubicació concreta des d'on volem connectar.
    • Trasto (device), l'aparell que utilitzarem per realitzar la connexió ( un node pot tenir més de un trasto i de diferents tipus)
    • Radio , el dispositiu inalàmbric que utilitza el nostre trasto per establir una connexió física ( per enllaçar es requereix almenys una radio)
    • Interface , el nom mitjançant el qual interactuem amb la radio (n'hi pot haver vàries per cada radio)
    • IPV4 , cadascuna de les adreces IP que reben les interfaces.
    • Enllaços (links) , cadascuna de les connexions del nostre trasto amb altres trastos propers (poden ser wireless o per cable).
  • Fabricant, la casa comercial que ven el trasto
  • Model, la denominació pròpia del fabricant per a determinar el trasto
  • Firmware, el programari intern que executa el trasto per realitzar totes les seves funcions (pot ser propietat del Fabricant, de tercers o de Programari Lliure)

Esquema de la Base de Dades

En la segutn imatge es pot veure l'esquema de les taules de les entitats involucreades en la generació del fitxer UnSolClic:

TaulesUnSolclic2.png

Families de Casos actuals

Kamikaze

AirOs

GuifiStation

Mikrotik

WRT-SveaSoft

Afegir suport per a nous aparells

Idea general

L'objectiu és millorar el procés d'incorporació de nous dispositius a l'aplicació actual. Mitjançant una nova gestió web i un sistema de plantilles estándard, els usuaris avançats podràn crear els configuradors 'UnSolClic' per als nous dispositius del mercat i mantenir els existents amb més facilitat i eficiència.

Diagrama de fluxe del procés

En el següent diagrama, partint de la situació inicial que veiem a la part superior esquerra, es mostra el procés a seguir per poder generar l'UnSolclic per a un aparell nou

Diagrama fluxe2.png

Creació de Fabricants

  • Llistat

Manufacturer1.png

  • Formulari

Manufacturer2.png

Creació de Models

Llistat

  • Models1b.png

Formulari

  • Models2c.png

Creació de Firmwares

Llistat

  • Firmware1b.png

Formulari

  • Firmware2b.png

Creació de Plantilles UnsolClic

Llistat

  • Unsolclic1b.png

Formulari

  • Unsolclic2b.png


Motor de plantilles Twig

En la majoria de les webs actuals trobem que, per facilitar el manteniment i l'optimització de codi, es busca la manera de separar la presentació del contingut, el patró de disseny del Model-Vista-Controlador és el més utilitzat en la majoria de frameworks actuals. Per implementar la capa de presentació és molt útil recórrer a un motor de plantilles estàndard que ens faciliti la feina. En el nostre sistema utilitzarem Twig per la seva potència i simplicitat.Les seves característiques principals són les següents:

  • Orígen : Symfony 2 Framework - Llicència : BSD
  • Substitució de variables, filtres de text i crida de funcions natives.
  • Estructures de control de flux
  • Inclusió de fitxers i catxé per augment de rendiment
  • Herència de plantilles
  • Extensions, plugins i sandbox

Sintaxi de Twig

La sintaxi de Twig s'ha pensat per ser fàcil de fer servir i ràpida. Bàsicament, una plantilla és un fitxer de text en el que hi trobem variables o expressions i etiquetes que en controlen la lògica.

Per mostrar el contingut d'una variable o expressió utilitzem la següent sintaxi : Plantilla:Variable

Per utilitzar etiquetes de control, utilitzarem {% set buffer = 'un string amb quelcom' %}

En el següent exemple de plantilla podem veure diferents exemples de la sintaxi de Twig

{# hello comment! #}
{{ foo.bar }} {% set foo = 'foo' %}
{{ name|striptags|title }}
{% if users|length > 0 %}
    <ul>
        {% for user in users %}
            <li>{{ user.username|e }}</li>
        {% endfor %}
    </ul>
{% endif %}

A la documentació oficial de Twig podem veure més casos

Convencions de Guifi.net disponibles a les plantilles

Edició de plantilles UnSolclic

Validació de plantilles UnSolclic

Eines de l'usuari