2010-07-26 8 views
24

Ho questo codice (foo e bar sono server locali):ottenere il valore corrente della lista env.hosts con Python tessuto Biblioteca

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

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

Il che, di stampe corso foo ogni iterazione.

Come probabilmente sapete, itera tessuto attraverso l'elenco env.hosts ed esegue MyTask() su ciascuno di loro in questo modo:

fab mytask 

fa

task viene eseguito su foo
task è eseguito su bar

Sto cercando un modo per ottenere l'host corrente in ogni iterazione.

Grazie,

risposta

38

Utilizzare env.host_string. È possibile trovare un elenco completo delle variabili envhere.

+0

Nota che host_sting avrà qualsiasi informazione di connessione aggiuntiva, se utilizzata, del nome utente e della porta, invece del nome host semplice. – Morgan

3

Grazie Marcelo.

Se si desidera utilizzare effettivamente env.host_string (per scopi di concatenazione, ad esempio), assicurarsi di essere all'interno di un'attività. Il suo valore è None all'esterno.

26

si può solo fare:

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

def mytask(): 
    print(env.host) 

perché quando sei nel compito come eseguito da fab, avrete quel set var gratuitamente.

Problemi correlati