Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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

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
languagepy
titleVersion 02.07.XX
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
languagepy
titleVersion 02.08.XX
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
languagepy
titleVersion 02.07.XX
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

Pour logger dans un module, il suffit d'utiliser la syntaxe suivante :


Code Block
languagepy
titleVersion 02.08.XX
from shinken.brokermodule import WorkerBasedBrokerModule

class MyOwnBrokerModule(WorkerBasedBrokerModule):
    def my_method(self):
        self.logger.info('Some informations here')