タスク¶
-
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_tasks、task-
__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で指定されたタスクと同じように(再び)生成されたもので、
-H、 env.hosts、hostsもしくはrolesデコレーターなどから取り出されます。host、hosts、role、roles、exclude_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にセットされている。