Задача (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]

Хук для проверки валидности задачи перед запуском, проверяет примеримость контекста хостов на шагах

Встроенные задачи

carnival имеет встроенные задачи для удобства использования

class carnival.internal_tasks.Help(no_validate: bool)

Показать список доступных задач

class carnival.internal_tasks.Validate(no_validate: bool)

Запустить валидацию доступых задач и напечатать список ошибок