[AlternC-dev] Formalisme export data en json ?

Retour à l'archive de la liste
Le site d'AlternC
Google Custom Search

Alban Crommer alban at octopuce.fr
Lun 17 Mar 11:47:30 CET 2014


Ola

> J'ai besoin d'exporter la structure d'un compte alternc v1 vers un
> alternc 3.0.2, du coup je m'intéresse à formaliser une structure de
> donnée pour exporter un compte depuis n'importe quelle version.

> Parmi les postulats pris en compte :
> -* les objets/entités sont en anglais,
> -* les mots de passe sont toujours en clair et encodé ,
> -* les objets mutliples sont au pluriel ,
> -* si on peut avoir liste d'information de même nature c'est un
> tableau d'objet.

On se fait un draft dans le wiki pour ce projet ? Tour rapide des questions qui se posent :

*    Comment structurer le format d'échange des méta-données ? 
*    Comment fonctionnent les autres formats d'export (ex: plesk) et quels informations mettent-ils à disposition ? 
*    Comment gèrer les transferts de plusieurs comptes à la fois ? 
*    Comment gèrer les transferts de version à version ? 
*    Comment gèrer les transferts de panel à panel ? 
*    Comment gérer les imports / exports de données binaires et / ou volumineuses (Ex: DB, Maildir) : ça c'est vraiment le gros morceau et c'est pas dit qu'on y arrive
*    Est-ce que ça permettrait d'avoir des backups pour les utilisateurs ?
*    Est-ce qu'on verrouille les accès d'un compte en cours d'export ?
*    Est-ce qu'on fait des procédures simplifiées ex: prise en compte de la migration DNS avec baisse des TTL et date de migration

Pour faire vite : il me semble qu'il faut exporter compte par compte, la gestion des actions de masse se faisant avec une file d'attente.

Le format d'export devrait inclure avoir un header et un "payload". 

Dans le header, des données globales relatives au compte et l'environnement actuel: 

*    Panel : ex "AltenrC"
*    Version : ex 3.0
*    Date de création
*    Plan / quotas
*    Fiche de coordonnées 

Dans le payload, comme tu l'as fait, les entrées par modules, ex mysql : { compte1, compte2, etc. }

L'outil d'import / export aurait : 
*    Une queue d'exécution pour les imports 
*    Des clefs d'autorisation pour les exports des comptes ou groupes de comptes

Comme j'ai vraiment des doutes sur notre capacité à faire l'export/import/backup des données binaires, j'ajoute sans y croire : 
*    Une table des progressions d'imports (avec la possibilité de forcer la validité d'une migration)
*    Une API permettant de télécharger les données des différents modules individuellement (ie. DB MySQL, maildir, etc.) ou globalement (tous les modules d'un coup). Perso, là dessus j'ai des doutes : trouver un moyen de faire un rsync serait mieux mais c'est vraiment pas trivial sur cette partie


Plus d'informations sur la liste de diffusion Dev