=========== OPTIONS SR3 =========== -------------------------------------- Format de fichier de configuration SR3 -------------------------------------- :section de manuel: 7 :Date: |today| :Version: |release| :group de Manuel: MetPX-Sarracenia SYNOPSIS ======== :: nom valeur nom valeur d’utilisation nom valeur_${substitution} . . . DESCRIPTION =========== Les options sont placées dans des fichiers de configuration, une par ligne, avec le format:: option Par exemple:: debug true debug définit l’option *debug* pour activer une sortie d'éxécution plus détaillée. Si aucune valeur n’est spécifiée, la valeur true est assigné, donc les valeurs ci-dessus sont équivalentes. Un deuxième exemple:: broker amqps://anonymous@dd.weather.gc.ca Dans l’exemple ci-dessus, *broker* est le mot-clé de l’option, et le reste de la ligne est la valeur attribuée au paramètre. Les fichiers de configuration sont une séquence de paramètres, avec un paramètre par ligne. Remarque: * les fichiers sont lus de haut en bas, surtout pour *directory*, *strip*, *mirror*, et les options *flatten* s’appliquent aux clauses *accept* qui se trouvent dans la suite du fichier. * La barre oblique (/) est utilisée comme séparateur de chemin dans les fichiers de configuration Sarracenia sur tous les systèmes d’exploitation. L'utilisation de la barre oblique inverse comme séparateur (\) (tel qu’utilisé dans la cmd shell de Windows) risque de ne pas fonctionner correctement. Lorsque des fichiers sont lu dans Windows, le chemin d’accès est immédiatement converti en utilisant la barre oblique. Ceci est pour s'assurer que les options *reject*, *accept*, et *strip* peuvent filtrer des expressions correctement. C'est pour cela qu'il est toujours important d'utiliser la barre oblique (/) quand un séparateur est nécessaire. * **#** est le préfixe des lignes de descriptions non fonctionnelles de configurations ou de commentaires. C'est identique aux scripts shell et/ou python * **Toutes les options sont sensibles aux majuscules et minuscules.** **Debug** n’est pas la même chose que **debug** ni **DEBUG**. Ces trois options sont différentes (dont deux n’existent pas et n’auront aucun effet et créeront un avertissement d'« option inconnue »). Le fichier a un ordre important. Il est lu de haut en bas, donc les options qui sont assignée sur une ligne on tendance a affecter les lignes qui suivent:: mirror off directory /data/just_flat_files_here_please accept .*flatones.* mirror on directory /data/fully_mirrored accept .* Dans l’extrait ci-dessus, le paramètre *mirror* est désactivé, et la valeur de *directory* est définie. Les fichiers dont le nom inclut *flatones* seront donc tous placés dans le répertoire */data/just_flat_files_here_please*. Pour les fichiers qui n’ont pas ce nom, ils ne seront pas récupérés par le premier *accept*. Ensuite, avec le *mirror* activé et le nouveau paramètre de *directory* défini, le restant des fichiers atterrira dans /data/fully_mirrored. Un deuxième exemple : séquence #1:: reject .*\.gif accept .* séquence #2:: accept .* reject .*\.gif .. note:: FIXME: cela ne correspond-il qu'aux fichiers se terminant par 'gif' ou devrions-nous y ajouter un $ ? cela correspondra-t-il à quelque chose comme .gif2 ? y a-t-il un .* supposé à la fin ? Dans la séquence #1, tous les fichiers se terminant par 'gif' sont rejetés. Dans la séquence #2, le accept .* (qui accepte tout) est lu avant la déclaration du rejet, donc le rejet n’a aucun effet. Certaines options ont une portée globale, plutôt que d’être interprété dans l’ordre. Dans ces cas, la dernière déclaration remplace celle qu'il y avait plus tôt dans le fichier.. Variables ========= Il est possible de faire une substitution dans la valeur d'une option. Les valeurs sont représentées par ${name}. Le nom peut être une variable d’environnement ordinaire, ou choisi parmi un certain nombre de variables déjà intégrés:: varTimeOffset -5m directory /monrépertoirelocal/${%Y%m%d_%Hh%m:%S.%f}/mydailies accept .*observations.* rename lala_${%o-1h%Y%m%d%H%m%S.%f} Il est possible les substitution de date et heure, avec des décalage, dans le premier cas avec varTimeOffset, un décalage de 5 minutes dans le passé, dans le deuxième cas, c'est une heure dans le passé. Il est également possible de spécifier des substitutions de variables sur les arguments du paramètre du *directory* en utilisant la notation *${..} * : * %... - un patron tel qu'accepté par `datetime.strftime() `_ * avec l'ajout du décalage au début avec o+- et une durée. * exemple: ${%Y/%m/%d_%Hh%M:%S.%f} --> 2022/12/04_17h36:34.123479 * SOURCE - l’utilisateur amqp qui a injecté des données (extraites du message d'annonce). * BD - le répertoire de base. * BUP - le composant du chemin de baseUrl (ou : baseUrlPath). * BUPL - le dernier élément du chemin du baseUrl. (ou: baseUrlPathLast). * PBD - le "post base dir". * *var* - n'importe quelle variable d’environnement. * BROKER_USER - le nom d’utilisateur pour l’authentification auprès du courtier (par exemple, anonyme) * POST_BROKER_USER - le nom d’utilisateur pour l’authentification auprès du courtier de destination (post_broker) * PROGRAM - le nom du composant (subscribe, shovel, etc...) * CONFIG - le nom du fichier de configuration en cours d'exécution. * HOSTNAME - le hostname qui exécute le client. * RANDID - Un ID aléatoire qui va être consistant pendant la duration d'une seule invocation. * RAND8 - un nombre aléatoire à 8 chiffres qui est généré chaque fois qu'il est évalué dans une chaîne de caractères. * INSTANCE - le numéro d'instance du processus de flux (composant/configuration) Les horodatages %Y%m%d et %H font référence à l’heure à laquelle les données sont traitées par le composant, ceci n’est pas décodé ou dérivé du contenu des fichiers livrés. Toutes les dates/heures de Sarracenia sont en UTC. Le paramètre varTimeOffset peut spécifier une déviation par rapport à l'heure actuelle. note:: Lorsque les substitutions de date ${% sont présentes, l'interprétation des modèles % dans les noms de fichiers par strftime, peut signifier qu'il faut leur échapper les caractères précédents via le doublage : %% Référez à *sourceFromExchange* pour un exemple d’utilisation. Notez que toute valeur déjà intégrée dans Sarracenia a priorité par rapport à une variable du même nom dans l’environnement. Notez que les paramètres de *flatten* peuvent être modifiés entre les options de *directory*. Substitutions compatibles avec Sundew ------------------------------------- Dans `MetPX Sundew <../Explication/Glossary.html#sundew>`_, le format de la nomination de fichier est beaucoup plus stricte, et est spécialisée pour une utilisation aves les données du World Meteorological Organization (WMO). Notez que la convention du format des fichiers est antérieure, et n’a aucun rapport avec la convention de dénomination des fichiers de WMO actuellement approuvée, et est utilisé strictement comme format interne. Les fichiers sont séparés en six champs avec deux points. Le premier champ, DESTFN, est le "Abbreviated Header Line (AHL)" de WMO (style 386) ou les blancs sont remplacé avec des traits de soulignement :: TTAAii CCCC YYGGGg BBB ... (voir le manuel de WMO pour plus de détails) suivis de chiffres pour rendre le produit unique (cela est vrai en théorie, mais pas en pratique vu qu'il existe un grand nombre de produits qui ont les mêmes identifiants). La signification du cinquième champ est une priorité, et le dernier champ est un horodatage. La signification des autres champs varie en fonction du contexte. Exemple de nom de fichier :: SACN43_CWAO_012000_AAA_41613:ncp1:CWAO:SA:3.A.I.E:3:20050201200339 Si un fichier est envoyé à Sarracenia et qu’il est nommé selon les conventions de Sundew, les champs de substitution suivants seront disponibles:: ${T1} remplacer par le bulletin T1 ${T2} remplacer par le bulletin T2 ${A1} remplacer par le bulletin A1 ${A2} remplacer par le bulletin A2 ${ii} remplacer par le bulletin ii ${CCCC} remplacer par le bulletin CCCC ${YY} remplacer par le bulletin YY (obs. jour) ${GG} remplacer par le bulletin GG (obs. heure) ${Gg} remplacer par le bulletin Gg (obs. minute) ${BBB} remplacer par le bulletin bbb ${RYYYY} remplacer par l'année de réception ${RMM} remplacer par le mois de réception ${RDD} remplacer par le jour de réception ${RHH} remplacer par l'heure de réception ${RMN} remplacer par la minute de réception ${RSS} remplacer par la seconde de réception ${YYYY} année actuelle (utilisé %Y est préféré) ${MM} mois actuel (utilisé %M est préféré) ${JJJ} julian actuelle (utilisé %j est préféré) ${YYYYMMDD} date actuelle (utilisé %Y%M%D est préféré) Les champs 'R' proviennent du sixième champ, et les autres viennent du premier champ. Lorsque des données sont injectées dans Sarracenia à partir de Sundew, l’en-tête du message d'annonce *sundew_extension* fournira la source de ces substitions même si ces champs ont été supprimés des fichiers livrés. note:: les versions périmés de spécification temporelles éventuellement vont cessé d´être interprétés ands une version ultérieur. SR_DEV_APPNAME ~~~~~~~~~~~~~~ La variable d’environnement SR_DEV_APPNAME peut être définie pour que la configuration de l’application et les répertoires d’état soient créés sous un nom différent. Ceci est utilisé dans le développement pour pouvoir avoir de nombreuses configurations actives à la fois. Cela permet de faire plus de tests au lieu de toujours travailler avec la configuration *réelle* du développeur. Exemple : export SR_DEV_APPNAME=sr-hoho... lorsque vous démarrez un composant sur un système Linux, il va rechercher les fichiers de configuration dans ~/.config/sr-hoho/ et va placer les fichiers d’état dans le répertoire ~/.cache/sr-hoho. TYPES D'OPTIONS =============== Les options de sr3 ont plusieurs types : count type de nombre entier. Même format que *size* détaillé plus bas. duration un nombre à virgule flottante qui indique une quantité en secondes (0.001 est 1 milliseconde) modifié par un suffixe unitaire ( m-minute, h-heure, M-mois ). flag une option qui a la valeur soit Vrai (True ou on) ou Faux (False ou off) (une valeur booléenne). float un nombre à virgule flottante, (séparateur de décimale étant un point.) max de trois chiffres après le décimal, alors plus grand que 1000 devient des nombre entiers. list une liste de chaîne de caractères, chaque occurrence successive se rajoute au total. Tous les options plugins de v2 sont déclarée du type list. set un assortissement de chaîne de caractères, chaque occurrence successive s'unionise au total. size taille entière. Suffixes k, m et g pour les multiplicateurs kilo, méga et giga (base 10). si on rajoute ´b' ... c´est base 2 : 1k=1000, 1kb=1024 str une chaîne de caractères. OPTIONS ======= Les options actuelles sont énumérées ci-dessous. Notez qu’elles sont sensibles aux majuscules, et seulement un extrait est disponible sur la ligne de commande. Celles qui sont disponibles sur la ligne de commande ont le même effet que lorsqu’elles sont spécifiés dans un fichier de configuration. Les options disponibles dans les fichiers de configuration : accelTreshold défaut: 0 (désactiver.) -------------------------------------------- L'option accelThreshold indique la taille minimale d'un fichier transféré pour qu'un téléchargeur binaire puisse être lancé. accelXxxCommand ---------------- On peut spécifier d’autres fichiers binaires pour les téléchargeurs pour des cas particuliers, +-----------------------------------+--------------------------------+ | Option | Valeur par Défaut | +-----------------------------------+--------------------------------+ | accelWgetCommand | /usr/bin/wget %s -O %d | +-----------------------------------+--------------------------------+ | accelScpCommand | /usr/bin/scp %s %d | +-----------------------------------+--------------------------------+ | accelCpCommand | /usr/bin/cp %s %d | +-----------------------------------+--------------------------------+ | accelFtpgetCommand | /usr/bin/ncftpget %s %d | +-----------------------------------+--------------------------------+ | accelFtpputCommand | /usr/bin/ncftpput %s %d | +-----------------------------------+--------------------------------+ utilisez %s pour remplacer le nom du fichier source et %d pour le fichier en cours d’écriture. Un exemple de paramètre à remplacer :: accelCpCommand dd if=%s of=%d bs=4096k accept, reject et acceptUnmatched --------------------------------- - **accept (optionnel) []** - **reject (optionnel)** - **acceptUnmatched (défaut: True)** Les options **accept** et **reject** traitent les expressions régulières (regexp). Le regexp est appliqué à l’URL du message d'annonce pour trouver une correspondance. Si l’URL d’un fichier correspond à un modèle **reject**, le message d'annonce est reconnu comme consommé par le courtier et est ignoré. Celui qui correspond à un modèle **accept** est traité par le composant. Dans de nombreuses configurations, les options **accept** et **reject** sont mélangé avec l’option **directory**. Ces options associent les messages d'annonce acceptés à la valeur du **directory** sous laquelle elles sont spécifiées. Une fois que toutes les options **accept** / **reject** sont traitées, normalement le message d'annonce est accepté. Pour changer ce comportement, il est possible de définir **acceptUnmatched** à False. Les paramètres de **accept/reject** sont interprétés dans l’ordre. Chaque option est traitée de manière ordonnée de haut en bas. Par exemple: séquence #1:: reject .*\.gif accept .* séquence #2:: accept .* reject .*\.gif Dans la séquence #1, tous les fichiers se terminant par 'gif' sont rejetés. Dans la séquence #2, le accept .* (qui accepte tout) est lu avant la déclaration de reject, de sorte que le reject n’a aucun effet. Il est recommandé d’utiliser le filtrage côté serveur pour réduire le nombre d’annonces envoyées au composant, et a la place, envoyer un sur ensemble de ce qui est pertinent, et de seulement régler les mécanismes côté client, économisant du bandwidth et du traitement pour tous. Plus de détails sur les directives: Les options **accept** et **reject** utilisent des expressions régulières (regexp) pour trouver une correspondance avec l’URL. Ces options sont traitées séquentiellement. L’URL d’un fichier qui correspond à un modèle **reject** n’est pas publiée. Les fichiers correspondant à un modèle **accept** sont publiés. Encore une fois, un *rename* peut être ajouté à l’option *accept*... les produits qui correspondent a l'option *accept* seront renommé comme décrit... à moins que le *accept* corresponde à un fichier, l’option *rename* doit décrire un répertoire dans lequel les fichiers seront placé (en préfix au lieu de remplacer le nom du fichier). L’option **permDefault** permet aux utilisateurs de spécifier un masque d'autorisation octal numérique de style Linux:: permDefault 040 signifie qu’un fichier ne sera pas publié à moins que le groupe ait l’autorisation de lecture (sur une sortie ls qui ressemble à : ---r-----, comme une commande chmod 040 ). Les options **permDefault** spécifient un masque, c’est-à-dire que les autorisations doivent être au moins ce qui est spécifié. Le **regexp pattern** peut être utilisé pour définir des parties du répertoire si une partie du message d'annonce est placée entre parenthèses. **sender** peut utiliser ces parties pour générer le nom du répertoire. Les chaînes de parenthèses entre les guillemets rst remplaceront le mot-clé **${0}** dans le nom du répertoire... le second **{1} $** etc. Exemple d’utilisation :: filename NONE directory /ce/premier/répertoire/ciblé accept .*fichier.*type1.* directory /ce/répertoire/ciblé accept .*fichier.*type2.* accept .*fichier.*type3.* DESTFN=fichier_de_type3 directory /ce/${0}/modèle/${1}/répertoire accept .*(2016....).*(RAW.*GRIB).* Un message d'annonce sélectionné par le premier *accept* sera remis inaltérée dans le premier répertoire. Un message d'annonce sélectionné par le deuxième *accept* sera remis inaltérée dans deuxième répertoire. Un message d'annonce sélectionné par le troisième *accept sera renommé « fichier_de_type3 » dans le deuxième répertoire. Un message d'annonce sélectionné par le quatrième *accept* sera remis inaltérée à un répertoire. Ça sera appelé */ce/20160123/modèle/RAW_MERGER_GRIB/répertoire* si la notice du message d'annonce ressemble à cela: **20150813161959.854 http://this.pump.com/ relative/path/to/20160123_product_RAW_MERGER_GRIB_from_CMC** acceptSizeWrong: (défaut: False) ------------------------------------------- Lorsqu’un fichier est téléchargé et que sa taille ne correspond pas à celle annoncée, il est normalement rejeté, comme un échec. Cette option accepte le fichier même avec la mauvaise taille. Cela est utile lorsque le fichier change fréquemment, et qu’il passe en fil d’attente, donc le fichier est modifié au moment de sa récupération. Lorsque acceptSizeWrong est défini sur True, le téléchargement accepte le fichier même si sa taille ne correspond pas à celle du message de notification reçu. Cela est utile lorsque les ressources changent fréquemment et qu'il y a une file d'attente, de sorte que le fichier est modifié au moment où il est récupéré. Dans le cas par défaut (acceptSizeWrong défini sur False), l'incompatibilité de taille est considérée comme un échec de téléchargement. Sarracenia vérifie ensuite si ce qui a été téléchargé correspond à ce qui se trouve actuellement sur le serveur en amont. Si la date de modification sur le serveur en amont est plus récente que dans le message:: + 2024-08-11 00:00:47,978 [INFO] sarracenia.flow download upstream resource is newer, so message https://hpfx.collab.science.gc.ca //20240811/WXO-DD/citypage_weather/xml/NB/s0000653_e.xml is obsolete. Discarding. traduction:: 2024-08-11 00:00:47,978 [INFO] la ressource en amont est plus récente, donc le message https://hpfx.collab.science.gc.ca //20240811/WXO-DD/citypage_weather/xml/NB/s0000653_e.xml est obsolète. on abandonne le traitement du message. Si elle correspond à la taille en amont, alors aucune erreur ne s'est produite lors du téléchargement, c'est juste que la taille du message annonçant la nouvelle ressource ne correspond pas à ce qui est actuellement disponible. Il est inutile de réessayer le téléchargement. Dans les deux cas, le fichier téléchargé et le message correspondant sont tous deux rejetés. Si la vérification du serveur en amont échoue, ou si la récupération elle-même a échoué, alors la ressource est placée dans la file d'attente de nouvelles tentatives pour des tentatives ultérieures. attempts (défaut: 3) ----------------------------- L’option **attempts** indique combien de fois il faut tenter le téléchargement des données avant d’abandonner. Le défaut de 3 tentatives est approprié dans la plupart des cas. Lorsque l’option **retry** a la valeur false, le fichier est immédiatement supprimé. Lorsque l’option **attempts** est utilisé, un échec de téléchargement après le numéro prescrit des **attempts** (ou d’envoi, pour un sender) va entrainer l’ajout du message d'annonce à un fichier de fil d’attente pour une nouvelle tentative plus tard. Lorsque aucun message d'annonce n’est prêt à être consommé dans la fil d’attente AMQP, les requêtes se feront avec la fil d’attente de "retry". Si: * on sait que les transferts échoueront pendant une longue période, en raison d'une panne ou d'une maintenance à la destination. * Vous vous attendez à ce qu'un grand volume de fichiers soit mis en file d'attente pour transfert. Les files d'attente sur la pompe de données augmenteront donc jusqu'à un point où les administrateurs de la pompe ne seront plus à l'aise. Notez que : Tous les conseils sur le réglage des performances et de la disponibilité de courtier de messages demandent aux utilisateurs de minimiser la population des files d'attente sur les courtiers. * Le répertoire d'état local ( ~/.cache ) est accessible en écriture pendant la période de la panne. Alors : On peut définir *attempts* sur 0. Cela entraînera l'écriture des messages mis en file d'attente pour le transfert dans les files d'attente de *download_retry* locales (écrites dans les répertoires d'état locaux) et déchargera le courtier. Lorsque *attempts* est égal à 0, la commande *sr3 status* signalera que le flux est dans l'état *standby*. Le nombre de files d'attente de nouvelles tentatives augmentera et seuls les messages (pas de données) seront transférés. Lorsque l'activité de maintenance ou la panne a été résolue. baseDir (défaut: /) ---------------------------- **baseDir** fournit le chemin d’accès au répertoire, et lorsqu’il est combiné avec le chemin d'accès relatif de la notification sélectionnée, **baseDir** donne le chemin absolu du fichier à envoyer. Le défaut est None, ce qui signifie que le chemin dans la notification est le chemin absolu. Parfois, les senders s’abonnent à xpublic local, qui sont des URL http, mais le sender a besoin d’un fichier local, alors le chemin d’accès local est construit en concaténant:: baseDir + chemin d'accès relatif dans le baseUrl + relPath baseUrl_relPath (défaut: off) ------------------------------------- Normalement, le chemin d’accès relatif (baseUrl_relPath est False, ajouté au répertoire de base) pour les fichiers téléchargés seront définis en fonction de l’en-tête relPath inclus dans le message d'annonce. Toutefois, si *baseUrl_relPath* est défini, le relPath du message d'annonce va être précédé des sous-répertoires du champ baseUrl du message d'annonce. batch (défaut: 100) ---------------------------- L’option **batch** est utilisée pour indiquer le nombre de fichiers à transférer sur une connexion, avant qu’elle ne soit démolie et rétablie. Sur de très bas volume de transferts, où des délais d’attente peuvent se produire entre les transferts, cela devrait être ajuster à 1. Pour la plupart des situations, le défaut est bien. Pour un volume plus élevé, on pourrait l’augmenter pour réduire les frais généraux de transfert. Cette option est seulement utilisé pour les protocoles de transfert de fichiers, et non HTTP pour le moment. blockSize défaut: 0 (auto) ----------------------------------- REMARQUE: **EXPERIMENTAL pour sr3, devrait revenir dans la version future** Cette option **blockSize** contrôle la stratégie de partitionnement utilisée pour publier des fichiers. La valeur doit être l’une des suivantes :: 0 - calcul automatiquement une stratégie de partitionnement appropriée (défaut). 1 - envoyez toujours des fichiers entiers en une seule partie. - utiliser une taille de partition fixe (taille d’exemple : 1M ). Les fichiers peuvent être annoncés en plusieurs parties. Chaque partie à un somme de contrôle (checksum) distinct. Les parties et leurs somme de contrôle sont stockées dans la cache. Les partitions peuvent traverser le réseau séparément et en parallèle. Lorsque les fichiers changent, les transferts sont optimisé en n’envoyant que les pièces qui ont changé. L’option *outlet* permet à la sortie finale d’être autre qu’un poste. Voir `sr3_cpump(1) `_ pour plus de détails. broker ------ **broker [amqp|mqtt]{s}://:@[:port]/** Un URI est utilisé pour configurer une connexion à une pompe de messages d'annonce, soit un courtier MQTT ou AMQP. Certains composants de Sarracenia fixent un défaut raisonnable pour cette option. Il faut fournir l’utilisateur normal, l’hôte, et le port de connexion. Dans la plupart des fichiers de configurations, le mot de passe est manquant. Le mot de passe est normalement inclus seulement dans le fichier `credentials.conf `_. Le travail de Sarracenia n’a pas utilisé de vhosts, donc **vhost** devrait presque toujours être **/**. pour plus d’informations sur le format URI AMQP: ( https://www.rabbitmq.com/uri-spec.html ) soit dans le fichier default.conf, soit dans chaque fichier de configuration spécifique. L’option broker indique à chaque composant quel courtier contacter. **broker [amqp|mqtt]{s}://:@[:port]/** :: (défaut: None et il est obligatoire de le définir ) Une fois connecté à un courtier AMQP, l’utilisateur doit lier une fil d’attente aux échanges et aux thèmes pour déterminer le messages d'annonce en question. l´option *subtopic* devrait apparaître après le paramètre *broker* dans les fichiers pour que les liaisons de sujet s'appliquent à la file d'attente spécifié. bufSize (défaut: 1m) --------------------------- Les fichiers seront copiés en tranches de *bufSize* octets. Utilisé par les protocoles de transfert. byteRateMax (défaut: 0) ------------------------------ **byteRateMax** est supérieur à 0, le processus tente de respecter cette vitesse de livraison en kilo-octets par seconde... ftp,ftps,ou sftp) **FIXME**: byteRateMax... uniquement implémenté par le sender ? ou subscriber aussi, données uniquement, ou messages d'annonce aussi ? callback ----------------------------- La plupart des traitements personnalisables ou de la logique "plugin" sont implémentés à l'aide de la classe de flowCallback ("rappel de flux.") À différents stades du traitement des messages de notification, les classes de flowCallback définissent points d'entrée qui correspondent à ce point de traitement. pour chaque point de ce type dans le traitement, il existe une liste de routines de rappel de flux à appeler. `flowCallback Reference (anglais) <../../Reference/flowcb.html>`_ Le *SpécificationDeClass* est similaire à une instruction *import* de python. Il utilise le chemin de recherche standard pour les modules python, et inclut également ~/.config/sr3/plugins. Il y a un raccourci pour faire usage plus court pour les cas courants. par exemple:: callback log Sarracenia tentera d'abord de faire précéder *log* de *sarracenia.flowcb.log* puis instancier l'instance de rappel en tant qu'élément de la classe sarracenia.flowcb.log.Log. S'il ne trouve pas une telle classe, alors il tentera de trouver un nom de classe *log*, et instanciera un objet *log.Log.* Pour plus de détails sur ce genre de recherche, consulter (en anglais) `FlowCallback load_library <../../Reference/flowcb.html#sarracenia.flowcb.load_library>`_ callback_prepend --------------------------------------- Identique à *callback* mais rajoute la class au début de la liste (pour éxecuter avant les point d´entrée des autres classes FlowCB) dangerWillRobinson (default: omis) ------------------------------------- Cette option n'est reconnue qu'en tant qu'option de ligne de commande. Il est spécifié quand une opération aura des effets irréversiblement destructeurs ou peut-être inattendus. par exemple:: sr3 stop arrêtera d'exécuter les composants, mais pas ceux qui sont exécutés au premier plan. Arrêter ceux peut surprendre les analystes qui les examineront, donc ce n'est pas fait par défaut :: sr3 --dangerWillRobinson stop arrête arrête tous les composants, y compris ceux de premier plan. Un autre exemple serait le *nettoyage* action. Cette option supprime les files d'attente et les échanges liés à une configuration, qui peuvent être destructeur pour les flux. Par défaut, le nettoyage ne fonctionne que sur une seule configuration à la fois. On peut spécifier cette option pour faire plus de ravages. declare ------- env NAME=Value On peut également référer à des variables d’environnement dans des fichiers de configuration, en utilisant la syntaxe *${ENV}*. Si une routine de Sarracenia doit utiliser une variable d’environnement, elles peuvent être définis dans un fichier de configuration :: declare env HTTP_PROXY=localhost exchange exchange_name à l’aide de l’URL d’administration, déclarez l’échange avec *exchange_name* subscriber Un abonné (subsciber) est un utilisateur qui peut seulement s’abonner aux données et renvoyer des messages de rapport. Les abonnés n'ont pas le droit d’injecter des données. Chaque abonné dispose d’un xs_ qui s'appelle "exchange" sur la pompe. Si un utilisateur est nommé *Acme*, l’échange correspondant sera *xs_Acme*. Cet échange est l’endroit où un processus d’abonnement enverra ses messages de rapport. Par convention/défaut, l’utilisateur *anonyme* est créé sur toutes les pompes pour permettre l’abonnement sans abonnement a un compte spécifique. source Un utilisateur autorisé à s’abonner ou à générer des données. Une source ne représente pas nécessairement une personne ou un type de données, mais plutôt une organisation responsable des données produites. Donc, si une organisation recueille et met à disposition dix types de données avec un seul contact, e-mail, ou numéro de téléphone, toute question sur les données et leur disponibilité par rapport aux activités de collecte peuvent alors utiliser un seul compte "source". Chaque source reçoit un échange xs_ pour l’injection de publications de données. Cela est comme un abonné pour envoyer des messages de rapport sur le traitement et la réception des données. La source peut également avoir un échange xl_ où, selon les configurations de routage des rapports, les messages de rapport des consommateurs seront envoyés. feeder Un utilisateur autorisé à écrire à n’importe quel échange. Une sorte d’utilisateur de flux administratif, destiné à pomper des messages d'annonce lorsque aucune source ou abonné ordinaire n’est approprié pour le faire. Doit être utilisé de préférence au lieu de comptes d’administrateur pour exécuter des flux. Les informations d’identification de l’utilisateur sont placées dans le `credentials.conf `_ et *sr3 \-\-users declare* mettra à jour le courtier pour accepter ce qui est spécifié dans ce fichier, tant que le mot de passe de l'administrateur est déjà correct. - Par défaut, tous les utilisateurs sont déclarés. Toutefois, des flux peuvent être spécifiés sur la ligne de commande pour limiter les utilisateurs déclarés à ceux du flux donné. Par exemple, - *sr3 \-\-users declare* déclarera tous les utilisateurs - *sr3 \-\-users declare subscribe/dd_amis* ne déclarera que les utilisateurs spécifiés dans *subscribe/dd_amis* debug ----- Définir l'option debug est identique a utilisé **logLevel debug** delete (défaut: off) ------------------------------- Lorsque l’option **delete** est définie, une fois le téléchargement terminé avec succès, l’abonné supprimera le fichier à la source. Par défaut, l'option est false. discard (défaut: off) ------------------------------- L’option **discard**, si elle est définie a true, supprime le fichier une fois téléchargé. Cette option peut être utile lors du débogage ou pour tester une configuration. directory (défaut: .) ------------------------------ L’option *directory* définit où placer les fichiers sur votre serveur. Combiné avec les options **accept** / **reject**, l’utilisateur peut sélectionner les fichiers d’intérêt et leurs répertoires de résidence (voir le **mirror** pour plus de paramètres de répertoire). Les options **accept** et **reject** utilisent des expressions régulières (regexp) pour trouver une correspondance avec l’URL. Ces options sont traitées séquentiellement. L’URL d’un fichier qui correspond à un modèle **reject** n’est jamais téléchargée. Celui qui correspond à un modèle **accept** est téléchargé dans le répertoire déclaré par l’option **directory** la plus proche au-dessus de l’option **accept** correspondante. **acceptUnmatched** est utilisé pour décider quoi faire lorsque aucune clause de rejet ou d’acceptation corresponde. :: ex. directory /monrépertoirelocal/mesradars accept .*RADAR.* directory /monrépertoirelocal/mesgribs reject .*Reg.* accept .*GRIB.* destfn_script