初次学python,逐行学习公司大牛的python脚本

来源:互联网 发布:阿里云学生库存不足 编辑:程序博客网 时间:2024/06/03 17:44

初次学习python,啃完半本python基础教程后还是稀里糊涂,只好用啃代码这种笨办法继续学习加深印象。

下面的代码是公司大牛写的自动化运维部份的python脚本,配合saltstack,实现自动搭建mysql集群。


-----------------

# -*- coding: utf-8 -*-

'''
Build MySQL cluster API
'''
import time
import logging
import collections

#import 用于加载time、logging、collections模块


try:

    import MySQLdb
    HAS_MYSQLDB = True
except ImportError:
# MySQLdb import failed, try to import PyMySQL
    HAS_MYSQLDB = False


# 尝试加载 MySQLdb模块,如存在则返回true给MYSQLDB,不存在则返回false

log = logging.getLogger(__name__)

# 创建一个log,默认情况下Python的logging模块将日志打印到了标准输出中,且只显示了大于等于WARNING级别的日志,这说明默认的日志级别设置为WARNING(日志级别等级CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET)

#python自定义日志log类,记录不同级别的错误信息和行号,自定义的log类继承自logging.Logger,使用时可以记录具体日志出现的代码行号

def __virtual__():
    '''
    Only load this module if the mysql libraries exist
    '''
    log.error("MySQLdb is available :{0}".format(HAS_MYSQLDB))
    if HAS_MYSQLDB:
        return True
    return (False, 'The mysql execution module cannot be loaded: no MySQLdb is available.')


def rsync_data(**kwargs):
    '''
    Rsync backups/demo instance from source to destination. Return {"status":False/True, "error":"something"}


    These parameters are required : src/dst/buffer/mysql_version/port
    '''
    log.error(kwargs)
    if "test" in kwargs and kwargs["test"] : return {"status":True}
    param = ["src", "dst", "buffer", "mysql_version", "port", "cnf_src"]
    is_legal = _check_parameter(kwargs, param)
    if "error" in is_legal:
        return is_legal

未完待续


0 0
原创粉丝点击