group¶
-
class
fabric.group.Group(*hosts, **kwargs)¶ 收藏
Connection其API对其内容进行操作的对象。警告
这是一个部分抽象类 ;您需要使用它的一个具体子类(例如
SerialGroup或ThreadingGroup或者你会得到NotImplementedError在大多数方法上。这个类中的大多数方法都与
Connection,采用相同的参数;但是它们的返回值和引发异常的行为不同:- 返回值是类似dict的对象 (
GroupResult映射Connection对象到各个连接的返回值:Group.run返回的映射Connection到runners.Result,Group.get返回的映射Connection到transfer.Result等。 - 如果任何连接遇到异常,则
GroupException是凸起的,它是一个很薄的包装,围绕着原本应该是GroupResult归还;在包裹的里面GroupResult,异常连接映射到引发的异常,而不是Result(不)Result已获取。)任何非例外连接都将具有Result正常值。
例如,当没有异常发生时,会话可能如下所示:
>>> group = SerialGroup('host1', 'host2') >>> group.run("this is fine") { <Connection host='host1'>: <Result cmd='this is fine' exited=0>, <Connection host='host2'>: <Result cmd='this is fine' exited=0>, }
除了异常(从1到“所有异常”),它看起来是这样的;注意不同的异常类,例如
UnexpectedExit对于命令退出不好的已完成会话,与socket.gaierror对于存在DNS问题的主机:>>> group = SerialGroup('host1', 'host2', 'notahost') >>> group.run("will it blend?") { <Connection host='host1'>: <Result cmd='will it blend?' exited=0>, <Connection host='host2'>: <UnexpectedExit: cmd='...' exited=1>, <Connection host='notahost'>: gaierror(...), }
和一样
Connection,Group对象可以用作上下文管理器,它将自动close块上的对象退出。2.0 新版功能.
在 2.4 版更改: 添加了上下文管理器行为。
-
__init__(*hosts, **kwargs)¶ 从一个或多个速记主机字符串创建一组连接。
见
Connection有关这些字符串格式的详细信息-它们将用作Connection构造函数。给出的任何关键字参数都将直接转发给那些
Connection施工人员也是。例如,要获取连接到admin@host1,admin@host2和admin@host3,并转发您的ssh代理:group = SerialGroup( "host1", "host2", "host3", user="admin", forward_agent=True, )
在 2.3 版更改: 补充
**kwargs(以前只是*hosts)
-
__weakref__¶ 对象的弱引用列表(如果已定义)
-
close()¶ 执行
Connection.close关于所有成员Connections.2.4 新版功能.
-
classmethod
from_connections(connections)¶ 接受替代构造函数
Connection物体。2.0 新版功能.
-
get(*args, **kwargs)¶ 执行
Connection.get关于所有成员Connections.返回: 一 GroupResult.2.0 新版功能.
-
run(*args, **kwargs)¶ 执行
Connection.run关于所有成员Connections.返回: 一 GroupResult.2.0 新版功能.
- 返回值是类似dict的对象 (
-
class
fabric.group.GroupResult(*args, **kwargs)¶ 收集结果和/或因
Group方法。就像听写一样,但增加了一些方便的方法,也就是说:
- 钥匙是个人的
Connection中的对象Group. - 值是被调用方法的返回值/结果(例如
runners.Result对象) or 如果一个异常对象阻止了方法返回,则为异常对象。 - 子类
dict,所有的dict方法也是如此。 - 有
succeeded和failed包含子dict的属性仅限于分别成功或遇到异常的键/值对。- 注意,这些属性允许高级逻辑,例如
if mygroup.run('command').failed诸如此类。
- 注意,这些属性允许高级逻辑,例如
2.0 新版功能.
-
__init__(*args, **kwargs)¶ 初始化自身。请参阅帮助(键入(self))以获得准确的签名。
-
__weakref__¶ 对象的弱引用列表(如果已定义)
-
failed¶ 只包含失败结果的子dict。
2.0 新版功能.
-
succeeded¶ 仅包含成功结果的子dict。
2.0 新版功能.
- 钥匙是个人的
-
class
fabric.group.SerialGroup(*hosts, **kwargs)¶ 的子类
Group它以简单、连续的方式执行。2.0 新版功能.
-
run(*args, **kwargs)¶ 执行
Connection.run关于所有成员Connections.返回: 一 GroupResult.2.0 新版功能.
-
-
class
fabric.group.ThreadingGroup(*hosts, **kwargs)¶ 的子类
Group它使用线程来同时执行。2.0 新版功能.
-
run(*args, **kwargs)¶ 执行
Connection.run关于所有成员Connections.返回: 一 GroupResult.2.0 新版功能.
-