У меня есть несколько задач в скрипте ткани. Я пытаюсь понять, как можно разрешить настройку env.hosts или декоратора @hosts для конкретной задачи. Я хочу, чтобы в моем потрясающем файле были некоторые задачи, чтобы иметь предустановленные хосты, в то время как я мог бы передать файл, который можно было бы проанализировать как кортеж хостов, другим. Я также хотел бы, чтобы этот файл определялся во время выполнения.
У меня есть это:
def host_list():
host_file = raw_input("enter the file containing the list of hosts: ")
host_list = open(host_file, 'r')
host_list = host_list.read().strip('\n')
host_list = host_list.split(',')
return host_list
У меня есть задача:
@task
def hostname():
run('hostname')
Я могу настроить env.hosts правильно, если у меня есть функция host_list, разделенная на команды, но у меня есть другие задачи, и я не хочу, чтобы фабрика запрашивала установку env.hosts. Я попытался добавить шаги внутри функций задачи, но я получаю запрос с каждой итерацией. Я попытался передать декоратору #hosts функцию host_list, но это выдало мне ошибку о том, что объект функции не является итерируемым. Есть ли способ изолировать функцию host_list только для определенных задач?