
Алексей
19.12.2017
22:11:23
но логику понятно

Stannis
19.12.2017
22:11:48
вот пример:
def run_script(self, object, script, *args, **kwargs):
s = getattr(object.scripts, script)
return object, s(*args, **kwargs)
def handle_cli(self, limit, command, objects, *args, **options):
if not command:
return
with ThreadPoolExecutor(max_workers=limit) as executor:
futures = []
for o in self.iter_objects(objects):
futures += [
executor.submit(self.run_script, o,
"commands", commands=command)
]
for future in as_completed(futures):
try:
o, result = future.result()
self.stdout.write("@@@ %s %s\n%s\n" % (o.address, o.name, "".join(result)))
except Exception as e:
self.stdout.write("[%s] [%s] ERROR: %s\n" % (o.address, o.name, e))
Оно же просто выполняет команду и выплёвывает вывод

Алексей
19.12.2017
22:12:22
пролема с 3 пунктом.

Google

Stannis
19.12.2017
22:12:33
да

Алексей
19.12.2017
22:12:41
ибо профили это как раз вариант поработать с железякой интерактивно
там есть данные для поработать и контекст для этого а вот в остальных местах его нету
так что да. поще всего сделать скрипт в sa/profile
который будет делать нужное

Stannis
19.12.2017
22:13:45
а как запускать?

Алексей
19.12.2017
22:13:55
дак запустить скрипт не проблема
интерфейс в мордочке есть
sa -> mo -> scripts
подгляди механику там

Stannis
19.12.2017
22:14:44

Алексей
19.12.2017
22:15:16
это вот описано выше в доке которую кидал ваня. вордовские файлы в истории канала

Stannis
19.12.2017
22:18:08
Пока не понятно, но почитаю

Google

Алексей
19.12.2017
22:18:41
скрипты в профиле не обязательно служат утилитарным целям дискавери
они бывают и так просто нужны :)
у меня был скрит который собирал дебаг с алика при возникновении нештатной ситуации.
тим строчка в логе проскакивала и после нее надо было в течении минуты собрать вывод техсаппорта
вполне задачка для нока ага

Stannis
19.12.2017
22:20:47

Алексей
19.12.2017
22:21:02
нок ран это дебаг инструмент
он в таком виде проектировался

Stannis
19.12.2017
22:21:19
)))
Вполне себе прижился )

Алексей
19.12.2017
22:21:29
не стоит завязывать процессы на него. это не приведет ни к чему хорошему

Stannis
19.12.2017
22:21:36
да

Алексей
19.12.2017
22:21:54
побаловались, поняли что оно работает и делаем норм :)

Stannis
19.12.2017
22:22:08
значит правильный путь это sa/profile

Алексей
19.12.2017
22:22:21
для прототипа пойдет. для работы так себе.

Stannis
19.12.2017
22:23:09
./noc script —debug <имя_скрипта> <имя_объекта> <параметры>
Опять вопрос как вызывать...
через переодик?

Алексей
19.12.2017
22:24:05
:(
нафигачить скрипт в sa/profile/Cisco/Ios/set_magic.py

Stannis
19.12.2017
22:24:46
ага

Google

Алексей
19.12.2017
22:24:48
отладить его

Stannis
19.12.2017
22:24:51
ага

Алексей
19.12.2017
22:25:28
подсмотреть реализацию вызова скриптов в sa -> mo -> scripts
вызыват ьтак же

Stannis
19.12.2017
22:25:53
Я понял!
Спасибо за подсказку!!
Run script будет уже выполнять не текстовую операцию в консоли, а скрипт.

Алексей
19.12.2017
22:27:27
services/web/apps/sa/managedobject/views.py тут 579 строка и ниже

Stannis
19.12.2017
22:29:57
Спасибо
Если получится накидаю статейку!

Алексей
19.12.2017
22:30:25
ну что за упаднические настроения. конечно получится :)

Stannis
19.12.2017
22:31:23
да нок просто шикарен!
Я с ним больше ночей провожу, чем с бабами

Алексей
19.12.2017
22:37:13
ну что вы. надо себя заставлять.

Stannis
19.12.2017
22:42:27
Кстати, а в get_metrics совмещать SNMP и CLI можно?

Ilya
20.12.2017
03:27:26

Stannis
20.12.2017
03:27:47

Ivan
20.12.2017
06:10:48
Упоротые, вы спите вообще?

Wingman
20.12.2017
06:12:40

Ivan
20.12.2017
06:13:51

Pavel
20.12.2017
07:41:30
Всем привет. Пытаюсь разобраться что такое скрипты в NOC и с чем их едят. Столкнулся с проблемой. Запускаю ./noc shell
In [1]: from noc.sa.models import *
...: default = ManagedObjectProfile.objects.get(name='default')
...:
Получаю ошибку
NameError: name 'ManagedObjectProfile' is not defined

Google

Ivan
20.12.2017
07:43:12
Или не всё импортнул или не так
Нок в башне?

Dorian
20.12.2017
07:45:42
Может filter ?
А не get
Ага..
Это профиль

Pavel
20.12.2017
07:52:32
Кто-нибудь сталкивался? Как будто что-то не доинсталлилось...

Ivan
20.12.2017
07:57:37

E_zombie
20.12.2017
08:05:52
https://pp.userapi.com/c840422/v840422545/3541f/SLWr8nRoh5U.jpg
ставь нок. ставь нок, сцука.

Pavel
20.12.2017
08:14:37

Gitlab
20.12.2017
08:45:40
dmitryluhtionov opened merge request at / noc:
Fix SKS.SKS.get_spanning_tree script

Ivan
20.12.2017
09:22:47
https://code.getnoc.com/noc/noc/issues/610 подтвердите или опровергните

E_zombie
20.12.2017
09:29:43
через веб морду создал норм.

Ivan
20.12.2017
09:30:22
дерьмо
похоже, это связано с ебаной телеметрией.

Алексей
20.12.2017
09:31:08

Ivan
20.12.2017
09:31:27
ну слава пряникам
но сейчас у меня работает

Алексей
20.12.2017
09:31:41
оно создается так если пункт не выбран

Ivan
20.12.2017
09:31:47
пункт?

Google

Алексей
20.12.2017
09:32:09
тоесть в выпадашке ты вписал вариант. а не выбрал из списка
я думаю что это проблема с js

Ivan
20.12.2017
09:36:37
Мммм. Мммм.

Pavel
20.12.2017
12:10:14
Скажите, а есть у нока какое-то API? может REST? нужно добавлять МО

Алексей
20.12.2017
12:11:30
да есть
но нифига не описан

N
20.12.2017
12:28:42
@freeseacher а багу с консулом починили, когда на сервере несколько сетевух?

Ivan
20.12.2017
12:29:00

Pavel
20.12.2017
12:29:05
да есть
ну хоть какие-то есть концы? ?

Ivan
20.12.2017
12:29:06
там вингман страдал

Pavel
20.12.2017
12:29:22
да есть
там схемы, урла, что подергать-то? ?
а....
а авторизоваваться как?

Ivan
20.12.2017
12:30:06
Basic авторизация
если тебе это о чём-то гворорит

Gitlab
20.12.2017
12:42:47

Pavel
20.12.2017
12:56:59

Ivan
20.12.2017
12:57:17
я очень рад, потому что я просто повторил Лёшины слова
я не знаю, чё это