zoukankan      html  css  js  c++  java
  • Fabric的settings用法

    http://fabric-chs.readthedocs.io/zh_CN/chs/api/core/context_managers.html?highlight=with%20settings#fabric.context_managers.settings  官网的settings介绍

     
    1:settings的两个功能
    1):最有效的,它允许使用任何提供的关键字和参数临时的覆盖或更改变量,若有需要的话,将会在with块
    关闭之后,恢复回原来的
    2):可以使用它的参数做一些设定,比如hide,show之类的
     
    实例1:
    settings里的clean_revert=True的用法
    #encoding=utf8
    #!/usr/bin/python
    
    from fabric.context_managers import settings,hide
    from fabric.api import run,env
    
    def s():
        print("with块之前的:%s " % env.host_string)
        with settings(paraller=True,host_string='myhost'):
            print("host_string: %s" % env.host_string)
            env.host_string = "otherhost"
            print("host_string: %s" % env.host_string)
    
        print("退出with块之后:%s " % env.host_string)
    
    def a():
        print("with块之前的:%s " % env.host_string)
        with settings(paraller=True,host_string='myhost',clean_revert=True):
            print("host_string: %s" % env.host_string)
            env.host_string = "otherhost"
            print("host_string: %s" % env.host_string)
    
        print("退出with块之后:%s " % env.host_string)
     
     
    执行结果:
    clean_revert不设置的话,为下
     
     
    clean_revert设置为true的话,执行结果如下:
     
    clean_revert=True的作用是,当退出with块的时候,设置的变量将不会还原回with之前的
     
    实例二:
    #encoding=utf8
    #!/usr/bin/python
    
    from fabric.context_managers import settings,hide
    from fabric.api import run,env
    
    def my_task():
        with settings(hide('warnings','running','stdout','stderr'),warn_only=True):
            run('ls /etc/redhat-release')
    
            if run('ls /etc/lsb-release'):
                return "Ubuntu"
            elif run('ls /etc/redhat-release'):
                return 'redhat'
     
    执行结果为下:不管是否正确,他都什么信息都不会输出,因为hide('warnings','running','stdout','stderr'),warn_only=True
    hide隐藏指定的信息,warn_only=True将错误转换为警告,遇到错误不终止,而是变成警告
     
     
    可以一个一个注释的去看结果,若将warn_only=True去掉,结果如下:
     
     
     
  • 相关阅读:
    在Flex (Flash)中嵌入HTML 代码或页面—Flex IFrame
    让Android App启动更协调
    最短路+状态压缩dp(旅行商问题)hdu-4568-Hunter
    weblogic 内存 及 内存溢出
    Mysql或者Hive数据行变成列
    使用sphinx生成美观的文档
    adb 功能大全
    Problem B: Excuses, Excuses!
    2014acm亚洲区域赛陕西赛总结
    Cookie的写入,和读取
  • 原文地址:https://www.cnblogs.com/lemon-le/p/6934326.html
Copyright © 2011-2022 走看看