Skip to Content.
Sympa Menu

fr - Re: [sympa-fr] Ajuster les proprios/modérateur via un appel à sympa.pl

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

List archive

Chronological Thread  
  • From: Benoît Marchal <address@concealed>
  • To: sympa-fr <address@concealed>
  • Subject: Re: [sympa-fr] Ajuster les proprios/modérateur via un appel à sympa.pl
  • Date: Fri, 9 Nov 2018 10:54:11 +0100 (CET)

Voilà

Cela devrait peut-être être factorisable avec rename, car il n'y a que le mode qui change dans l'objet Sympa::Spindle::ProcessRequest, mais je voulais faire vite.

Cdlt

diff sympa.pl sympa.pl.6.2.37b2
72c72
<         'close_list=s',         'rename_list=s', 'copy_list=s',
---
>         'close_list=s',         'rename_list=s',
635,676d634
< } elsif ($main::options{'copy_list'}) {
<     my $current_list =
<         Sympa::List->new(split(/\@/, $main::options{'copy_list'}, 2),
<         {just_try => 1});
<     unless ($current_list) {
<         printf STDERR "Incorrect list name %s\n",
<             $main::options{'rename_list'};
<         exit 1;
<     }
<
<     my $listname = $main::options{'new_listname'};
<     unless (defined $listname and length $listname) {
<         print STDERR "Missing parameter new_listname\n";
<         exit 1;
<     }
<
<     my $robot_id = $main::options{'new_listrobot'};
<     unless (defined $robot_id) {
<         $robot_id = $current_list->{'domain'};
<     } else {
<         unless (length $robot_id and Conf::valid_robot($robot_id)) {
<             printf STDERR "Unknown robot \"%s\"\n", $robot_id;
<             exit 1;
<         }
<     }
<
<     my $spindle = Sympa::Spindle::ProcessRequest->new(
<         context          => $robot_id,
<         action           => 'move_list',
<         current_list     => $current_list,
<         listname         => $listname,
<         mode         => 'copy',
<         sender           => Sympa::get_address($robot_id, 'listmaster'),
<         scenario_context => {skip => 1},
<     );
<     unless ($spindle and $spindle->spin and _report($spindle)) {
<         printf STDERR "Could not copy list %s to %s\@%s\n",
<             $current_list->get_id, $listname, $robot_id;
<         exit 1;
<     }
<     exit 0;
<
1409,1413d1366
<
< =item C<--copy_list=>I<listname>@I<robot>
< C<--new_listname=>I<newlistname> C<--new_listrobot=>I<newrobot>
<
< Copy a list.


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

----- Le 9 Nov 18, à 10:50, David Verdin <address@concealed> a écrit :

On 09/11/2018 10:23, Benoît Marchal wrote:
address@concealed">
Bonjour,

Dans le même ordre d'idée, je propose de mettre une option copy_list (dans le même format que 'rename_list')
sympa.pl --copy_list =<listname> --new_listname=<newlistname>   --new_listrobot=<newrobot>
C'est vraiment simple à écrire dans sympa.pl, j'ai fait un test.
Bonne idée !
Et ton test, tu ne l'as pas sous la main des fois ? Histoire de partir d'une amorce...
address@concealed">

Le seul problème que je vois est la multiplication des options que l'on aura dans la commande sympa.pl. Est ce que cela devra encore compréhensible ?
À vrai dire, on a en tête d'étendre très largement l'interface en ligne de commande.
L'objectif à long terme est de pouvoir tout faire via toutes les interfaces : ligne de commande, web, mail, REST et SOAP.

Je pense qu'à partir du moment où c'est bien documenté et qu'on a un schéma de nommage cohérent et devinable, on s'en sort.
address@concealed">

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

----- Le 9 Nov 18, à 10:13, David Verdin <address@concealed> a écrit :

C'est là que c'es un peu triste : on n'a pas de solution immédiate pour cela;

On en parlait justement avec des stagiaires cette semaine et, surtout depuis la version 6.2.34 et le déplacement des admins de listes en base de données, il semble essetiel de disposer d'un ensemble de commande via sympa.pl pour effectuer les changements de ces paramè_tres de configuration.

Là, tout de suite, je vois les commandes suivantes à ajouter :


sympa.pl --add-admin --list=<listname> --vhost=<domain> --email=<an@email> --role=<owner|editor> --visibility=<value> --profile="<privileged|normal>" --reception_mode=<reception_mode> --gecos<gecos>

sympa.pl --delete-admin --list=<listname> --vhost=<domain> --email=<an@email> --role=<owner|editor>

sympa.pl --replace-admin --list=<listname> --vhost=<domain> --previous_admin=<an@email> --new_admin=<an.other@email>


Ça vous parlerait ?



On 08/11/2018 21:44, Steeve Gagnon wrote:
address@concealed">

Bonjour à tous,

 

Je cherche à mettre en place une méthode pour mettre à jour les listes SYMPA via scripting.

 

Je créé les listes avec sympa.pl en utilisant –create_list; je les efface via –purge_list

Lorsque nécessaire, j'utilise un fichier XML pour indiquer les paramètres de la liste et cela fonctionne très bien.

 

Si je veux modifier la liste, je tente d'utiliser --modify_list. Mais là il semble que je doive absolument spécifier le nom d'une famille de liste.

Or au fil des années, cette fonctionnalité (les familles) n'a jamais été exploitée et donc… nous n'en avons pas.

 

Mes tentatives pour modifier une liste n'aboutissent donc jamais :

  • Si j'appelle "sympa.pl –input_file=unFichier.xml", il ne m'affiche rien. Mais je constate que la liste n'est pas modifiée. En fait, je crois qu'à ce moment, sympa croit qu'il doit partir comme un service et indique qu'il ne peut ouvrir le fichier contenant le PID.
  • Si j'appelle "sympa.pl –modify_list –input_file=unFichier.xml", sympa me dit que je dois spécifier un paramètre.

 

Je sais que je pourrais le copier le fichier config (comme SYMPA le fait normalement suite à une modif via l'interface WEB) et ajuster son contenu selon mes désirs. SYMPA décèlerait le changement et ajusterait la config en conséquence. Mais je n'aime pas cette approche car je crains qu'à un moment donné, mon script entre en conflit avec SYMPA pendant qu'il fait un travail sur la liste.

 

Comme sympa.pl a été conçu pour faire une gestion saine des listes, je préfèrerais passer par cette méthode.

 

Ma question est donc : Comment modifier une liste en utilisant un fichier XML et ce, sans avoir de "famille de liste" ?

 

 

Merci !

 

Steeve

 


-- 
"Mieux vaut viser la perfection et la rater que viser la médiocrité et l'atteindre."
- Francis Blanche


-- 
"Mieux vaut viser la perfection et la rater que viser la médiocrité et l'atteindre."
- Francis Blanche




Archive powered by MHonArc 2.6.19+.

Top of Page