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 nullSaltStack源码分析之使用MongoDB模块