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 ==