タスク

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

Fabricのタスクとしてピックアップされることを要求するオブジェクトのための抽象基底クラスです。

fab ツールによって読み込まれるfabfile内にサブクラスのインスタンスが存在するときに有効なタスクとして扱われます。

Task サブクラスの実装と利用の方法の詳細は new-style tasks の利用方法のドキュメントをご覧ください。

バージョン 1.1 で追加.

__init__(alias=None, aliases=None, default=False, name=None, *args, **kwargs)

x.__init__(...) initializes x; see help(type(x)) for signature

__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

__call__(...) <==> x(...)
__init__(callable, *args, **kwargs)

x.__init__(...) initializes x; see help(type(x)) for signature

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

ホスト/ロールデコレーターなどを履行し、 task (呼び出し可能なオブジェクトもしくはタスク名) を実行します。

task は実際の呼び出し可能なオブジェクトもしくは登録されたタスク名で、まるでその名称が (namespaced tasks も含み、例えば "deploy.migrate" など) コマンドラインに与えられたかのように呼び出し可能なオブジェクトを調べるために利用されます。

このタスクはホストリストにもとづき各ホストに対して一度ずつ実行されます。ホストリストは、CLIで指定されたタスクと同じように(再び)生成されたもので、 -Henv.hostshosts もしくは roles デコレーターなどから取り出されます。

hosthostsrolerolesexclude_hosts キーワード引き数は最終的な呼び出しでは取り除かれ、例えば fab taskname:host=hostname のようにまるでコマンドラインで指定されたかのように、そのタスクのホストリストのセットに利用されます。

その他のすべての引き数やキーワード引き数は呼び出されたときにそれぞれ task (関数自身で、関数をラップする @task デコレーターではありません!) に渡されます。そして execute(mytask, 'arg1', kwarg1='value') が(各ホストごとに) mytask('arg1', kwarg1='value') を実行します。

戻り値:そのホストに対して実行した与えられたタスクの返り値にホスト文字列をマッピングした辞書です。例えば execute(foo, hosts=['a', 'b']) は、 foo がホスト a に対して何も返していなくてホスト b に対しては 'bar' を返している時、 {'a': None, 'b': 'bar'} を返します。もし全体的な進行は中止されないけれども与えれれたホストに対してタスク実行に失敗した場合 ( env.skip_bad_hosts がTrueのときなど)、そのホストのための返り値はエラーオブジェクトかエラーメッセージになります。

参考

詳しい説明とさらなる例は The execute usage docs を参照してください。

バージョン 1.3 で追加.

バージョン 1.4 で変更: 返り値のマッピングを追加。以前はこの関数は定義された返り値は持っていませんでした。

fabric.tasks.requires_parallel(task)

与えられた task が並列モードで動作すべきなら True を返します。

具体的には:

  • @parallel で明示的にマークされているか:
  • @serial で明示的にマーク されていない かつ グローバルの並列オプション (env.parallel) が True にセットされている。