Ideas / TODO:
-* Soportar comillas para argumentos con espacios y otros caracteres, onda:
- 'misc set motd "Hola!\nEste es el servidor de garombia"'
-
-* Soportar keyword arguments, onda que:
- 'dns set pepe=10.10.10.1 juan=10.10.10.2'
- se mapee a algo como: dns.set(pepe='10.10.10.1', juan='10.10.10.2')
-
* Hacer el protocolo completamente introspectivo, de manera que el cliente pueda
ser muy simple y genérico y en caso de agregar funcionalidad no sea necesario
modificarlo.
+* Evaluar hacer un RootHandler en vez de un diccionario con los handlers de la
+ raiz para simplificar la introspección y tener un help/commands global.
+
+* Evaluar que el dispatcher vea si se llama a un HandlerContainer y de ser así
+ que tire una ayuda en vez de un CommandNotFound (por ejemplo si se pone:
+ "dhcp" solo que tire una ayuda). Y si hay un subcomando no encontrado, que
+ tire un Command Not Found in handler (por ej "dhcp lala" -> Command "lala" not
+ found in "dhcp").
+
+* Agregar logging.
+
+* Agregar validación con formencode.
+
+* Ver como manejar la información sobre si un servicio está andando o no. Si se
+ agrega una acción 'status' para ver el estado y si ese estado se saca de posta
+ de /proc o si es un estado interno y se asume que los servicios no se caen (no
+ creo que sea una buena idea esto último). Además habría que ver cuando arranca
+ el pymin, si se inician servicios automáticamente o no y si la info de qué
+ servicios iniciar o no es persistente y si puede configurarla el usuario.
+
+* No usar comandos con templates, porque después si no hay que ejecutarlos con
+ un shell (porque el template devuelve un string todo grande) y hay que andar
+ teniendo cuidado de escapar las cosas (y hay riesgos de seguridad de shell
+ injection).
+
Estas cosas quedan sujetas a necesitada y a definición del protocolo.
Para mí lo ideal es que el protocolo de red sea igual que la consola del
usuario, porque después de todo no va a ser más que eso, mandar comanditos.