wiki:la-cli

Version 3 (modified by nanardon, 19 months ago) (diff)

--

La commande la-cli ouvre un environnement en ligne de commande facilitant la gestion de masse des objets au sein de Link::Accounts.

Premiers pas

Lancer la-cli

[root@yuko ~]# la-cli
latmostest cli=>

Classiquement la touche tab permet d’accéder à la completion:

latmostest cli=> 
!            commit       create       exit         expires      help         log          newalias     quit         rollback     select       unexported   user         
begin        config       exchangeip   expired      group        loadcsv      ls           query        rmalias      search       transaction  updalias
latmostest cli=>

et la commande help donne l'aide: sans argument elle liste les commandes disponibles, elle accepte le nom d'une fonction en argument:

latmostest cli=> help
!, begin, commit, config, create, exchangeip, exit, expired, expires, group, help, loadcsv, log, ls, newalias, query, quit, rmalias, rollback, search, select, transaction, unexported, updalias, user
latmostest cli=> help search
search objecttype filter1 [filter2...] - search object according filter
latmostest cli=> 

A noter que commande --help donne le même résultat que help commande

latmostest cli=> search --help
search objecttype filter1 [filter2...] - search object according filter
latmostest cli=>

Sélections et envirronement

Sélectionner des objets

Avec la commande select il est possible de... sélectionner un ou plusieurs objets. Un nouvel environnement est créé:

latmostest cli=> select user bob
Selecting user bob
latmostest user/bob=>

On peut ajout ou retirer des objets avec les commandes + et -:

latmostest user/bob=> + alice 
select is now user: bob, alice
latmostest user/(2 obj.)=>

Notez le changement du prompt qui indique le type d'objets sélectionnés et soit l'id de l'objet ou leur nombre.

On peut connaitre la sélection avec list (ou ls)

latmostest user/(2 obj.)=> ls
user: bob alice

Sous Selection

Par attribut réferent

Lorsqu'un attribut fait référence à d'autres objets ils possible de sous sélectionner tout les objets pointé par la sélection.

Exemple: l'attribut memberOf d'un utilisateur référence des groupes. Avec la-cli il est possible de sélectionner tout les groupes dont sont membres des utilisateurs:

latmostest cli=> select user bob alice 
Selecting user bob, alice
latmostest user/(2 obj.)=> ls
user: bob alice
latmostest user/(2 obj.)=> select memberOf 
Selecting group alkitty bokitty kitty test
latmostest user/group/(4 obj.)=>

En faisant cela les environnements s'empilent, en tapant exit on revient à environnement de niveau supérieur:

latmostest user/group/(4 obj.)=> ls
group: alkitty bokitty kitty test
latmostest user/group/(4 obj.)=> exit

latmostest user/(2 obj.)=> ls
user: bob alice
latmostest user/(2 obj.)=> exit

latmostest cli=>

Il est possible d'appeler une commande au sein de l'environnement parent sans quitter l'environnement courant en préfixant la commande par des ../, comme sous UNIX:

latmostest user/group/(4 obj.)=> ls
group: alkitty kitty bokitty test
latmostest user/group/(4 obj.)=> ../ls 
user: bob alice
latmostest user/group/(4 obj.)=>

Requêtes et modification d'objets

Avec la selection de plusieurs objet la-cli permet d'interroger et modifier en un seul appel un groupe d'objets.

La commande show permet de voir un attribut:

latmostest cli=> select user allan alice 
Selecting user Allan Kitty, Alice Kitty
latmostest user/(2 obj.)=> show givenName
allan: Allan
alice: Alice
latmostest user/(2 obj.)=> 

Avec les commandes set et unset il est possible modifier les attributs:

latmostest user/(2 obj.)=> show sn
allan: Kitty
alice: Kitty
latmostest user/(2 obj.)=> set sn KITTY
Done.
latmostest user/(2 obj.)=> show sn
allan: KITTY
alice: KITTY
latmostest user/(2 obj.)=> 

Dans ce cas tout l'attribut concerné prendra la même valeur sur tout les objets.

Pour les attributs multivalués on peut ajouter ou retirer une valeur à chaque objet sans modifier les valeurs déjà placées avec les commandes add et remove:

latmostest user/(3 obj.)=> show memberOf 
allan: alkitty
allan: test
alice: alkitty
alice: test
bob: bokitty
bob: kitty
bob: test
latmostest user/(3 obj.)=> add memberOf admcmpt 
done
latmostest user/(3 obj.)=> show  memberOf 
allan: admcmpt
allan: alkitty
allan: test
alice: admcmpt
alice: alkitty
alice: test
bob: admcmpt
bob: bokitty
bob: kitty
bob: test
latmostest user/(3 obj.)=>

Utilisation avancée

Transaction