SaltStack源码分析之使用MongoDB模块

  

MongoDB模块/usr/lib/python2.6/网站/盐/模块/MongoDB。py

MongoDB模块会先去检查是否安装有PyMongo模块

#,- *安康;编码:utf-8  - * -   “‘   Module 用provide  MongoDB  functionality 用盐      :配置,却;能够module  uses  PyMongo,,以及accepts  configuration  details    ,,,parameters  as  well  as  configuration 设置::      ,,,,,,,mongodb.host:,“localhost”   ,,,,,,,mongodb.port: 27017   ,,,,,,,mongodb.user:,“   ,,,,,,,mongodb.password:,“      ,,,却;能够data 还要also  be  passed  into 支柱只Options  passed  into  opts 将   ,,,overwrite  options  passed  into 支柱。   " #,Import  python 填词   import 日志      #,Import  salt 填词   得到salt._compat  import  string_types      #,Import  third  party 填词   试一试:   ,,,import  pymongo   ,,,HAS_MONGODB =,真的   except  ImportError:   ,,,HAS_MONGODB =False      时间=log  logging.getLogger (__name__)

引入日志模块处理日志,再引入salt._compat。string_types

对检查pymongo进行异常处理,如果导入pymongo成功,设置HAS_MONGODB变量为真的,导入失败设置为假


def  __virtual__ ():   ,,,”   ,,,Only  load 却;能够module  if  pymongo  is 安装   ,,,”   ,,,if  HAS_MONGODB:   ,,,,,,,return  mongodb的   ,,,:   ,,,,,,,return 假


如果定义一个__virtual__函数,可以控制是否允许这个模块可见。如果返回假,SaltStack将会忽略这个模块,如果返回一个字符串,SaltStack将使用这个字符串。


def  _connect(用户=None,密码=没有,,主机=没有,端口=没有,数据库=癮dmin”):   ,,,”   ,,,Returns  a  tuple  of (用户,,主机,端口),with 配置,支柱,,或违约   ,,,values  assigned 用missing 价值。   ,,,”   ,,,if  not 用户:   ,,,,,,,user =, __salt__ (“config.option”) (“mongodb.user”)   ,,,if  not 密码:   ,,,,,,,password =, __salt__ (“config.option”) (“mongodb.password”)   ,,,if  not 主持人:   ,,,,,,,host =, __salt__ (“config.option”) (“mongodb.host”)   ,,,if  not 端口:   ,,,,,,,port =, __salt__ (“config.option”) (“mongodb.port”)      ,,,试一试:   ,,,,,,,conn =, pymongo.connection.Connection(主机=主机,端口=端口)   ,,,,,,,mdb =, pymongo.database.Database(康涅狄格州,数据库)   ,,,,,,,if  user 以及密码:   ,,,,,,,,,,,mdb.authenticate(用户,密码)   ,,,except  pymongo.errors.PyMongoError:   ,,,,,,,log.error (“Error  connecting 用database {0}的.format(数据库)   ,,,,,,,return 错误的      ,,,return 康涅狄格州


pymongo.connection。连接

这个方法PyMongo已经弃用,使用新的MongoClient代替。



def  db_list(用户=None,密码=没有,,主机=没有,端口=None):   ,,,”   ,,,List  all  Mongodb 数据库      ,,,CLI 例如:      ,,,. .,代码块:bash      ,,,,,,,salt ‘*’, mongodb.db_list  & lt; user>, & lt; password>, & lt; host>, & lt; port>   ,,,”   ,,,conn =, _connect(用户,密码,主机,端口)   ,,,if  not 康涅狄格州:   ,,,,,,,return “Failed 用connect 用mongo 数据库”      ,,,试一试:   ,,,,,,,log.info (Listing 数据库)   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

SaltStack源码分析之使用MongoDB模块