Мы запускаем кучу беспроводных контроллеров (MC), и я хочу использовать API контроллера для передачи прошивки через TFTP в каждый контроллер для подготовки к обновлению (вызов API должен работать на каждом контроллере индивидуально). Это может потребоваться 10 минут или около того, чтобы скопировать прошивку каждому контроллеру, поэтому я подумал, что постараюсь сделать эту работу, используя потоки, чтобы прошивка была скопирована для них все быстрее.
- это список IPS Controller).
Код: Выделить всё
with concurrent.futures.ThreadPoolExecutor(max_workers=len(mc_list)) as executor:
# Work through list of controllers
for mc in mc_list:
# get uid for use in subsequent API call to this mc
uid = aos_ArubaAPI_utils.get_uid(host = mc, user = user, pword = pwd)
print(f"Attempting to call function using executor")
executor.submit(aos_ArubaAPI_utils.tftp_firmware_to_controller(mc, firmware, part, uid), mc)
Call AOS_ARUBAAPI_UTILS.TFTP_FIRMWARE_TO_CONTROLLER (MC, прошивка, часть, UID) - отдельная функция в отдельном модуле. Я прочитал, что это на самом деле должно быть «вызов», но я не уверен, каково различие между ними.>
Подробнее здесь:
https://stackoverflow.com/questions/797 ... n-parallel