您的位置:首页 > 编程语言 > Python开发

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

2016-11-01 19:32 323 查看
初次学习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

未完待续
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: