
Zek
11.04.2017
12:02:02
а как ManagedObject.objects.filter пользоваться? )

bee26
11.04.2017
12:13:48
ManagedObject.objects.filter(object_profile=ManagedObjectProfile.objects.get(name='junos')
все мо с профилем джуна

Zek
11.04.2017
12:16:51
а еще варианты? )

Google

bee26
11.04.2017
12:17:24
а тебе что нужно?

Zek
11.04.2017
12:17:56
где filter() вообще находится?
ну например по platform
или какому-нибудь произвольному атрибуту вообще

bee26
11.04.2017
12:18:57
это уже атрибуты

Алексей
11.04.2017
12:19:07

E_zombie
11.04.2017
12:19:21
способов море

bee26
11.04.2017
12:19:34
for m in mo:
platform = ManagedObjectAttribute.objects.get(managed_object=m, key="platform").value


E_zombie
11.04.2017
12:19:34
Разница в конфигах
from noc.sa.models.managedobject import *
from noc.sa.models.managedobjectprofile import *
from noc.sa.models.authprofile import *
ob = ManagedObjectProfile.objects.filter(name='staticip')
ob1 = ManagedObjectProfile.objects.filter(name='loopback')
ob2 = ManagedObjectProfile.objects.filter(name='huawei.dslam')
ob3 = ManagedObjectProfile.objects.filter(name='raisecom.fttb')
host = "10.64.102.249"
mo = ManagedObject.objects.filter(name=host).exclude(object_profile=ob).exclude(object_profile=ob1).exclude(object_profile=ob2).exclude(object_profile=ob3)
for m in mo:
# print m, m.object_profile
if m.config.read() is not None and m.profile_name != 'Huawei.VRP':
print m, m.object_profile
arr = m.config.get_revisions()
print m.config.diff(str(arr[len(arr)-2][0]), str(arr[-1][0]) )
for i in arr:
print i[0], i[1], i[2]
#mo = ManagedObject.objects.filter(name__contains="MSK-AP",object_profile=wifi)
mo = ManagedObject.objects.filter(name__contains="MSK-AP")


Zek
11.04.2017
12:20:22
О, exclude еще есть

bee26
11.04.2017
12:20:23
лучше в теги все пихни

Zek
11.04.2017
12:20:25
отлищно

Google

Алексей
11.04.2017
12:20:28
@largelos только не делай import * зомби старый ему переучитьсваться лень

E_zombie
11.04.2017
12:20:44
мне лень ковырять объекты. да.
в вики забито со старых

Алексей
11.04.2017
12:21:09

bee26
11.04.2017
12:21:18
ManagedObject.objects.filter(managedobjectattribute__key='platform')

Алексей
11.04.2017
12:21:19
с поправкой на то что у нас 1.4

Zek
11.04.2017
12:21:38
ок, спасибо, пригодится
но в гробу я видел питон )

Алексей
11.04.2017
12:22:11
а на чем пишешь ?

E_zombie
11.04.2017
12:22:19
на баше
ну после явы да.
могут быть. ....
отторжения.

bee26
11.04.2017
12:22:41
если хочешь пользоваться ноком - учи пейтон

Zek
11.04.2017
12:22:52
не хочу
и не пользуюсь
;)

E_zombie
11.04.2017
12:23:10
давайте его зойбанем?

Алексей
11.04.2017
12:23:13
в современном мире человнек который не знает ни одного языка программирования равен неграмотному в 19 веке.
https://habrahabr.ru/post/144540/

Google

Алексей
11.04.2017
12:26:08
shell считается?

Алексей
11.04.2017
12:26:58
боюсь что нет...

Zek
11.04.2017
12:27:05
яжнепрограммист.

E_zombie
11.04.2017
12:29:26
какой ты в пизду сисадмин что не умеешь на пейтоне захуячить 10 строчек.
'remote_interface': 'GigabitEthernet1/0/45'}]}
вот так можно или надо конвертить ?
'remote_interface': 'GigabitEthernet 1/0/45'}]}
в такое 7

Zek
11.04.2017
12:46:00
кто тебе сказал что не умею
м, занятно
Traceback (most recent call last):
File "<stdin>", line 4, in <module>
File "/opt/noc/cm/engine.py", line 153, in check
self._check()
File "/opt/noc/cm/engine.py", line 181, in _check
for r in self.get_rules():
File "/opt/noc/cm/engine.py", line 263, in get_rules
self.object
File "/opt/noc/cm/engine.py", line 245, in _get_rules
for vc, rule in self._get_rule_settings(ps, scope)
File "/opt/noc/cm/engine.py", line 225, in _get_rule_settings
if not pi.is_active or not policy.is_active:
File "/opt/noc/local/lib/python2.7/site-packages/bson/dbref.py", line 91, in __getattr__
raise AttributeError(key)
AttributeError: is_active

Zek
11.04.2017
12:48:47
engine.check трейсит на объекте
в веб моде ошибка когда заходишь в раздел валидации
чем это он такой особенный, интересно
да, походу на объекте висела политика несуществующая

E_zombie
11.04.2017
13:02:17
хехехехе

Ivan
11.04.2017
14:03:57
Ребята, а короткие пи тон-скрипты как в ноке запускать?
но не из нок-шелла

E_zombie
11.04.2017
14:04:18
овер9000 раз

Google

E_zombie
11.04.2017
14:04:20
а что ?

Ilya
11.04.2017
14:04:38

E_zombie
11.04.2017
14:04:50
складываешь в ./commands и потом ./noc <твой заебись крутой скрипт>

Ivan
11.04.2017
14:04:52
Его достаточно в корне нока юзать?

E_zombie
11.04.2017
14:05:06
без .py в конце
но это костыль да.

Ivan
11.04.2017
14:05:24
ну у меня акция единоразовая

Admin
ERROR: S client not available

Ivan
11.04.2017
14:05:29
хочу инвентори разгрести

E_zombie
11.04.2017
14:18:50
а как ты по расписанию херачишь ?

Ivan
11.04.2017
14:20:38
никак
ещё ничего не делал

E_zombie
11.04.2017
14:21:13
# crontab -l | grep ./noc | wc -l
10
вот я нахуивертил тут в lldp \cdp \ caps для RHEL
пиздетц

Ivan
11.04.2017
14:31:30
пиздетц
как всем из "for i_inv in ManagedObject.objects.filter(name__contains="campus"):" назначить контейнер?

E_zombie
11.04.2017
14:31:42
погодь

Ivan
11.04.2017
14:35:59
годю

Bitbucket
11.04.2017
14:37:14
update Linux.RHEL. ➔
fix some bug

Google

E_zombie
11.04.2017
14:43:04
такс

Ilya
11.04.2017
14:43:15
такакс

E_zombie
11.04.2017
14:43:51
from noc.inv.models.object import Object
from noc.inv.models.objectmodel import ObjectModel
f = open('/opt/noc/object.txt', 'r')
assinfire = []
for line in f:
ap = line.split()
assinfire.append(ap)
f.close()
wifi = ManagedObjectProfile.objects.get(name='Ruckus_WiFi')
for mo in tuple(ManagedObject.objects.filter(name__contains="MSK-AP",object_profile=wifi)):
name1 = mo.name
if not Object.objects.filter(name = name1):
for ass in assinfire:
if ass[0] == name1:
x = ass[1]
y = ass[2]
ObjectModel.objects.get(name="PoP | Access")
point_model = ObjectModel.objects.get(name="PoP | Access")
cont = Object.objects.get(name="Wi-Fi")
data = {"geopoint": {"srid": "EPSG:4326", "x": float(x), "y": float(y), }, "pop": {"level": 30} }
p_cont=Object(name=name1, model=point_model, container=cont.id, data=data)
p_cont.save()
вроде оно

Ivan
11.04.2017
14:44:37
ТАК МНОГО!?

E_zombie
11.04.2017
14:44:50
это пример
cont = Object.objects.get(name="Wi-Fi")
p_cont=Object(name=name1, model=point_model, container=cont.id, data=data)
p_cont.save()
такс. не... я туплю уже.
у тебя чуток другое

Ivan
11.04.2017
14:46:46
у меня есть имя контейнера, я хочу выбранные модели мо, в имени которого есть "ываываы" туда положить

E_zombie
11.04.2017
14:47:31
=================================================
change model container
================================================
from noc.inv.models.object import Object
from noc.inv.models.objectmodel import ObjectModel
from noc.sa.models.managedobject import ManagedObject
from noc.sa.models.managedobjectprofile import ManagedObjectProfile
wifi = ManagedObjectProfile.objects.get(name='Ruckus_WiFi')
szmodel = ObjectModel.objects.get(name="PoP | AP | SZ")
zdmodel = ObjectModel.objects.get(name="PoP | AP | ZD")
for mo in tuple(ManagedObject.objects.filter(name__contains="MSK-AP",object_profile=wifi)):
controller = ManagedObject.objects.get(id=mo.controller_id)
cname = controller.name
print cname
не. это тоже не то.
такс.

Ivan
11.04.2017
14:50:23
+0

E_zombie
11.04.2017
14:53:11
там какой то тупняк

Ivan
11.04.2017
14:54:02
забей
я сам попробую

E_zombie
11.04.2017
14:54:13
давай завтра на свежую голову.

Ivan
11.04.2017
14:55:53
если к вечеру найдёшь, пиши

Bitbucket
11.04.2017
14:58:07
fix ➔