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

初次学习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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值