Задача (Task)¶
-
class
carnival.
TaskBase
(no_validate: bool)¶ Задача это единица выполнения одного или несколькоих шагов на определенных хостах.
Именование задач.
Полное имя задачи состоит из двух частей. <module_name>.<name>. carnival автоматически генерирует имена задач из этих частей, но есть возможность управлять этим вручную, используя два атрибута класса Task.
name: module_name:
>>> class CheckDiskSpace(TaskBase): >>> help = "Print server root disk usage" >>> >>> def run(self) -> None: >>> with my_server.connect() as c: >>> cmd.cli.run(f"df -h /", hide=False)
-
call_task
(task_class: Type[TaskBase]) → Any¶ Запустить другую задачу Возвращает результат работы задачи
-
help
= ''¶ Строка помощи при вызове carnival help
-
module_name
= None¶ имя модуля. если назначить пустую строку, полное имя будет включать только название задачи.
-
name
= ''¶ название задачи. если не определено имя будет сгенерировано автоматически.
-
run
() → None¶ Реализация выполнения задачи
-
validate
() → List[str]¶ Хук для проверки валидности задачи перед запуском, не вызывается автоматически
-
Задачи с шагами¶
-
class
carnival.
Task
(no_validate: bool)¶ Запустить шаги steps на хостах hosts
>>> class InstallPackages(StepsTask): >>> help = "Install packages" >>> >>> hosts = [my_server] >>> steps = [InstallStep(my_server.context['packages'])]
-
get_steps
(host: carnival.hosts.base.Host) → List[carnival.step.Step]¶ Список шагов в порядке выполнения
-
hosts
= None¶ Список хостов для выполнения шагов
-
run
() → None¶ Реализация выполнения задачи
-
validate
() → List[str]¶ Хук для проверки валидности задачи перед запуском, проверяет примеримость контекста хостов на шагах
-