-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRELEASE_NOTES
290 lines (213 loc) · 14 KB
/
RELEASE_NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
Le français suit (recherchez FRANCAIS)
Sarracenia/dd_subscribe release notes
1- dd.weather.gc.ca (the MSC Datamart) is Environment Canada's public
meteorological data access repository.
2- For each product posted on the Datamart, an AMQP message is
immediately transmitted. This message contains :
"md5sum filesize http://servername/ filepath".
The product's URL is described by the last two fields.
Any application which can subscribe to an AMQP service can
receive notification of products being published and then retrieve
them in real time via http. There is a wide variety of languages and
platforms whereby this procedure can be implemented. Here you will
find a simple demonstration client, "dd_subscribe". It is implemented
in the Python language.
3- dd_subscribe is a python2 program that uses python-amqplib to receive
these amqp notification messages, retrieve the products from the
datamart via HTTP and place them in a chosen local directory.
4- dd_subscribe's usage is : dd_subscribe [-n] [-l logdir] config_file.
By default, the program will automatically initiate product download
upon notification. If you want dd_subscribe to simply display the
notification message without retrieving the products,use the "-n"
The -l option sets a logging directory, and a file named config_file_PID.log
will be written.(where PID is the process id)
5- The config file is simple (see dd_subscribe manpage). To make
things even easier, the example config files provided with the script
contain valid configuration parameters that should be enough to get
you started. The config files may contain :
a) credentials for the rabbitmq server. These options are
host default host dd.weather.gc.ca
port default port 5672
amqp-user default amqp-user anonymous
amqp-password default amqp-password anonymous
b) amqp exchange settings to be able to receive the desired notifications (URL)
exchange default exchange xpublic
exchange_type default exchange_type topic
subtopic no default ...
- subtopic replaces amqp exchange_key options
- several subtopic options may be declared
- to arrive at a valid subtopic, browse the datamart (http://dd.weather.gc.ca)
and pick any directories where the products are interesting for you. For each
directory, create a subtopicas follows:
subtopic directory1.subdirectory2.*.subdirectory4.#
where * replace a directory name (one * per directory)
# stands for the remaining possibilities
c) amqp queue settings to be able to queue the desired notifications (URL)
queue default None
durable default False
expire default None
- queue sets the queue name. It should start with cmc.
- expire is expressed in minutes... it sets how long should live a queue without connections
- durable means write queue on disk if the rabbitmq server is stop/restarted...
- by default, dd_subscribe creates a queue name that should be unique and starts with cmc
and puts it into a file .<configname>.queue, where <configname> is the config filename.
d) http credentials (not used for now... might be implemented for restricted products)
http-user default http-user None
http-password default http-password None
e) delivery specifications
lock default lock .tmp
directory default directory .
accept default accept None
reject default reject None
mirror enabling mirror False
flatten default flat char. '/'
timeout default timeout 180
- The 'lock' option is a suffix given to the file during the download
and taken away when it is completed... This prevents the file from
being processed prematurely.
- The 'directory' option defines the target directory on your server.
Combined with accept/reject options, the user can select the
files of interest and their directories of residence.
Theses options are processed sequentially. A rejected product is never downloaded.
Accepted products are placed in the closest directory declared above the 'accept'
option that picked it. The accept and reject option use regexp to match URLs.
The patterns in accept/reject clauses use regular expression syntax, more
information here: https://en.wikipedia.org/wiki/Regular_expression
briefly ´.´ is a one character wildcard matching any single character
´*´ means ´any number of repetitions. so ´.*´ means any sequence of characters,
(a wildcard.)
ex. directory /mylocal/myradars
accept .*RADAR.*
directory /mylocal/mygribs
reject .*Reg.*
accept .*GRIB.*
- The option 'mirror', if set to True, will put the files into a directory tree
similar to the one it resides on dd.weather.gc.ca except that the basename of
the tree will be the path set by the directory option.
- The option 'flatten' sets a character that will be used to rename the file on the
basis of its path name on dd.weather.gc.ca, replacing the '/' with the chosen
character. The file will placed with that extended name in the directory defined
by the 'directory' option.
- The option 'timeout' sets a limit in seconds of time under which the file should
have been downloaded and placed under the proper directory/name... If the timeout
is reached the download is retried ... until succes.
6- Under samples/config you will find working configuration files, provided as is,
without guaranty. Under samples/program you will find other programs we played with.
7- FUN FACT: sarracenia : another rare, mostly carnivorous, Canadian
plant... (as are sundew,columbo)
_____________________________________________________________________________________
FRANCAIS
Notes de publication pour sarracenia/dd_subscribe
1- dd.weather.gc.ca (le datamart du SMC) est le dépôt public de
données météorologiques d'Environnement Canada
2- Chaque fois qu'un produit arrive dans le datamart, un message AMQP
est immédiatement transmis. Ce message a la forme :
"md5sum taillefichier http://servername/ filepath".
Le URL du produit est décrit par les deux derniers chanps.
Toute application capable de s'abonner à un service AMQP
peut recevoir les notifications des produits en qui sont publiés et
les récupérer en temps réel par HTTP. Il existe un grand nombre de
langages et de plateformes qui peuvent être utilisées pour mettre en
oeuvre cette procédure. Vous trouverez ici un script de démonstration
simple, "dd_subscribe". Le script est écrit en Python.
3- dd_subscribe est un programme en python, utilisant python-amqplib pour
recevoir les notification AMQP, récupérer les produits sur le datamart
par HTTP et les placer dans un répertoire local choisi par l'usager.
4- L'utilisation du programme: dd_subscribe [-n] [-l logdir] fichier_config.
Par défaut, le programme télécharge immédiatement le
produit lorsqu'une notification est reçue. Si vous voulez simplement
afficher les notifications sans effectuer de téléchargement, utilisez
l'option "-n". L'option "-l" quand a elle, définit un répertoire de
logging et un fichier nomme "fichier_config_PID.log" sera écrit.
(PID est le ID du process)
5- Le fichier de configuration est simple (voir le manpage pour
dd_subscribe). Pour faciliter encore les choses, les exemples de
fichiers de configurations qui sont fournis avec le programme
contiennent des paramètres valides qui devraient suffire pour
commencer::
a) identifiants pour le serveur rabbitmq. Ces paramètres sont:
host default host dd.weather.gc.ca
port default port 5672
amqp-user default amqp-user anonymous
amqp-password default amqp-password anonymous
b) réglages d'échanges amqp permettant de recevoir les notifications (indiquant
l'URL du produit)
exchange default exchange xpublic
exchange_type default exchange_type topic
subtopic no default ...
- le subtopic replace les clés d'échanges amqp (exchange_key)
- il est permi de déclarer plusieurs subtopic
- Pour déterminer une valeur correcte pour un subtopic, explorez le dépôt
http://dd.weather.gc.ca et choisissez n'importe quel répertoire contenant des
produits qui sont d'intérêt pour vous. Pour chacun de ces répertoires, spécifiez
le subtopic comme suit:
subtopic directory1.subdirectory2.*.subdirectory4.#
ou * caractère de remplacement (wildcard)
(un seul '*' per par répertoire)
# signifie les possibilités restantes
c) réglages de la queue amqp permettant de recevoir les notifications
queue default None
durable default False
expire default None
- queue défini le nom de la queue, qui commence toujours avec cmc. Par défaut un nom de queue
au hazard est créé et conserver dans un fichier nomme .fichier_config.queue
- expire est un nombre de minutes... qui déclare la longueur de la vie d'une queue sans connection
- durable permet d'écrire la queue sur disque si le serveur rabbitmq est arrêté ou redemarré
- par defaut, dd_subscribe crée un nom de queue qui devrait être unique et l'enregistre dans
un fichier nommé .<configname>.queue où <configname> est le nom du fichier de configuration.
d) identifiant http (non utilisé en ce moment, pourrait l'être pour des produits
à distribution restreinte)
http-user default http-user None
http-password default http-password None
e) paramètres de livraison
lock default lock .tmp
directory default directory .
accept default accept None
reject default reject None
mirror enabling mirror False
flatten default flat char. '/'
timeout default timeout 180
- Le paramètre 'lock' contrôle le suffixe qui sera donné au
fichier pendant le téléchargement qui sera retiré une fois la
tâche complétée. Par ce moyen, le fichier en cours de
téléchargement ne sera pas traité prématurément.
- Le paramètre 'directory' contrôle le répertoire où seront
reçues les données sur votre serveur. En combinaison avec
'accept/reject' vous pouvez gérer les fichiers qui sont
téléchargés et leur répertoire de résidence.
Ces paramètres sont traités séquentiellement. Un produit
rejeté n'est jamais téléchargé. Les produits acceptés sont
placés dans le répertoire le plus récent qui ait été
déclaré au-dessus du paramètre accept qui a été utilisé
pour le sélectionner. Les paramètres accept et reject
acceptent des expressions régulières pour la reconnaissance
des URL. Plus d´information içi: https://fr.wikipedia.org/wiki/Expression_rationnelle
brièvement:
´.´ va accepter n´importe lequel caractère.
´*´ indique une quantité indefinie de répétitions.
Alors ´.*´ accept n´importe lequel séquence de caractères.
ex. directory /home/steve/myradars
accept .*RADAR.*
directory /home/julie/donnees/grib
reject .*Reg.*
accept .*GRIB.*
- Si vous donnez au paramètre 'mirror' la valeur 'True', les
fichiers seront placés dans une structure de répertoires
similaire à celle qui existe sur dd.weather.gc.ca. La racine
de la structure sera le répertoire indiqué par le paramètre
'directory'.
- Le paramètre 'flatten' permet de spécifier un caractère qui
sera utilisé pour renommer le fichier d'après son chemin sur
dd.weather.gc.ca, en remplaçant les '/' par le caractère
choisi. Le fichier sera placé avec ce nom étendu dans le
répertoire défini par le paramètre 'directory'.
- L'option 'timeout' défini une limite en seconds pour le temps ou le fichier
est téléchargé et placé dans le répertoire/nom approprié... Si le timeout
est dépassé, le download est repris... jusqu'à ce qu'il soit un succès.
6- Dans le répertoire samples/config vous trouverez des fichiers de
configuration qui devraient fonctionner tels quels (sans
garantie). Sous samples/program vous trouverez d'autres programmes
avec lesquels nous avons expérimenté.
7- Détail distrayant: sarracenia est le nom latin de la sarracène, une
plante canadienne rare et à prédominance carnivore (au même titre que la
droséra et la columbo).