
John
05.06.2017
15:01:04
при нажатии edit список пуст)

Илья
05.06.2017
15:01:15
?

E_zombie
05.06.2017
15:01:19
мышкой перетащить

John
05.06.2017
15:01:31
хе)

Google

E_zombie
05.06.2017
15:02:34
ну или скриптами.
да.

Ilya
05.06.2017
15:02:41

E_zombie
05.06.2017
15:02:49
150 рублей и пример твой.


Ilya
05.06.2017
15:02:56
# -*- coding: utf-8 -*-
##----------------------------------------------------------------------
## inventory_add_sa_object
##----------------------------------------------------------------------
## Copyright (C) 2007-2014 The NOC Project
## See LICENSE for details
##----------------------------------------------------------------------
# Python modules
import re
import requests
# NOC modules
from noc.sa.models import *
from noc.inv.models import *
from noc.inv.models.object import *
from noc.lib.nosql import get_db
rx_city = re.compile(
r"^(г\.|пгт\.|пос\.|с\.)+(?P<city>(\S+ \S+ \S+|\S+ \S+|\S+))")
rx_street = re.compile(
r"^ ул\.+(?P<street>(\S+ \S+ \S+|\S+ \S+|\S+))")
rx_house = re.compile(
r"^ д\.+(?P<house>(\d+\S+|\d+))")
rx_room = re.compile(
r"^ п\.+(?P<room>(\d+\S+|\d+))")
db = get_db()
om = db.noc.objectmodels
"""
Uninstall:
./noc shell
from noc.sa.models import *
from noc.inv.models import *
from noc.inv.models.object import *
from noc.lib.nosql import get_db
db = get_db()
om = db.noc.objectmodels
Object.objects.filter(model = om.find_one({"name": 'NoName | Rack | 19" 8U 800mm Shelf'})["_id"]).delete()
Object.objects.filter(model = om.find_one({"name": 'Room'})["_id"]).delete()
Object.objects.filter(model = om.find_one({"name": 'PoP | Access'})["_id"]).delete()
Object.objects.filter(model = om.find_one({"name": 'PoP | Aggregation'})["_id"]).delete()
psql noc
TRUNCATE TABLE gis_geodata;
"""
K = 0
k = 0
for mo in tuple(ManagedObject.objects.filter(
administrative_domain=1)):
mo_id = mo.id
name = mo.name
segment = mo.segment
postaddress = mo.postaddress.encode("UTF-8")
#
# print ""
# print postaddress
#
postaddress = postaddress.split(',')
match = rx_city.search(postaddress[0])
if match:
city = match.group("city")
for i in db.noc.objects.find({"name": 'г.' + city}):
city_id = i["_id"]
else:
continue
try:
match = rx_street.search(postaddress[1])
except IndexError:
continue
if match:
street = match.group("street")
else:
continue
try:
match = rx_house.search(postaddress[2])
except IndexError:
continue
if match:
house = match.group("house")
else:
continue
try:
match = rx_room.search(postaddress[3])
except IndexError:
continue
if match:
room = match.group("room")
else:
continue
pop = "ул.".decode('UTF-8') + (street).decode('UTF-8') + ", д.".decode('UTF-8') + (house).decode('UTF-8')
room = "Подъезд №".decode('UTF-8') + room
rack = "Ящик №1".decode('UTF-8')
K += 1
if city:
# try:
print 'г.'.decode('UTF-8') + city.decode('UTF-8') + ' | ' + segment + ' | ' + pop + ' | ' + room + ' | ' + rack
if not Object.objects.filter(name = segment):
url="http://geocode-maps.yandex.ru/1.x/?geocode=" + city + ",+" + street.replace(' ', '+') + ",+дом+" + house +"&format=json"
urlopen = requests.get(url)
obj = urlopen.json()
coord = obj["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["Point"]["pos"].split(' ')
x = coord[0]
y = coord[1]
print 'г.'.decode('UTF-8') + city.decode('UTF-8') + ' | ' + segment + ' x=' + str(x) + ' y=' + str(y)
Object(
name = segment,
model = om.find_one({"name": "PoP | Aggregation"})["_id"],
container = ObjectId(city_id),
data = {"geopoint": {
"srid": "EPSG:4326",
"x": float(x),
"y": float(y),
},
"pop": {"level": 30}
}
).save()
for i in db.noc.objects.find({"container": ObjectId(city_id), "name": segment }):
segment_id = i["_id"]
if not Object.objects.filter(container = ObjectId(segment_id), name = pop):
url="http://geocode-maps.yandex.ru/1.x/?geocode=" + city + ",+" + street.replace(' ', '+') + ",+дом+" + house +"&format=json"
urlopen = requests.get(url)
obj = urlopen.json()
coord = obj["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["Point"]["pos"].split(' ')
x = coord[0]
y = coord[1]
print 'г.'.decode('UTF-8') + city.decode('UTF-8') + ' | ' + segment + ' | ' + pop + ' x=' + str(x) + ' y=' + str(y)
Object(
name = pop,
model = om.find_one({"name": "PoP | Access"})["_id"],
container = ObjectId(segment_id),
data = {"geopoint": {
"srid": "EPSG:4326",
"x": float(x),
"y": float(y),
},
"pop": {"level": 15}
}
).save()
for i in db.noc.objects.find({"container": ObjectId(mcrn_id), "name": pop }):
pop_id = i["_id"]
if not Object.objects.filter(container = ObjectId(pop_id), name = room):
Object(
name = room,
model = om.find_one({"name": "Room"})["_id"],
container = ObjectId(pop_id),
data = {}
).save()
print 'Add ', room
for i in db.noc.objects.find({"container": ObjectId(pop_id), "name": room}):
room_id = i["_id"]
if not Object.objects.filter(container = ObjectId(room_id), name = rack):
Object(
name = rack,
model = om.find_one({"name": 'NoName | Rack | 19" 8U 800mm Shelf'})["_id"],
container = ObjectId(room_id),
data = {}
).save()
print 'Add ', rack
print "\n\n"
for i in db.noc.objects.find({"container": ObjectId(room_id), "name": rack}):
rack_id = i["_id"]
# Уложить mo в Rack
k += 1
# break
# except:
# break
# continue
print K, k


John
05.06.2017
15:03:11
нок блейд корзины могёт переживать)


Алексей
05.06.2017
15:16:04
# -*- coding: utf-8 -*-
##----------------------------------------------------------------------
## inventory_add_sa_object
##----------------------------------------------------------------------
## Copyright (C) 2007-2014 The NOC Project
## See LICENSE for details
##----------------------------------------------------------------------
# Python modules
import re
import requests
# NOC modules
from noc.sa.models import *
from noc.inv.models import *
from noc.inv.models.object import *
from noc.lib.nosql import get_db
rx_city = re.compile(
r"^(г\.|пгт\.|пос\.|с\.)+(?P<city>(\S+ \S+ \S+|\S+ \S+|\S+))")
rx_street = re.compile(
r"^ ул\.+(?P<street>(\S+ \S+ \S+|\S+ \S+|\S+))")
rx_house = re.compile(
r"^ д\.+(?P<house>(\d+\S+|\d+))")
rx_room = re.compile(
r"^ п\.+(?P<room>(\d+\S+|\d+))")
db = get_db()
om = db.noc.objectmodels
"""
Uninstall:
./noc shell
from noc.sa.models import *
from noc.inv.models import *
from noc.inv.models.object import *
from noc.lib.nosql import get_db
db = get_db()
om = db.noc.objectmodels
Object.objects.filter(model = om.find_one({"name": 'NoName | Rack | 19" 8U 800mm Shelf'})["_id"]).delete()
Object.objects.filter(model = om.find_one({"name": 'Room'})["_id"]).delete()
Object.objects.filter(model = om.find_one({"name": 'PoP | Access'})["_id"]).delete()
Object.objects.filter(model = om.find_one({"name": 'PoP | Aggregation'})["_id"]).delete()
psql noc
TRUNCATE TABLE gis_geodata;
"""
K = 0
k = 0
for mo in tuple(ManagedObject.objects.filter(
administrative_domain=1)):
mo_id = mo.id
name = mo.name
segment = mo.segment
postaddress = mo.postaddress.encode("UTF-8")
#
# print ""
# print postaddress
#
postaddress = postaddress.split(',')
match = rx_city.search(postaddress[0])
if match:
city = match.group("city")
for i in db.noc.objects.find({"name": 'г.' + city}):
city_id = i["_id"]
else:
continue
try:
match = rx_street.search(postaddress[1])
except IndexError:
continue
if match:
street = match.group("street")
else:
continue
try:
match = rx_house.search(postaddress[2])
except IndexError:
continue
if match:
house = match.group("house")
else:
continue
try:
match = rx_room.search(postaddress[3])
except IndexError:
continue
if match:
room = match.group("room")
else:
continue
pop = "ул.".decode('UTF-8') + (street).decode('UTF-8') + ", д.".decode('UTF-8') + (house).decode('UTF-8')
room = "Подъезд №".decode('UTF-8') + room
rack = "Ящик №1".decode('UTF-8')
K += 1
if city:
# try:
print 'г.'.decode('UTF-8') + city.decode('UTF-8') + ' | ' + segment + ' | ' + pop + ' | ' + room + ' | ' + rack
if not Object.objects.filter(name = segment):
url="http://geocode-maps.yandex.ru/1.x/?geocode=" + city + ",+" + street.replace(' ', '+') + ",+дом+" + house +"&format=json"
urlopen = requests.get(url)
obj = urlopen.json()
coord = obj["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["Point"]["pos"].split(' ')
x = coord[0]
y = coord[1]
print 'г.'.decode('UTF-8') + city.decode('UTF-8') + ' | ' + segment + ' x=' + str(x) + ' y=' + str(y)
Object(
name = segment,
model = om.find_one({"name": "PoP | Aggregation"})["_id"],
container = ObjectId(city_id),
data = {"geopoint": {
"srid": "EPSG:4326",
"x": float(x),
"y": float(y),
},
"pop": {"level": 30}
}
).save()
for i in db.noc.objects.find({"container": ObjectId(city_id), "name": segment }):
segment_id = i["_id"]
файлом то не ?


Ilya
05.06.2017
15:16:18
сорян

Алексей
05.06.2017
15:16:32
дак даже если 5 строк
один хрен

Google


Ivan
05.06.2017
15:35:18
if not Object.objects.filter(container = ObjectId(segment_id), name = pop):
url="http://geocode-maps.yandex.ru/1.x/?geocode=" + city + ",+" + street.replace(' ', '+') + ",+дом+" + house +"&format=json"
urlopen = requests.get(url)
obj = urlopen.json()
coord = obj["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]["Point"]["pos"].split(' ')
x = coord[0]
y = coord[1]
print 'г.'.decode('UTF-8') + city.decode('UTF-8') + ' | ' + segment + ' | ' + pop + ' x=' + str(x) + ' y=' + str(y)
Object(
name = pop,
model = om.find_one({"name": "PoP | Access"})["_id"],
container = ObjectId(segment_id),
data = {"geopoint": {
"srid": "EPSG:4326",
"x": float(x),
"y": float(y),
},
"pop": {"level": 15}
}
).save()
for i in db.noc.objects.find({"container": ObjectId(mcrn_id), "name": pop }):
pop_id = i["_id"]
if not Object.objects.filter(container = ObjectId(pop_id), name = room):
Object(
name = room,
model = om.find_one({"name": "Room"})["_id"],
container = ObjectId(pop_id),
data = {}
).save()
print 'Add ', room
for i in db.noc.objects.find({"container": ObjectId(pop_id), "name": room}):
room_id = i["_id"]
if not Object.objects.filter(container = ObjectId(room_id), name = rack):
Object(
name = rack,
model = om.find_one({"name": 'NoName | Rack | 19" 8U 800mm Shelf'})["_id"],
container = ObjectId(room_id),
data = {}
).save()
print 'Add ', rack
print "\n\n"
for i in db.noc.objects.find({"container": ObjectId(room_id), "name": rack}):
rack_id = i["_id"]
# Уложить mo в Rack
k += 1
# break
# except:
# break
# continue
print K, k
Что оно делает? С телефона хер проссышь


Ilya
05.06.2017
15:36:19
ну и тп

Ivan
05.06.2017
15:44:56
Данные о местоположении из снмп?

Алексей
05.06.2017
15:54:45
etc ?
/etc/noc – 8
??????? 62%
/opt/noc/etc – 3
??? 23%
/etc/opt/noc – 1
? 8%
пофиг все равно все в консуле – 1
? 8%
? 13 people voted so far.

Dubridze
05.06.2017
16:08:25
TASK [nginx : Setup nginx]12:08
fatal: [xxx-noc01]: FAILED! => {
"changed": false,
"failed": true
}
MSG:
AnsibleUndefinedVariable: {{noc_config['config'].get('keepalived-global-%s' % groups['svc-keepalived'][0], {}).get('nginx_virtual_ip', '')}}: list object has no element 0
Всем привет
Что не нравится ему при деплое?

Ilya
05.06.2017
16:12:19

Константин
05.06.2017
16:40:15

Dubridze
05.06.2017
16:40:48
как лечить?
Это как так?

Константин
05.06.2017
16:43:28
Пока не знаю, отвлекли

Dubridze
05.06.2017
16:47:03
Это суко какой то лютый пиздец
Ну как так можно то
Это штозахуйнятакая

Ivan
05.06.2017
16:52:45
Сочувствую
Ф5 не помогает?

Google

Ivan
05.06.2017
16:53:05
Рестарт башни?

Dubridze
05.06.2017
16:53:57
Да тут не рестарт будет а полный реинсталл
Жованый крот!!!!
слов нет....
Так расхваливал какой есть распиздатый проект нок. Как в нем все удобно....
Было....
3 года назад
Сейчас пиздец какой то
Ни документации - нихуя

Ivan
05.06.2017
16:55:47

Dubridze
05.06.2017
16:56:30
3 года назад она начинала появляться

Dubridze
05.06.2017
16:56:48
была надежда что спустя столько времени она будет дополнена
а хуй там
не угадал я
как не было
так и нет
а та что была, сейчас вообще не актуальна потому что платформа сменилась
Еще по старой памяти знаю что для чего
Новый человек увидит это и охуеет ведь

Google

Ivan
05.06.2017
16:59:59
Ну да, все и охуевают
Ты там остыл, чинить будешь или переставить проще?)

Dubridze
05.06.2017
17:00:44
ноду восстановил из снапшота
снапашота башни нет
сейчас пытаюсь в башне ноду добавить - не добавляется
просто ничего не происходит
ноду добавил, сервисы не конфигурятся

Ilya
05.06.2017
17:05:28
Надо голосование кто сколько раз нок переставлял

Dubridze
05.06.2017
17:09:31
Вот как заносить в нок 1к устройств, если оно в любой день может раком встать

Admin
ERROR: S client not available

Bitbucket
05.06.2017
17:11:14
Andrey pushed to noc/feature/microservices
Fix snmp ifindex and slots number for MA5603 in Huawei.MA5600T profile

Ilya
05.06.2017
17:12:51
Легко
Я тоже раньше боялся и НОК крашился
Потом перестал его ломать и попросил админов настроить бекап

N
05.06.2017
17:14:44
перефразирую, перестал обновляться

Ilya
05.06.2017
17:16:33
На выходных обновился

N
05.06.2017
17:18:17
уже все косяки от слияния dcs исправили?
можно обновляться?

Ivan
05.06.2017
17:19:38

Google

N
05.06.2017
17:20:10
да это я вижу) просто жду хотя бы как-то стабильного коммита

Ivan
05.06.2017
17:21:21
Делай бекап и поехали

N
05.06.2017
17:22:42
бекап не проблема, проблема потом, т.к. нок может незадеплоится , и не ясно когда починят, а мониторинг нужен
вообщем простой в пол дня - неприколько

Ilya
05.06.2017
17:24:22
Сломан wipe и линковка по lldp, если у тебя chassis id в виде ip адреса

Алексей
05.06.2017
17:27:24

N
05.06.2017
17:28:40
может на форуме будем отмечать номера рабочих комитов?

Алексей
05.06.2017
17:29:37
На коммитах которые действительно что-то делают хорошо я ставлю галочку в хг

Ivan
05.06.2017
17:30:01

Алексей
05.06.2017
17:30:17
Важный момент у меня в эксплуатацию как правило последний коммит

Ilya
05.06.2017
17:30:31

Алексей
05.06.2017
17:30:45
Ну плюс минус конечно, но последний

Ilya
05.06.2017
17:31:37
это не в lldp, а в discovery проблема.
озадачил народ. ждем ответа
вчера поправили, но н езакоммитили
вечером закоммитят
Во до сих пор коммитят

Andrey
05.06.2017
17:35:25
@somovis я так и не осознал - где проблема в LLDP
wipe я поправил, ну. по крайне мере у меня сработал. Желающих проверить у себя я не увидел
была проблема с lldp_neighbors в JunOS, её поправили

Ilya
05.06.2017
17:37:13