{"id":1042,"date":"2013-05-22T19:06:16","date_gmt":"2013-05-22T17:06:16","guid":{"rendered":"http:\/\/blog.nebule.org\/?p=1042"},"modified":"2016-03-29T19:02:53","modified_gmt":"2016-03-29T17:02:53","slug":"activation-de-lannuaire-dentites-asabiyya","status":"publish","type":"post","link":"http:\/\/blog.nebule.org\/?p=1042","title":{"rendered":"Activation de l&rsquo;annuaire d&rsquo;entit\u00e9s asabiyya"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p style=\"text-align: justify;\">L&rsquo;entit\u00e9 annuaire <a title=\"http:\/\/asabiyya.nebule.org\/\" href=\"http:\/\/asabiyya.nebule.org\/\" rel=\"nofollow\">asabiyya<\/a> se charge de parcourir r\u00e9guli\u00e8rement les entit\u00e9s qu&rsquo;elle conna\u00eet \u00e0 la recherche de nouvelles localisations d&rsquo;entit\u00e9s et de nouvelles entit\u00e9s.<\/p>\n<p style=\"text-align: justify;\">Elle est valid\u00e9e par <a title=\"http:\/\/puppetmaster.nebule.org\/\" href=\"http:\/\/puppetmaster.nebule.org\/\" rel=\"nofollow\">puppetmaster<\/a>.<\/p>\n<h2>Description<\/h2>\n<p style=\"text-align: justify;\">Toutes les entit\u00e9s ne connaissent pas toutes les autres entit\u00e9s, et encore moins leur localisation \u00e0 tout instant. Le r\u00f4le de l&rsquo;annuaire est de r\u00e9f\u00e9rencer des ressources ainsi que leurs emplacements. Ici les ressources sont des entit\u00e9s et leurs emplacements sont leurs localisations sur le r\u00e9seau num\u00e9rique.<\/p>\n<p style=\"text-align: justify;\">L&rsquo;annuaire est dans nebule la premi\u00e8re \u00e9tape du lien <em>social<\/em> entre toutes les entit\u00e9s.<\/p>\n<p style=\"text-align: justify;\">L&rsquo;entit\u00e9 annuaire <a title=\"http:\/\/asabiyya.nebule.org\/\" href=\"http:\/\/asabiyya.nebule.org\/\" rel=\"nofollow\">asabiyya<\/a> se met \u00e0 jour \u00e0 intervalle r\u00e9gulier. Aujourd&rsquo;hui, l&rsquo;intervalle est de une heure. Pour cela, elle commence par r\u00e9cup\u00e9rer chez toutes les entit\u00e9s qu&rsquo;elle conna\u00eet les liens de l&rsquo;objet <em>nebule\/objet\/entite\/localisation<\/em> . Ensuite, \u00e0 partir de ces liens qu&rsquo;elle parcourt, elle recherche uniquement les liens sp\u00e9cifiant une localisation d&rsquo;entit\u00e9 et en extrait l&rsquo;identifiant de l&rsquo;entit\u00e9 ainsi que l&rsquo;identifiant de la localisation. L&rsquo;objet de chaque entit\u00e9 ainsi identifi\u00e9e (c&rsquo;est \u00e0 dire la cl\u00e9 publique) est t\u00e9l\u00e9charg\u00e9 si sont type-mime est <em>application\/x-pem-file<\/em>. Pour les localisations, c&rsquo;est \u00e0 la fois les liens et l&rsquo;objet contenant la localisation qui sont t\u00e9l\u00e9charg\u00e9s si le type-mime de l&rsquo;objet est <em>text\/plain<\/em>. Le type-mime \u00e9tant un lien, le fait de synchroniser en premier les liens d&rsquo;un objet permet de conna\u00eetre sont type-mime sans le t\u00e9l\u00e9charger.<!--more--><\/p>\n<h2>Scripts<\/h2>\n<p>Le script utilis\u00e9 pour ce travail (en <em>bash<\/em>):<\/p>\n<pre>#!\/bin\/bash\n# Robot automatique de synchronisation d'entite annuaire.\n# Licence GNU GPL\n# Projet nebule - www.nebule.org - Stephane DENDIEVEL\n# robot_sync_ann.sh\n\ncd \/home\/asabiyya\n. .\/robot.env.sh\n. .\/lib_nebule.sh \n\n[ -f \"$nebule_temprep\/activRobotSyncAnn\" ] &amp;&amp; exit 0\n[ -f \"$nebule_temprep\/disabledRobot\" ] &amp;&amp; exit 0\ntouch \"$nebule_temprep\/activRobotSyncAnn\"\n\n#nebSyncLiens $nebule_publ_entite\n\n# synchro de tous les objets dont depend l'entite\nLOCOBJ=$(_crcalc \"nebule\/objet\/entite\/localisation\")\nnebSyncLiens $LOCOBJ\nnebReadObjLinks $LOCOBJ | while read L\ndo\n # [ \"$(_readfield $L 7)\" == \"$LOCOBJ\" ] &amp;&amp; nebSyncLiens $(_readfield $L 5)\n  [ \"$(_readfield $L 7)\" == \"$LOCOBJ\" ] &amp;&amp; \n      [ \"$(nebReadObjTypeMime $(_readfield $L 5))\" == \"application\/x-pem-file\" ] &amp;&amp; nebSyncObjet $(_readfield $L 5)\n  [ \"$(_readfield $L 7)\" == \"$LOCOBJ\" ] &amp;&amp; nebSyncLiens $(_readfield $L 6)\n  [ \"$(_readfield $L 7)\" == \"$LOCOBJ\" ] &amp;&amp; \n      [ \"$(nebReadObjTypeMime $(_readfield $L 6))\" == \"text\/plain\" ] &amp;&amp; nebSyncObjet $(_readfield $L 6)\ndone\n\nrm \"$nebule_temprep\/activRobotSyncAnn\"<\/pre>\n<p>Les variables d&rsquo;environnement\u00c2\u00a0:<\/p>\n<pre>nebule_nolog=0\nnebule_progrep=\"\/home\/asabiyya\"\nnebule_baserep=\"\/home\/asabiyya\/pub\"\nnebule_privrep=\"\/home\/asabiyya\/priv\"\nnebule_temprep=\"\/home\/asabiyya\/tmp\"\nnebule_logfile=\"\/home\/asabiyya\/neb.log\"\nnebule_version=\"version\/1.1\"\nnebule_hashalgo=\"sha256\"\nnebule_symalgo=\"aes-256-ctr\"\nnebule_keylen=\"256\"\nnebule_compalgo=\"bz2\"\nnebule_suivi=0\nnebule_datelog=1\nnebule_nolinkverify=0\nnebule_timeout=2\nnebule_linkcheck=1<\/pre>\n<p style=\"text-align: justify;\">Sauf cas particuliers, cette entit\u00e9 ne valide aucune localisation par elle-m\u00eame. Les localisations sont valid\u00e9es (et invalid\u00e9es) par des entit\u00e9s tierces.<\/p>\n<h2 style=\"text-align: justify;\">Activation<\/h2>\n<p style=\"text-align: justify;\">Le script est activ\u00e9 par <em>CRON<\/em> depuis lundi. Le script n&rsquo;est vraiment fonctionnel que depuis mardi soir.<\/p>\n<p style=\"text-align: justify;\">Suite \u00e0 l&rsquo;activation du script, l&rsquo;entit\u00e9 \u00e0 commenc\u00e9 \u00e0 parcourir r\u00e9guli\u00e8rement les autres entit\u00e9s. Mais ne connaissant que les quelques entit\u00e9s en <em>nebule.org<\/em>, rien de nouveau n&rsquo;a \u00e9t\u00e9 d\u00e9couvert. Puis en ajoutant explicitement l&rsquo;entit\u00e9 <em>stephane.nebule.fr<\/em>, elle \u00e0 d\u00e9couvert automatiquement au bout d&rsquo;une heure toutes les autres entit\u00e9s qui y sont rattach\u00e9es.<\/p>\n<p style=\"text-align: justify;\">Mission accomplie.<\/p>\n<h2 style=\"text-align: justify;\">Liens<\/h2>\n<p style=\"text-align: justify;\">&#8211; <a title=\"wiki.nebule.org - Impl\u00e9mentations de r\u00e9f\u00e9rences - bash - annuaire\" href=\"http:\/\/wiki.nebule.org\/index.php\/Documentation_-_Impl%C3%A9mentations_de_r%C3%A9f%C3%A9rences_-_bash_-_annuaire\" target=\"_blank\">wiki.nebule.org &#8211; Documentation_-_Impl\u00e9mentations_de_r\u00e9f\u00e9rences_-_bash_-_Annuaire<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction L&rsquo;entit\u00e9 annuaire asabiyya se charge de parcourir r\u00e9guli\u00e8rement les entit\u00e9s qu&rsquo;elle conna\u00eet \u00e0 la recherche de nouvelles localisations d&rsquo;entit\u00e9s et de nouvelles entit\u00e9s. Elle est valid\u00e9e par puppetmaster. Description Toutes les entit\u00e9s ne connaissent pas toutes les autres entit\u00e9s, et encore moins leur localisation \u00e0 tout instant. Le r\u00f4le de l&rsquo;annuaire est de r\u00e9f\u00e9rencer &hellip; <a href=\"http:\/\/blog.nebule.org\/?p=1042\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Activation de l&rsquo;annuaire d&rsquo;entit\u00e9s asabiyya<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[53,57,64,5,7,21],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/1042"}],"collection":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1042"}],"version-history":[{"count":1,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/1042\/revisions"}],"predecessor-version":[{"id":2261,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=\/wp\/v2\/posts\/1042\/revisions\/2261"}],"wp:attachment":[{"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1042"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1042"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.nebule.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}