2010-07-26 27 views
24

Tôi đã có mã này (foobar là các máy chủ địa phương):Lấy giá trị hiện tại của danh sách env.hosts với Python Vải Thư viện

env.hosts = ['foo', 'bar'] 

def mytask(): 
    print(env.hosts[0]) 

Trong đó, tất nhiên in foo mỗi lần lặp.

Như bạn đã biết, lặp Vải qua danh sách env.hosts và thực hiện mytask() trên mỗi người trong số họ theo cách này:

fab mytask 

không

task được thực thi trên foo
task là được thực hiện trên bar

Tôi đang tìm cách để có được máy chủ hiện tại trong mỗi lần lặp lại.

Xin cảm ơn,

Trả lời

38

Sử dụng env.host_string. Bạn có thể tìm danh sách đầy đủ gồm env biến số here.

+0

Lưu ý rằng host_sting sẽ có bất kỳ thông tin kết nối bổ sung nào, nếu được sử dụng, của tên người dùng và cổng, thay vì tên máy chủ thuần túy. – Morgan

3

Cảm ơn Marcelo.

Nếu bạn thực sự muốn sử dụng env.host_string (ví dụ như cho mục đích nối), hãy chắc chắn là bên trong một tác vụ. Giá trị của nó là None bên ngoài.

26

Bạn chỉ có thể làm:

env.hosts = ['foo', 'bar'] 

def mytask(): 
    print(env.host) 

Bởi vì khi bạn đang ở trong nhiệm vụ như thực hiện bởi fab, bạn sẽ có mà var bộ miễn phí.

Các vấn đề liên quan