Cette page recense les modifications à apporter sur un module qui a été développer sur une version 02.07.XX afin de le rendre utilisable sur une version 02.08.XX
Connexion à la base mongo
| Info |
|---|
En version inférieure, les connexions à la base |
MongoDB se font par le "SshTunnelMongoManager". En version 02.08.XX, cet objet et la méthode "get_connection" ont été modifiés. Le paramètre mongo_timeout a été retiré pour laisser la valeur par défaut utilisée dans pymongo à None. Le paramètre logger a été ajouté afin de passer le logger du module et que les logs soient plus clair. Pour plus de précision, voir la section suivante. |
Exemples
02.07.XX
La signature de la méthode get_connection est la suivante a été modifié et un de ses paramètre a été retiré. Il s'agit du mongo_timeoutEn version 02.07.XX cela donne :
| Code Block | ||||
|---|---|---|---|---|
| ||||
from shinkensolutions.ssh_mongodb.sshtunnelmongomgr import mongo_by_ssh_mgr con_result = mongo_by_ssh_mgr.def get_connection( self, self.mongo_uri, uri, replica_set='', fsync=False, use_ssh=self.mongo_use_ssh_tunnel, ssh_keyfile=self.mongo_ssh_keyfile, ssh_user=self.mongo_ssh_user, ssh_retry=self.mongo_use_ssh_retry_failure, mongo_timeout=timeout, requestor=requestor, ) ssh_user=None, use_ssh=False, ssh_keyfile=None, ssh_retry=1, mongo_timeout=DEFAULT_TIMEOUT, requestor='(unknown requestor)', force_ssh_tunnel_recreation=False, tunnel_for='mongodb', tunnel_end_of_life_delay=30): |
02.08.XX
La nouvelle signature est la suivante En version 02.08.XX :
| Code Block | ||||
|---|---|---|---|---|
| ||||
from shinkensolutions.ssh_mongodb.sshtunnelmongomgr import mongo_by_ssh_mgr con_result = mongo_by_ssh_mgr.def get_connection( self.mongo_uri, self, uri, logger=None, replica_set='', fsync=False, use_ssh=self.mongo_use_ssh_tunnel, ssh_keyfile=self.mongo_ssh_keyfile, ssh_user=self.mongo_ssh_user, ssh_retry=self.mongo_use_ssh_retry_failure, mongo_timeout=timeout, requestor=requestor, ) |
Logger (facultatif)
ssh_user=None,
use_ssh=False,
ssh_keyfile=None,
ssh_retry=1,
requestor='(unknown requestor)',
force_ssh_tunnel_recreation=False,
tunnel_for='mongodb',
tunnel_end_of_life_delay=30): |
Logger (facultatif)
En version 02.07.XX, les logger utilisés étaient ceux de Shinken par défaut. Le fonctionnement du logger a été modifié en 02.08.XX mais il est toujours possible de l'utiliser de la même manière.
Afin de profiter de ces améliorations, les classes héritant de BaseModule ont un attribut logger qui permet d'écrire un log avec le nom du module. Les logs écrit sont donc plus facile à identifier et filtrer.
Exemples
02.07.XX
Pour logger dans un module, il fallait utiliser la syntaxe suivante
Le logger a été ajouté sur le module. Pour logger en version 02.07.00 on utilisai:
| Code Block | ||||
|---|---|---|---|---|
| ||||
from shinken.brokermodule import WorkerBasedBrokerModule from shinken.log import logger class MyOwnBrokerModule(WorkerBasedBrokerModule): def my_method(self): logger.info(self.get_name() 'Some informations here') |
02.08.XX
| Code Block | ||||
|---|---|---|---|---|
| ||||
from shinken.brokermodule import WorkerBasedBrokerModule class MyOwnBrokerModule(WorkerBasedBrokerModule): def my_method(self): self.logger.info('Some informations here') |