Книга: PyNEng
Назад: Дополнительные материалы
Дальше: 21. Шаблоны конфигураций с Jinja2

Задания

Задания

Все задания и вспомогательные файлы можно скачать в . Если в заданиях раздела есть задания с буквами (например, 5.2a), то лучше выполнить сначала задания без букв, а затем с буквами. Задания с буквами, как правило, немного сложнее заданий без букв и развивают или усложняют идею в соответствующем задании без буквы.

Например, в разделе есть задания 5.1, 5.2, 5.2a, 5.2b, 5.3, 5.3a. Сначала лучше выполнить задания 5.1, 5.2, 5.3, а затем 5.2a, 5.2b, 5.3a

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

Задание 20.1

Переделать задание 19.4a таким образом, чтобы проверка доступности устройств выполнялась не последовательно, а параллельно.

Для этого, можно взять за основу функцию check_ip_addresses из задания 11.3. Функцию надо переделать таким образом, чтобы проверка IP-адресов выполнялась параллельно в разных потоках.

Задание 20.1a

Переделать функцию из задания 20.1 таким образом, чтобы она позволяла контролировать количество параллельных проверок IP.

Для этого, необходимо добавить новый параметр limit, со значением по умолчанию - 2.

Функция должна проверять адреса из списка таким образом, чтобы в любой момент времени максимальное количество параллельных проверок было равным limit.

Задание 20.2

Создать функцию send_commands_threads, которая запускает функцию send_commands из задания 19.3 на разных устройствах в параллельных потоках.

Параметры функции send_commands_threads надо определить самостоятельно. Должна быть возможность передавать параметры show, config, filename функции send_commands.

Функция send_commands_threads возвращает словарь с результатами выполнения команд на устройствах:

  • ключ - IP устройства
  • значение - вывод с выполнением команд

Задание 20.2a

Переделать функцию send_commands_threads из задания 20.2 таким образом, чтобы с помощью аргумента limit, можно было указывать сколько подключений будут выполняться параллельно.

По умолчанию, значение аргумента должно быть 2.

Назад: Дополнительные материалы
Дальше: 21. Шаблоны конфигураций с Jinja2