Команды автоматической конфигурации, которые требуют ввода от пользователя с помощью модуля Fabric - PullRequest
1 голос
/ 26 мая 2019

В настоящее время я нахожусь в процессе разработки кода Python, который подключается к удаленному парчевому коммутатору с помощью модуля Fabric и выполняет некоторые команды конфигурации. Проблема, с которой я сталкиваюсь, заключается в том, что когда речь идет о командах, которые требуют ввода от пользователя (то есть, да / нет).

Я прочитал несколько постов, которые советовали использовать методы собственных настроек Fabric, а также wexpect, но ни один из них не был успешным.

Я проверил следующие ссылки, но ни одна не смогла помочь с моим кодом:

Ниже приведен пример вывода команды, которую необходимо автоматизировать:

DS300B_Autobook: admin> cfgsave

Вы собираетесь сохранить конфигурацию Определенного зонирования. Это

действие сохранит изменения только в Заданной конфигурации.

Если обновление включает изменения в одной или нескольких изоляциях трафика

зон, вы должны выполнить команду 'cfgenable' для изменений

для вступления в силу.

Вы хотите сохранить только конфигурацию Определенного зонирования? (да, у, нет, н): [нет]

Код, который я написал для этого, показан ниже (попытался сделать его точно таким же, как вывод команды):

with settings(prompts={"DS300B_Autobook:admin> cfgsave\n"

                       "You are about to save the Defined zoning configuration. This\n"

                       "action will only save the changes on Defined configuration.\n"

                       "If the update includes changes to one or more traffic isolation\n"

                       "zones, you must issue the 'cfgenable' command for the changes\n"

                       "to take effect.\n"

                       "Do you want to save the Defined zoning configuration only?  (yes, y, no, n): [no] " : "yes"}):

    c.run('cfgsave')

Если есть способ отобразить вывод команды на экран и предложить мне ввести данные, которые также были бы разумным решением.

...