Найти - Пользователи
Полная версия: Помогите собрать до конца скрипт с API
Начало » Python для новичков » Помогите собрать до конца скрипт с API
1
scorcher
Привет,

Надеюсь на вашу помощь, собираю скрипт для простой задачи - reboot через api для определенных майнеров. То есть, имеется список ip майнеров которые необходимо перезагрузить (допустим 20), через API
нашел похожее решение на GitHub как заставить его читать список ip из txt или csv?

 from dragon_rest.dragons import DragonAPI
dragon_host = '10.01.01.01'
api = DragonAPI(dragon_host,
                username='admin',
                password='dragonadmin')
r = api.reboot() #reboot
print(r)
api.reboot

так ребутит один майнер

нужно что то типа такого? и как их связать чтоб он брал один ip из файла - ребутил и брал следующий и так до конца списка?

 f = open(r'test.csv')
lines = f.readlines()
f.close()

ps сильно не пинайте, первое что пытаюсь реализовать
PEHDOM
scorcher
нужно что то типа такого? и как их связать чтоб он брал один ip из файла - ребутил и брал следующий и так до конца списка?
да чтто типа такого,
 from dragon_rest.dragons import DragonAPI
def reboot_host(address, login, password):
    api = DragonAPI(address,
                username=login,
                password=password)
    r = api.reboot()
    print(r)
with  open(r'test.csv', 'r') as f:
    for line in f.readlines():
        address, login, password = line.split(',')
        '''вобщем тут нужно получить ИП, логин и пароль. как они у вас  храняться ХЗ.
           Исхожу из того  что в виде "XXX.XXX.XXX.XXX,admin_login,admin_password"
           Но вобщем поправте где нужно, может нужно будет пробелы гдето поубирать или еще что.
        '''
        reboot_host(address, login, password)
scorcher
спасибо,

хранятся в txt или csv такого типа:

10.01.01.01
10.01.01.00
10.01.01.02
10.01.01.03

в csv один ip - одна ячейка/строка.

login и password везде одинаковый по дефолту admin и dragonadmin так что этот параметр постоянный
PEHDOM
scorcher
login и password везде одинаковый по дефолту admin и dragonadmin так что этот параметр постоянный
тем более еще проще, вместо address в reboot_host подставляете line, а login и password задавайте константами.
scorcher
собрал вот так и все равно не работает, перегружает только первый ip

 from dragon_rest.dragons import DragonAPI
dragon_host = 'list'
api = DragonAPI(dragon_host,
                username='admin',
                password='dragonadmin')
r = api.reboot() #reboot
print(r)
api.reboot
with open("test.txt") as file:
    array = list(open('test.txt'))

для примера добавлю файл который читаю
ZerG
так а что вы собрали?
Вам же выше указали что надо открыть файл.
В нем циклом пройтись по айпишникам и для каждого из них выполнить
api = DragonAPI(dragon_host,
username='admin',
password='dragonadmin')

вы же выбросили все циклы и вернулись к изначальному.

Начните с того что оставьте пока перезагрузку и распечатайте айпишники из файла по одному.
Когда что получится просто подставите что в свой АПИ.
scorcher
добил
 from dragon_rest.dragons import DragonAPI
def reboot_host(line):
    api = DragonAPI(line,
                username='admin',
                password='dragonadmin')
    r = api.reboot() 
    print(r)
    api.reboot
with open('test.txt', 'r') as f:
    for line in f.readlines():
        line = line.rstrip()
        reboot_host(line)

теперь вопрос как его ускорить
ZerG
Запускать несколько потоков например.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB