Недавно я начал своё знакомство с Nutanix и первым делом скачал и опробовал NutanixCmdlets PowerShell Snap-in. Сразу выяснилось, что набор командлетов далеко не полный, и многого не хватает. Тут же созрело решение создать вспомогательный Power-NTNX модуль как в своё время я сделал Vi-Module для VMware.
Модуль будет обновляться и пополняться по мере возможности и надобности, и с каждой новой функцией будет выходить статья. Уже сегодня есть задумки на 3-4 функции.
И первой функцией будет Wait-NTNXTask.
Что есть «задача»?
Если мы возьмём такие командлеты как например Start-NTNXMaintenanceMode или Set-NTNXVMPowerOn, то мы увидим, что они возвращают не объект, над которым выполнялось действие, а ссылку на задачу (task), созданную для выполнения этого действия.
Остаются три больших вопроса - когда и как эта задача закончится и закончится ли вообще?
Как только командлет отработал и создал задачу, вы теряете контроль над происходящим:(
Частично, конечно на эти вопросы может ответить командлет Get-NTNXTask, но количество, а особенно качество, полезной информации оставляет желать лучшего. Чего только стоит формат времени в свойствах задачи:)
Wait-NTNXTask
Функция Wait-NTNXTask позволяет в режиме реального времени отслеживать процесс выполнения любого типа задач в среде Nutanix.
Причём это могут быть задачи, запущенные ранее, которые возвращает командлет Get-NTNXTask, либо задачи, созданные любыми другими командлетами.
Здесь для интерактивного выбора хоста мы используем функцию Write-Menu, которую я включил в модуль. Эта функция пригодится нам и в дальнейшем для расширения функционала модуля.
Помимо визуального отображения продвижения задачи, функция Wait-NTNXTask возвращает сам объект задачи по её завершению. Сравните с тем, что вы получаете от Get-NTNXTask и, как говорится, почувствуйте разницу:)
Как мы можем видеть из вывода функции, задача ввода хоста в Maintenance Mode порождает множество подзадач (subtasks), которые тоже можно визуализировать, если добавить -WaitSubTask параметр.
Вне зависимости от того визуализируете ли вы или нет подзадачи, они в любом случае присутствуют в выводе функции с префиксом SubTask и типом основной задачи в свойстве Type.
Эпилог
Функция Wait-NTNXTask является т.н. «advanced function» и, как результат, поддерживает полный набор стандартных параметров, таких как –ErrorAction или –Verbose.
Не забудьте просмотреть примеры и справку по функции.