wiki:AlterncExport

Version 3 (modified by domi, 15 months ago) (diff)

ortograf

M export

Une classe nommée m_export.php a été ajoutée afin de permettre l'export complet d'un compte alternc. L'export peut se faire pour une configuration particulière ou pour des données; le contenu de la classe est le suivant :

class m_export {
    function m_export() {
    }

    function export_conf(){
        global $hooks;
        $conf = array();
        $conf=$hooks->invoke('alternc_export_conf');
        return $conf;
    }

    function export_data($dir){
        global $hooks, $mem;
        $hooks->invoke('alternc_export_data', Array($dir));
    }

}

Elle ne contient donc que deux fonctions export_data et export_conf qui vont elles même appeler des hooks qui auront été implémentés dans les classes concernées. Ces hooks se réfèrent aux fonctions alternc_export_conf et alternc_export_data.

Utilisation

Un administrateur ayant la main sur le serveur alternc peut invoquer le script "/usr/lib/alternc/export_account.php" directement depuis la ligne de commande avec en paramètre l'id (le gid unix) du compte à exporter et le répertoire où doivent être deposées les données.

exemple : pour exporter la configuration et les données de l'admninistrateur principal du serveur ( uid 2000 )

/usr/lib/alternc/export_account.php 2000 /export/data/

Cette commande va génerer l'arborescence suivante:

/export/data/admin/
/export/data/admin/<date>/html/admin_html_<heure>.tar.gz
/export/data/admin/<date>/sql/admin_<nom base>_<heure>.tar.gz
/export/data/admin/<date>/dump_conf_<heure>

le fichier dump_conf_<heure> contient la configuration des éléments, formatée en html, car je pensais au départ permettre de l'afficher quelque part dans le panel. Donc si quelqu'un veut le changer: no problemo.

Dev

Pour que les informations puissent être exportées il suffit que la classe créée implémente au moins l'une des deux fonctions appelées par les hooks : "alternc_export_conf" et "alternc_export_data"

La fonction alternc_export_conf():

Elle ne prend aucun paramètre, et renvoie une chaine de caractères contenant les informations à exporter, formatées dans un tableau html ( pour le moment ).

exemple pour la classe m_dom:

function alternc_export_conf() {
    global $db,$err;
    $err->log("ftp","export");
    $f=$this->get_list();
    $str="<table border=\"1\"><caption> FTP </caption>\n";
    foreach ($f as $d=>$v) {
      $str.="  <tr>\n";
      $str.="    <td>".$v["id"]."</td>\n";
      $str.="    <td>".($v["encrypted_password"])."</td>\n";
      $str.="    <td>".($v["login"])."</td>\n";
      $str.="    <td>".($v["dir"])."<td>\n";
      $str.="  </tr>\n";
    }
    $str.="</table>\n";
    return $str;
  }

La fonction alternc_export_data($repertoire)

Cette fonction prend en paramètre le répertoire paramètre du script ( /export/data/ dans l'exemple du dessus ) modifié pour être de la forme /export/data/<login>/date/ . Elle ne renvoie rien mais se charge d'écrire les données dans le sous-répertoire choisi par le programmeur.