# storage : quantité de données stockées au nœud B, brute et validée
# Option years : liste des années pour lesquelles on demande la quantité de données
# send : volume de données distribuées par protocoles (accepte les options media et country)
# lands : liste des pays avec le nombre de requêtes passées depuis ces pays (accepte les options media et country)
# granularity : soit par année (year), soit par mois (month) (ie en interne, time(52w) et time (4w)) TODO.
# Pour les paramètres acceptant des listes le séparateur utilisé est la virgule. Les options de code réseau network, station, location et channel acceptent les jokers et les listes comme les autres WS FDSN. Pour les jokers, ? représente n’importe quel caractère unique, alors que * représente zéro caractère ou plus.
# Options supplémentaires :
# media : protocoles utilisés pour la requête (par défaut, tous)
# dataselect : pour les activités par webservice dataselect
# seedlink : pour les activités par ringserver (Pour l'instant ne peut être obtenu que indépendament.)
# all : somme de tous les types d'activité (TODO. Pour l'instant signifie tous les dataselect.)
# country : filtre les réponses avec une liste des pays d'origine des requêtes.
importlogging
importos
importre
...
...
@@ -86,13 +68,15 @@ def sql_request(params):
select=list()
formediainparams["media"]:
date_s="time"ifmedia=="seedlink"else"date"
ifparams["request"]=="lands":
ifparams["request"]=="country":
s=f"SELECT country, count({date_s}) FROM {get_table(media)}"
ifparams["request"]=="send":
s=f"SELECT sum(bytes) FROM {get_table(media)}"
ifparams["timeseries"]:
s=f"SELECT date, network, station, location, channel, bytes, country FROM {get_table(media)}"
s=sql_common_string(params,s,date_s)
ifparams["request"]=="lands":
ifparams["request"]=="country":
s=f"""{s} AND ({is_like_or_equal(params,"country")}) GROUP BY country"""
ifparams["request"]=="send":
s=f"""{s} AND ({is_like_or_equal(params,"country")})"""