我将许多任务定义为Task子类,并且我将roledef设置为类似于以下内容:
env.roledefs = { "web": ["1.2.3.4"], "db": ["5.6.7.8"] }
class Foo(Task):
name = "foo"
def run(self):
pass
foo = Foo()
使用@roles
装饰器,如果它们是模块中的函数,我可以装饰任务,但我不知道如何将它应用于任务类。装饰类或其运行功能似乎不起作用。
我正在使用Fabric 1.4.0
答案 0 :(得分:1)
认为你应该能够像使用init那样:
def __init__(self):
env.roles = ['web']
或使用执行:
execute(foo, roles='web')