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éfautl 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 :
| Code Block | ||||
|---|---|---|---|---|
| ||||
def get_connection( self, uri, replica_set='', fsync=False, 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 :
| Code Block | ||||
|---|---|---|---|---|
| ||||
def get_connection( self, uri, logger=None, replica_set='', fsync=False, 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 :
| 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')
|