Ideas / TODO: * 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. Por otro lado, el cliente de consola, por que no es el cliente web pero accedido via ssh usando un navegador de texto como w3m???