Accéder au contenu.
Menu Sympa

fr - Re: [sympa-fr] Copie de liste

Objet : Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

Archives de la liste

Chronologique Discussions  
  • From: Benoît Marchal <adresse@cachée>
  • To: sympa-fr <adresse@cachée>
  • Subject: Re: [sympa-fr] Copie de liste
  • Date: Wed, 31 Oct 2018 16:30:30 +0100 (CET)

Bonjour,

Dans un bon jour avant un grand pont, j'ai essayé de regarder un peu comment faire, en utilisant les fonctions internes à Sympa
Je vous livre une première version qui ne me plaît pas encore tout à fait, mais cela fonctionne.

Comment ? 
Tout d'abord on prend un utilisateur bidon (par exemple : MONUTILSATEURQUEJEVEUXAUTORISE) et on rajoute un ligne dans  le scenario /etc/sympa/scenari/create_list.listmaster
is_equal([sender], 'MONUTILSATEURQUEJEVEUXAUTORISE')        md5,smime       -> do_it

On va retrouver ce nom dans le script ci-joint (variable $listmaster).
Il y a encore quelques warnings, mais cela copie bien une liste dans une autre sans manipuler de répertoires, de fichiers.
Rien n'empêche ensuite de modifier le fichier 'config' de la liste de destination avec les trucs habituels (sed, ...) .

J'ai un souci avec le masque de création des répertoires : il n'applique pas celui du fichier sympa.conf alors que l'umask fonctionne bien dans le code .

C'est peut-être plus long que la proposition de Pascal, mais j'espère que cela sera évolutif (à moins qu'on nous change les fonctions internes, on est à l'abri de rien).

Bon fin d'après midi

PS : j'ai quelques portions de code piquées à Sympa :)

---
Benoît MARCHAL
Sous direction Infrastructure & Services
Direction du Numérique
Université de Lorraine
Tél : 03.72.74.11.39
mél : adresse@cachée

----- Le 30 Oct 18, à 16:21, Pascal Maes <adresse@cachée> a écrit :
> Le 30 oct. 2018 à 14:30, Benoît Marchal <adresse@cachée> a écrit :
>
> Bonjour,
>
> Juqu'à la version 6.2.34, il était possible facilement de copier une liste vers une autre (hors les abonnés) en recopiant le répertoire de la première liste dans la deuxième.
>
> J'ai des procédures de création de listes étudiantes qui utilisent massivement cette fonctionnalité lors du passage d'une année sur l'autre (même nom au suffixe près).
> Cela permet de garder les modifications apportées par les gestionnaires de ces listes (modification des propriétaires, des scenarii, ...)
>
> Depuis la version 6.2.36, les modérateurs et les propriétaires sont directement mis dans la base de données. Avec les versions suivantes, d'autres paramètres qui étaient dans le fichier 'config' de la liste risquent de suivre le même chemin.
> Dans l'interface de Sympa, il est possible de copier une liste. Il est donc envisageable d'utiliser cette possibilité en  programmant quelque chose de propre qui fonctionne avec les procédures internes.
> J'essaye avec le debug au maximum de suivre ce qui se fait, mais ce n'est pas facile.
>
> Est ce quelqu'un l'a déjà fait et si oui comment ?
>
> En vous remerciant par avance
>
> ---
> Benoît MARCHAL
> Sous direction Infrastructure & Services
> Direction du Numérique
> Université de Lorraine
> Tél : 03.72.74.11.39
> mél : adresse@cachée


Bonjour,


Nous avions à peu près le même type de problème : je génère les listes de diffusion des étudiants à partir de script perl qui créent les répertoires avec les fichiers de configuration.
Avec les versions précédentes de Sympa, il suffisait de "reloader" la config et c'était bon.

Maintenant,

    - je génère le fichier config avec un "status closed"
    - je ne mets plus les owners et editors dans le fichier de config mais dans des fichiers owner.dump et editor.dump situés dans le même répertoire
    - j'utilise un script csh qui fait le reste (je passe par un répertoire temporaire) :

foreach i (*)
if (! -e /var/sympa/list_data/listes.xxx.yy/$i) then
/bin/cp -p -r $i /var/sympa/list_data/listes.xxx.yy/$i
/bin/chown -R sympa:sympa /var/sympa/list_data/listes.xxx.yy/$i
/var/sympa/bin/sympa.pl --open_list=$i\@listes.xxx.yy

Je ne suis pas certain que les lignes suivantes soient nécessaires

/var/sympa/bin/sympa.pl --reload_list_config --list=$i\@listes.xxx.yy --robot=listes.xxx.yy
/var/sympa/bin/sympa.pl --sync_list_db --list=$i\@listes.xxx.yy
endif
end


Remarques :


1) il y a une option de sympa.pl qui permet de générer les fichiers owner.dump et editor.dump

2) comme j'ai fait cela dans l'urgence, j'avais aussi, toujours via le script perl, généré les commandes sql pour l'ajout des owners et editors dans la table admin_table mais ce n'est peut-être pas nécessaire


--
Pascal

Attachment: copieListe.pl
Description: Perl program




Archives gérées par MHonArc 2.6.19+.

Haut de le page