Skip to main content

任务

class fabric.tasks.Task(alias=None, aliases=None, default=False, name=None, *args, **kwargs)

希望被拾取为织物任务的对象的抽象基类。

当存在于由 fab 工具加载的fabf中时,子类的实例将被视为有效任务。

有关如何实施和使用 Task 子类的详细信息,请参阅 新式任务 的使用文档。

1.1 新版功能.

__weakref__

对象的弱引用列表(如果已定义)

get_hosts_and_effective_roles(arg_hosts, arg_roles, arg_exclude_hosts, env=None)

返回一个包含给定任务应该使用的主机列表和所使用的角色的元组。

有关如何设置主机列表的详细文档,请参阅 如何构建主机列表

在 1.9 版更改.

class fabric.tasks.WrappedCallableTask(callable, *args, **kwargs)

将给定的可调用对象透明地包装,同时将其标记为有效的任务。

一般通过 task 使用,而不是直接使用。

1.1 新版功能.

参见

unwrap_taskstask

fabric.tasks.execute(task, *args, **kwargs)

执行 task (可调用或名称),尊重主机/角色装饰器等。

task 可以是实际的可调用对象,或者它可以是注册的任务名称,其用于查找可调用,就好像名称已经在命令行上给出(包括 命名空间任务,例如 "deploy.migrate")。

然后,该任务将在其主机列表中的每个主机执行一次,其以与CLI指定的任务相同的方式组装(再次):从 -Henv.hostshostsroles 修饰器绘制等等。

hosthostsrolerolesexclude_hosts kwargs将被从最终调用中去除,并用于设置任务的主机列表,就好像它们在命令行上已经被指定。 fab taskname:host=hostname

当它被调用时,任何其他参数或关键字参数将被逐字地传递到 task (函数本身,而不是包装你的函数的 @task 装饰器!),所以 execute(mytask, 'arg1', kwarg1='value') 将(每个主机一次)调用 mytask('arg1', kwarg1='value')

返回:一个将主机字符串映射到该主机执行运行的给定任务的返回值的字典。例如,如果 foo 在主机 a 上没有返回任何东西,但在主机 b 上返回 'bar',则 execute(foo, hosts=['a', 'b']) 可能返回 {'a': None, 'b': 'bar'}。在给定主机的任务执行失败但总体进度不中止的情况下(例如当 env.skip_bad_hosts 为真时),该主机的返回值将是错误对象或消息。

参见

执行使用文档,用于进一步解释和一些例子。

1.3 新版功能.

在 1.4 版更改: 添加了返回值映射;以前这个函数没有定义返回值。

fabric.tasks.requires_parallel(task)

返回True如果给定 task 应该以并行模式运行。

特别:

  • 它已明确标记为 @parallel,或:

  • 它的 not 被明确地标记为 @serial and,全局并行选项(env.parallel)被设置为 True