Idees ------ Cryptage : - Pouvoir configurer les algos de cryptage - Pouvoir choisir de crypter dans le fileset - Pouvoir choisir de forcer le cryptage dans la definition du client. Lister les fichiers sur le client : - Avoir un mode comme restore - Avoir une api list files client=xxx where=yyy Dans la filed/job.c:handle_client_request, ajouter une commande dans struct s_cmds cmds; et si possible utiliser le code de finlib - A voir, pourquoi ne pas utiliser mark/unmark comme dans une resto pour construire un fileset ? Sauvegarde des postes nomades : - Le client doit pouvoir initier les sauvegardes - Au niveau firewall, il ne doit y avoir que 1 connexion (1) Localhost | | +-------+ (4) +---------------+ | | |<----| | +--------+ (5) +-------+ | | | | DIRECTOR | | |<------+ | | | |---->| | | FD | | PROXY | | | PROXY | (3) +-------+-------+ | +-------> <-+---> | | +--------+ (6) +-^-----+ (2) | | +-------v-------+ /-\ | | | (7) | | | | | +-----> STORAGE | | | | | | | Initiate backup | | +-------+ +---------------+ --------------+ | (1) Network (1) & (2) BEGIN Backup (3) Bconsole like - Run command (4) & (5) DIR -> (PROX <-> PROX) -> FD connection (fileset, storage..) (6) & (7) FD -> (PROX <-> PROX) -> SD Bconsole : p Ajouter l'historique dans la bconsole - Ajouter une commande pour bloquer un drive Sauvegarde SAN : - Avoir un SD sur chaque FD - Avoir une serie de script qui : * bascule le lecteur en local * lance le SD * le script de mtx doit faire ses demandes au director sur un autochanger commun Gestion des stats : - Ajouter la gestion des stats dans le client et le sd - Ajouter un M_STATS dans la gestion des messages - générer un format simple UNIXSTAMP|label|unit|value - possibilité d'ajouter ça dans la base de donnée ou dans rrd API : - apr (apache portable runtime) pour les exemples de chargement de module dynamique (win32, linux, etc...) http://svn.apache.org/viewvc/apr/apr/trunk/dso/ - exemple apache http://modules.apache.org/doc/API.html - comment charger les librairies dependantes d'un hook ex: ACL -> -lacl GZIP -> -lgz - nommer les hook (a la place d'une structure de pointeur) ex: "action", mod_action_handler - interface - opendir - readdir - closedir - mkdir - stat - open - close - read - write - seek - get_perm - set_perm - configuration... (ajout automatique avant de charger le fichier de conf) - init - destroy - version - name - exemple de hook/module - cryptage ? - checksum (MD5/SHA1) - ACL/droits - compression (LZO, GZIP, BZIP) - initialiser le jcr avec seulement les hooks utiles - configuration - declarer les modules utiles - les options doivent utiliser le nom du module ex: GZIP level = 2 ACL use uid = yes etc... TODO ---- bweb : - Ajouter la liste des fichiers (quand il n'y en a pas trop) - Ajouter la liste des medias qui vont/ont expirer et les pruner - Ajouter un mode qui compte le nombre de fichier sous bfileview - Ajouter une gestion des utilisateurs avec des roles o Liste des roles possibles * view_stats * configure * run_job * run_restore * view_history * view_log * view_media * view_pool * update_media * view_autochanger * update_autochanger * cancel_job o Avoir des profiles ayant certains roles * admin (all) * customer (view_stats, view_history, view_log) * production (all - configure) ... o Pour faire la difference entre les groupes de la vue et les groupes d'acl, il faut ajouter un champs dans la table client_group (visible bool). o Ajout de 4 tables dans le catalogue - bweb_user (userid, username, passwd) passwd with apache ? - bweb_role (roleid, rolename) - bweb_role_member (roleid, userid) - bweb_client_group_acl (client_group_id, userid) Ou bien on ajoute seulement les roles dans une structure perl que l'on stocke dans le fichier de configuration - Integrer brestore en mode javascript o ajouter une api .ls_dir(jobid,pathid) .ls_file(jobid,pathid) .get_pathid(jobid,"/") .genbsr (fileid, fileid, fileid, fileid, fileid...) -> on peut utiliser une table dans la base pour faire ca cf bat manuel : - Avoir la version 2.0 et la version 2.2 en ligne (pour que les utilisateurs ne se trompent pas dans les versions) - Supprimer les (need bacula >= 1.xx) (dans la derniere version) bacula : - Faire un test de non regression avec pleins d'erreur o pb inclusion (distante, locale) o pb exclusion (distante, locale) o pb execution de commande o pb de config avec test du -t des differents daemon x Utiliser PQescapeStringConn a la place de PQescapeString - Utiliser la lib pcre - Rendre les scripts bacula-ctl-xxx LSB x Pouvoir utiliser les uid numeriques dans le backup des acl - Avoir un script qui dump la configuration pour faire des bug reports p modifier l'organisation de la table version (pour pouvoir ajouter les versions de bweb par exemple) - utiliser la meme fonction pour read_close_session et append_close_session