Commit 216b1036 authored by Aleksey Shirokih's avatar Aleksey Shirokih
Browse files

Merge branch 'microservices' of code.getnoc.com:noc/noc into improve_ci_tests

parents 44fc4213 e422239c
This diff is collapsed.
# -*- coding: utf-8 -*-
# ----------------------------------------------------------------------
# MPLS-L3VPN-STD-MIB
# Compiled MIB
# Do not modify this file directly
# Run ./noc make-cmib instead
# ----------------------------------------------------------------------
# Copyright (C) 2007-2018 The NOC Project
# See LICENSE for details
# ----------------------------------------------------------------------
# MIB Name
NAME = "MPLS-L3VPN-STD-MIB"
# Metadata
LAST_UPDATED = "2006-01-23"
COMPILED = "2018-06-07"
# MIB Data: name -> oid
MIB = {
"MPLS-L3VPN-STD-MIB::mplsL3VpnMIB": "1.3.6.1.2.1.10.166.11",
"MPLS-L3VPN-STD-MIB::mplsL3VpnNotifications": "1.3.6.1.2.1.10.166.11.0",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfUp": "1.3.6.1.2.1.10.166.11.0.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfDown": "1.3.6.1.2.1.10.166.11.0.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRouteMidThreshExceeded": "1.3.6.1.2.1.10.166.11.0.3",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfNumVrfRouteMaxThreshExceeded": "1.3.6.1.2.1.10.166.11.0.4",
"MPLS-L3VPN-STD-MIB::mplsL3VpnNumVrfSecIllglLblThrshExcd": "1.3.6.1.2.1.10.166.11.0.5",
"MPLS-L3VPN-STD-MIB::mplsL3VpnNumVrfRouteMaxThreshCleared": "1.3.6.1.2.1.10.166.11.0.6",
"MPLS-L3VPN-STD-MIB::mplsL3VpnObjects": "1.3.6.1.2.1.10.166.11.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnScalars": "1.3.6.1.2.1.10.166.11.1.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnConfiguredVrfs": "1.3.6.1.2.1.10.166.11.1.1.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnActiveVrfs": "1.3.6.1.2.1.10.166.11.1.1.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnConnectedInterfaces": "1.3.6.1.2.1.10.166.11.1.1.3",
"MPLS-L3VPN-STD-MIB::mplsL3VpnNotificationEnable": "1.3.6.1.2.1.10.166.11.1.1.4",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfConfMaxPossRts": "1.3.6.1.2.1.10.166.11.1.1.5",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfConfRteMxThrshTime": "1.3.6.1.2.1.10.166.11.1.1.6",
"MPLS-L3VPN-STD-MIB::mplsL3VpnIllLblRcvThrsh": "1.3.6.1.2.1.10.166.11.1.1.7",
"MPLS-L3VPN-STD-MIB::mplsL3VpnConf": "1.3.6.1.2.1.10.166.11.1.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnIfConfTable": "1.3.6.1.2.1.10.166.11.1.2.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnIfConfEntry": "1.3.6.1.2.1.10.166.11.1.2.1.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnIfConfIndex": "1.3.6.1.2.1.10.166.11.1.2.1.1.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnIfVpnClassification": "1.3.6.1.2.1.10.166.11.1.2.1.1.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnIfVpnRouteDistProtocol": "1.3.6.1.2.1.10.166.11.1.2.1.1.3",
"MPLS-L3VPN-STD-MIB::mplsL3VpnIfConfStorageType": "1.3.6.1.2.1.10.166.11.1.2.1.1.4",
"MPLS-L3VPN-STD-MIB::mplsL3VpnIfConfRowStatus": "1.3.6.1.2.1.10.166.11.1.2.1.1.5",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfTable": "1.3.6.1.2.1.10.166.11.1.2.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfEntry": "1.3.6.1.2.1.10.166.11.1.2.2.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfName": "1.3.6.1.2.1.10.166.11.1.2.2.1.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfVpnId": "1.3.6.1.2.1.10.166.11.1.2.2.1.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfDescription": "1.3.6.1.2.1.10.166.11.1.2.2.1.3",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRD": "1.3.6.1.2.1.10.166.11.1.2.2.1.4",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfCreationTime": "1.3.6.1.2.1.10.166.11.1.2.2.1.5",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfOperStatus": "1.3.6.1.2.1.10.166.11.1.2.2.1.6",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfActiveInterfaces": "1.3.6.1.2.1.10.166.11.1.2.2.1.7",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfAssociatedInterfaces": "1.3.6.1.2.1.10.166.11.1.2.2.1.8",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfConfMidRteThresh": "1.3.6.1.2.1.10.166.11.1.2.2.1.9",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfConfHighRteThresh": "1.3.6.1.2.1.10.166.11.1.2.2.1.10",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfConfMaxRoutes": "1.3.6.1.2.1.10.166.11.1.2.2.1.11",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfConfLastChanged": "1.3.6.1.2.1.10.166.11.1.2.2.1.12",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfConfRowStatus": "1.3.6.1.2.1.10.166.11.1.2.2.1.13",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfConfAdminStatus": "1.3.6.1.2.1.10.166.11.1.2.2.1.14",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfConfStorageType": "1.3.6.1.2.1.10.166.11.1.2.2.1.15",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRTTable": "1.3.6.1.2.1.10.166.11.1.2.3",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRTEntry": "1.3.6.1.2.1.10.166.11.1.2.3.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRTIndex": "1.3.6.1.2.1.10.166.11.1.2.3.1.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRTType": "1.3.6.1.2.1.10.166.11.1.2.3.1.3",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRT": "1.3.6.1.2.1.10.166.11.1.2.3.1.4",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRTDescr": "1.3.6.1.2.1.10.166.11.1.2.3.1.5",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRTRowStatus": "1.3.6.1.2.1.10.166.11.1.2.3.1.6",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRTStorageType": "1.3.6.1.2.1.10.166.11.1.2.3.1.7",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfSecTable": "1.3.6.1.2.1.10.166.11.1.2.6",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfSecEntry": "1.3.6.1.2.1.10.166.11.1.2.6.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfSecIllegalLblVltns": "1.3.6.1.2.1.10.166.11.1.2.6.1.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfSecDiscontinuityTime": "1.3.6.1.2.1.10.166.11.1.2.6.1.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnPerf": "1.3.6.1.2.1.10.166.11.1.3",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfPerfTable": "1.3.6.1.2.1.10.166.11.1.3.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfPerfEntry": "1.3.6.1.2.1.10.166.11.1.3.1.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfPerfRoutesAdded": "1.3.6.1.2.1.10.166.11.1.3.1.1.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfPerfRoutesDeleted": "1.3.6.1.2.1.10.166.11.1.3.1.1.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfPerfCurrNumRoutes": "1.3.6.1.2.1.10.166.11.1.3.1.1.3",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfPerfRoutesDropped": "1.3.6.1.2.1.10.166.11.1.3.1.1.4",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfPerfDiscTime": "1.3.6.1.2.1.10.166.11.1.3.1.1.5",
"MPLS-L3VPN-STD-MIB::mplsL3VpnRoute": "1.3.6.1.2.1.10.166.11.1.4",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteTable": "1.3.6.1.2.1.10.166.11.1.4.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteEntry": "1.3.6.1.2.1.10.166.11.1.4.1.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrDestType": "1.3.6.1.2.1.10.166.11.1.4.1.1.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrDest": "1.3.6.1.2.1.10.166.11.1.4.1.1.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrPfxLen": "1.3.6.1.2.1.10.166.11.1.4.1.1.3",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrPolicy": "1.3.6.1.2.1.10.166.11.1.4.1.1.4",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrNHopType": "1.3.6.1.2.1.10.166.11.1.4.1.1.5",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrNextHop": "1.3.6.1.2.1.10.166.11.1.4.1.1.6",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrIfIndex": "1.3.6.1.2.1.10.166.11.1.4.1.1.7",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrType": "1.3.6.1.2.1.10.166.11.1.4.1.1.8",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrProto": "1.3.6.1.2.1.10.166.11.1.4.1.1.9",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrAge": "1.3.6.1.2.1.10.166.11.1.4.1.1.10",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrNextHopAS": "1.3.6.1.2.1.10.166.11.1.4.1.1.11",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrMetric1": "1.3.6.1.2.1.10.166.11.1.4.1.1.12",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrMetric2": "1.3.6.1.2.1.10.166.11.1.4.1.1.13",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrMetric3": "1.3.6.1.2.1.10.166.11.1.4.1.1.14",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrMetric4": "1.3.6.1.2.1.10.166.11.1.4.1.1.15",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrMetric5": "1.3.6.1.2.1.10.166.11.1.4.1.1.16",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteXCPointer": "1.3.6.1.2.1.10.166.11.1.4.1.1.17",
"MPLS-L3VPN-STD-MIB::mplsL3VpnVrfRteInetCidrStatus": "1.3.6.1.2.1.10.166.11.1.4.1.1.18",
"MPLS-L3VPN-STD-MIB::mplsL3VpnConformance": "1.3.6.1.2.1.10.166.11.2",
"MPLS-L3VPN-STD-MIB::mplsL3VpnGroups": "1.3.6.1.2.1.10.166.11.2.1",
"MPLS-L3VPN-STD-MIB::mplsL3VpnCompliances": "1.3.6.1.2.1.10.166.11.2.2"
}
# -*- coding: utf-8 -*-
# ----------------------------------------------------------------------
# MPLS-VPN-MIB
# Compiled MIB
# Do not modify this file directly
# Run ./noc make-cmib instead
# ----------------------------------------------------------------------
# Copyright (C) 2007-2018 The NOC Project
# See LICENSE for details
# ----------------------------------------------------------------------
# MIB Name
NAME = "MPLS-VPN-MIB"
# Metadata
LAST_UPDATED = "2001-10-15"
COMPILED = "2018-06-23"
# MIB Data: name -> oid
MIB = {
"MPLS-VPN-MIB::mplsVpnMIB": "1.3.6.1.3.118",
"MPLS-VPN-MIB::mplsVpnNotifications": "1.3.6.1.3.118.0",
"MPLS-VPN-MIB::mplsVrfIfUp": "1.3.6.1.3.118.0.1",
"MPLS-VPN-MIB::mplsVrfIfDown": "1.3.6.1.3.118.0.2",
"MPLS-VPN-MIB::mplsNumVrfRouteMidThreshExceeded": "1.3.6.1.3.118.0.3",
"MPLS-VPN-MIB::mplsNumVrfRouteMaxThreshExceeded": "1.3.6.1.3.118.0.4",
"MPLS-VPN-MIB::mplsNumVrfSecIllegalLabelThreshExceeded": "1.3.6.1.3.118.0.5",
"MPLS-VPN-MIB::mplsVpnObjects": "1.3.6.1.3.118.1",
"MPLS-VPN-MIB::mplsVpnScalars": "1.3.6.1.3.118.1.1",
"MPLS-VPN-MIB::mplsVpnConfiguredVrfs": "1.3.6.1.3.118.1.1.1",
"MPLS-VPN-MIB::mplsVpnActiveVrfs": "1.3.6.1.3.118.1.1.2",
"MPLS-VPN-MIB::mplsVpnConnectedInterfaces": "1.3.6.1.3.118.1.1.3",
"MPLS-VPN-MIB::mplsVpnNotificationEnable": "1.3.6.1.3.118.1.1.4",
"MPLS-VPN-MIB::mplsVpnVrfConfMaxPossibleRoutes": "1.3.6.1.3.118.1.1.5",
"MPLS-VPN-MIB::mplsVpnConf": "1.3.6.1.3.118.1.2",
"MPLS-VPN-MIB::mplsVpnInterfaceConfTable": "1.3.6.1.3.118.1.2.1",
"MPLS-VPN-MIB::mplsVpnInterfaceConfEntry": "1.3.6.1.3.118.1.2.1.1",
"MPLS-VPN-MIB::mplsVpnInterfaceConfIndex": "1.3.6.1.3.118.1.2.1.1.1",
"MPLS-VPN-MIB::mplsVpnInterfaceLabelEdgeType": "1.3.6.1.3.118.1.2.1.1.2",
"MPLS-VPN-MIB::mplsVpnInterfaceVpnClassification": "1.3.6.1.3.118.1.2.1.1.3",
"MPLS-VPN-MIB::mplsVpnInterfaceVpnRouteDistProtocol": "1.3.6.1.3.118.1.2.1.1.4",
"MPLS-VPN-MIB::mplsVpnInterfaceConfStorageType": "1.3.6.1.3.118.1.2.1.1.5",
"MPLS-VPN-MIB::mplsVpnInterfaceConfRowStatus": "1.3.6.1.3.118.1.2.1.1.6",
"MPLS-VPN-MIB::mplsVpnVrfTable": "1.3.6.1.3.118.1.2.2",
"MPLS-VPN-MIB::mplsVpnVrfEntry": "1.3.6.1.3.118.1.2.2.1",
"MPLS-VPN-MIB::mplsVpnVrfName": "1.3.6.1.3.118.1.2.2.1.1",
"MPLS-VPN-MIB::mplsVpnVrfDescription": "1.3.6.1.3.118.1.2.2.1.2",
"MPLS-VPN-MIB::mplsVpnVrfRouteDistinguisher": "1.3.6.1.3.118.1.2.2.1.3",
"MPLS-VPN-MIB::mplsVpnVrfCreationTime": "1.3.6.1.3.118.1.2.2.1.4",
"MPLS-VPN-MIB::mplsVpnVrfOperStatus": "1.3.6.1.3.118.1.2.2.1.5",
"MPLS-VPN-MIB::mplsVpnVrfActiveInterfaces": "1.3.6.1.3.118.1.2.2.1.6",
"MPLS-VPN-MIB::mplsVpnVrfAssociatedInterfaces": "1.3.6.1.3.118.1.2.2.1.7",
"MPLS-VPN-MIB::mplsVpnVrfConfMidRouteThreshold": "1.3.6.1.3.118.1.2.2.1.8",
"MPLS-VPN-MIB::mplsVpnVrfConfHighRouteThreshold": "1.3.6.1.3.118.1.2.2.1.9",
"MPLS-VPN-MIB::mplsVpnVrfConfMaxRoutes": "1.3.6.1.3.118.1.2.2.1.10",
"MPLS-VPN-MIB::mplsVpnVrfConfLastChanged": "1.3.6.1.3.118.1.2.2.1.11",
"MPLS-VPN-MIB::mplsVpnVrfConfRowStatus": "1.3.6.1.3.118.1.2.2.1.12",
"MPLS-VPN-MIB::mplsVpnVrfConfStorageType": "1.3.6.1.3.118.1.2.2.1.13",
"MPLS-VPN-MIB::mplsVpnVrfRouteTargetTable": "1.3.6.1.3.118.1.2.3",
"MPLS-VPN-MIB::mplsVpnVrfRouteTargetEntry": "1.3.6.1.3.118.1.2.3.1",
"MPLS-VPN-MIB::mplsVpnVrfRouteTargetIndex": "1.3.6.1.3.118.1.2.3.1.2",
"MPLS-VPN-MIB::mplsVpnVrfRouteTargetType": "1.3.6.1.3.118.1.2.3.1.3",
"MPLS-VPN-MIB::mplsVpnVrfRouteTarget": "1.3.6.1.3.118.1.2.3.1.4",
"MPLS-VPN-MIB::mplsVpnVrfRouteTargetDescr": "1.3.6.1.3.118.1.2.3.1.5",
"MPLS-VPN-MIB::mplsVpnVrfRouteTargetRowStatus": "1.3.6.1.3.118.1.2.3.1.6",
"MPLS-VPN-MIB::mplsVpnVrfBgpNbrAddrTable": "1.3.6.1.3.118.1.2.4",
"MPLS-VPN-MIB::mplsVpnVrfBgpNbrAddrEntry": "1.3.6.1.3.118.1.2.4.1",
"MPLS-VPN-MIB::mplsVpnVrfBgpNbrIndex": "1.3.6.1.3.118.1.2.4.1.1",
"MPLS-VPN-MIB::mplsVpnVrfBgpNbrRole": "1.3.6.1.3.118.1.2.4.1.2",
"MPLS-VPN-MIB::mplsVpnVrfBgpNbrType": "1.3.6.1.3.118.1.2.4.1.3",
"MPLS-VPN-MIB::mplsVpnVrfBgpNbrAddr": "1.3.6.1.3.118.1.2.4.1.4",
"MPLS-VPN-MIB::mplsVpnVrfBgpNbrRowStatus": "1.3.6.1.3.118.1.2.4.1.5",
"MPLS-VPN-MIB::mplsVpnVrfBgpNbrStorageType": "1.3.6.1.3.118.1.2.4.1.6",
"MPLS-VPN-MIB::mplsVpnVrfBgpNbrPrefixTable": "1.3.6.1.3.118.1.2.5",
"MPLS-VPN-MIB::mplsVpnVrfBgpNbrPrefixEntry": "1.3.6.1.3.118.1.2.5.1",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrPeer": "1.3.6.1.3.118.1.2.5.1.1",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrIpAddrPrefixLen": "1.3.6.1.3.118.1.2.5.1.2",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrIpAddrPrefix": "1.3.6.1.3.118.1.2.5.1.3",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrOrigin": "1.3.6.1.3.118.1.2.5.1.4",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrASPathSegment": "1.3.6.1.3.118.1.2.5.1.5",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrNextHop": "1.3.6.1.3.118.1.2.5.1.6",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrMultiExitDisc": "1.3.6.1.3.118.1.2.5.1.7",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrLocalPref": "1.3.6.1.3.118.1.2.5.1.8",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrAtomicAggregate": "1.3.6.1.3.118.1.2.5.1.9",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrAggregatorAS": "1.3.6.1.3.118.1.2.5.1.10",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrAggregatorAddr": "1.3.6.1.3.118.1.2.5.1.11",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrCalcLocalPref": "1.3.6.1.3.118.1.2.5.1.12",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrBest": "1.3.6.1.3.118.1.2.5.1.13",
"MPLS-VPN-MIB::mplsVpnVrfBgpPathAttrUnknown": "1.3.6.1.3.118.1.2.5.1.14",
"MPLS-VPN-MIB::mplsVpnVrfSecTable": "1.3.6.1.3.118.1.2.6",
"MPLS-VPN-MIB::mplsVpnVrfSecEntry": "1.3.6.1.3.118.1.2.6.1",
"MPLS-VPN-MIB::mplsVpnVrfSecIllegalLabelViolations": "1.3.6.1.3.118.1.2.6.1.1",
"MPLS-VPN-MIB::mplsVpnVrfSecIllegalLabelRcvThresh": "1.3.6.1.3.118.1.2.6.1.2",
"MPLS-VPN-MIB::mplsVpnPerf": "1.3.6.1.3.118.1.3",
"MPLS-VPN-MIB::mplsVpnVrfPerfTable": "1.3.6.1.3.118.1.3.1",
"MPLS-VPN-MIB::mplsVpnVrfPerfEntry": "1.3.6.1.3.118.1.3.1.1",
"MPLS-VPN-MIB::mplsVpnVrfPerfRoutesAdded": "1.3.6.1.3.118.1.3.1.1.1",
"MPLS-VPN-MIB::mplsVpnVrfPerfRoutesDeleted": "1.3.6.1.3.118.1.3.1.1.2",
"MPLS-VPN-MIB::mplsVpnVrfPerfCurrNumRoutes": "1.3.6.1.3.118.1.3.1.1.3",
"MPLS-VPN-MIB::mplsVpnRoute": "1.3.6.1.3.118.1.4",
"MPLS-VPN-MIB::mplsVpnVrfRouteTable": "1.3.6.1.3.118.1.4.1",
"MPLS-VPN-MIB::mplsVpnVrfRouteEntry": "1.3.6.1.3.118.1.4.1.1",
"MPLS-VPN-MIB::mplsVpnVrfRouteDest": "1.3.6.1.3.118.1.4.1.1.1",
"MPLS-VPN-MIB::mplsVpnVrfRouteDestAddrType": "1.3.6.1.3.118.1.4.1.1.2",
"MPLS-VPN-MIB::mplsVpnVrfRouteMask": "1.3.6.1.3.118.1.4.1.1.3",
"MPLS-VPN-MIB::mplsVpnVrfRouteMaskAddrType": "1.3.6.1.3.118.1.4.1.1.4",
"MPLS-VPN-MIB::mplsVpnVrfRouteTos": "1.3.6.1.3.118.1.4.1.1.5",
"MPLS-VPN-MIB::mplsVpnVrfRouteNextHop": "1.3.6.1.3.118.1.4.1.1.6",
"MPLS-VPN-MIB::mplsVpnVrfRouteNextHopAddrType": "1.3.6.1.3.118.1.4.1.1.7",
"MPLS-VPN-MIB::mplsVpnVrfRouteIfIndex": "1.3.6.1.3.118.1.4.1.1.8",
"MPLS-VPN-MIB::mplsVpnVrfRouteType": "1.3.6.1.3.118.1.4.1.1.9",
"MPLS-VPN-MIB::mplsVpnVrfRouteProto": "1.3.6.1.3.118.1.4.1.1.10",
"MPLS-VPN-MIB::mplsVpnVrfRouteAge": "1.3.6.1.3.118.1.4.1.1.11",
"MPLS-VPN-MIB::mplsVpnVrfRouteInfo": "1.3.6.1.3.118.1.4.1.1.12",
"MPLS-VPN-MIB::mplsVpnVrfRouteNextHopAS": "1.3.6.1.3.118.1.4.1.1.13",
"MPLS-VPN-MIB::mplsVpnVrfRouteMetric1": "1.3.6.1.3.118.1.4.1.1.14",
"MPLS-VPN-MIB::mplsVpnVrfRouteMetric2": "1.3.6.1.3.118.1.4.1.1.15",
"MPLS-VPN-MIB::mplsVpnVrfRouteMetric3": "1.3.6.1.3.118.1.4.1.1.16",
"MPLS-VPN-MIB::mplsVpnVrfRouteMetric4": "1.3.6.1.3.118.1.4.1.1.17",
"MPLS-VPN-MIB::mplsVpnVrfRouteMetric5": "1.3.6.1.3.118.1.4.1.1.18",
"MPLS-VPN-MIB::mplsVpnVrfRouteRowStatus": "1.3.6.1.3.118.1.4.1.1.19",
"MPLS-VPN-MIB::mplsVpnVrfRouteStorageType": "1.3.6.1.3.118.1.4.1.1.20",
"MPLS-VPN-MIB::mplsVpnConformance": "1.3.6.1.3.118.3",
"MPLS-VPN-MIB::mplsVpnGroups": "1.3.6.1.3.118.3.1",
"MPLS-VPN-MIB::mplsVpnCompliances": "1.3.6.1.3.118.3.2"
}
......@@ -169,10 +169,10 @@ class Config(BaseConfig):
class customization(ConfigSection):
favicon_url = StringParameter(
default="/static/img/logo_24x24_deep_azure.png"
default="/ui/web/img/logo_24x24_deep_azure.png"
)
logo_url = StringParameter(
default="/static/img/logo_white.svg"
default="/ui/web/img/logo_white.svg"
)
logo_width = IntParameter(default=24)
logo_height = IntParameter(default=24)
......
......@@ -21,6 +21,7 @@ class DictionaryBase(type):
def __new__(mcs, name, bases, attrs):
cls = type.__new__(mcs, name, bases, attrs)
cls._fields = {}
cls._tsv_encoders = {}
cls._meta = DictionaryMeta(
name=getattr(cls.Meta, "name", None),
layout=getattr(cls.Meta, "layout", None),
......
......@@ -2,7 +2,7 @@
# ----------------------------------------------------------------------
# Clickhouse field types
# ----------------------------------------------------------------------
# Copyright (C) 2007-2016 The NOC Project
# Copyright (C) 2007-2018 The NOC Project
# See LICENSE for details
# ----------------------------------------------------------------------
......@@ -42,6 +42,7 @@ class BaseField(object):
"""
cls._fields[name] = self
cls._fields[name].name = name
cls._tsv_encoders[name] = lambda record: self.to_tsv(record.get(name))
def get_create_sql(self):
"""
......@@ -253,6 +254,18 @@ class NestedField(ArrayField):
next(self.FIELD_NUMBER)
def contribute_to_class(self, cls, name):
def get_tsv_encoder(fld, name, nested_name):
def get(record):
data = record.get(name, [])
r = [
"[",
",".join(fld.to_tsv_array(x.get(nested_name)) for x in data),
"]"
]
return "".join(r)
return get
n_attrs = self.field_type._fields_order
for n, nested_name in enumerate(n_attrs):
field = "%s.%s" % (name, nested_name)
......@@ -260,6 +273,7 @@ class NestedField(ArrayField):
cls._fields[field].name = field
cls._fields[field].field_number = self.field_number + n + 1
cls._fields[field].get_create_sql = partial(self.get_create_nested_sql, field, cls._fields[field].db_type)
cls._tsv_encoders[field] = get_tsv_encoder(cls._fields[field], name, nested_name)
def to_tsv(self, value):
out = []
......@@ -276,4 +290,4 @@ class NestedField(ArrayField):
@staticmethod
def get_create_nested_sql(name, type):
return "`%s` %s" % (name, type)
return "`%s` Array(%s)" % (name, type)
......@@ -27,6 +27,7 @@ class ModelBase(type):
def __new__(mcs, name, bases, attrs):
cls = type.__new__(mcs, name, bases, attrs)
cls._fields = {}
cls._tsv_encoders = {}
cls._meta = ModelMeta(
engine=getattr(cls.Meta, "engine", None),
db_table=getattr(cls.Meta, "db_table", None),
......@@ -40,6 +41,7 @@ class ModelBase(type):
cls._fields_order = sorted(
cls._fields, key=lambda x: cls._fields[x].field_number
)
cls._tsv_order = [cls._tsv_encoders[f] for f in cls._fields_order]
return cls
......@@ -107,9 +109,7 @@ class Model(six.with_metaclass(ModelBase)):
@classmethod
def to_tsv(cls, **kwargs):
return "\t".join(
cls._fields[f].to_tsv(kwargs.get(f)) for f in cls._fields_order
) + "\n"
return "\t".join(f(kwargs) for f in cls._tsv_order) + "\n"
@classmethod
def get_fingerprint(cls):
......
......@@ -260,6 +260,18 @@ class IP(object):
nb = list(new_base.iter_bits()) + [0] * (base.mask - new_base.mask) + pb
return self.from_bits(nb)
@staticmethod
def expand(addr):
"""
Expand and normalize address for reliable key lookup
:param addr:
:return:
"""
if ":" in addr:
return IPv6.expand(addr)
else:
return IPv4.expand(addr)
class IPv4(IP):
"""
......@@ -524,6 +536,15 @@ class IPv4(IP):
first = nfirst
return r
@staticmethod
def expand(addr):
"""
IPv6.expand compatibility stub
:param addr:
:return:
"""
return addr
class IPv6(IP):
"""
......@@ -868,6 +889,30 @@ class IPv6(IP):
r.reverse()
return ".".join(r)
@staticmethod
def expand(addr):
"""
Expand :: with appropriate amount of :0:
:param addr:
:return: Expanded address as string
"""
ni = addr.find("::")
if ni < 0:
return addr
lp = addr.count(":", 0, ni)
if ni > 0:
lp += 1
rp = addr.count(":", ni + 2)
if ni + 2 < len(addr):
rp += 1
np = lp + rp
xs = ":".join(["0"] * (8 - np))
if lp:
xs = ":%s" % xs
if rp:
xs = "%s:" % xs
return addr.replace("::", xs)
class PrefixDB(object):
"""
......
......@@ -29,7 +29,7 @@ import ujson
import threading
# NOC modules
from noc.config import config, CH_UNCLUSTERED, CH_REPLICATED, CH_SHARDED
from noc.core.debug import excepthook, error_report
from noc.core.debug import excepthook, error_report, ErrorReport
from .api import APIRequestHandler
from .doc import DocRequestHandler
from .mon import MonRequestHandler
......@@ -668,9 +668,11 @@ class Service(object):
self.logger.debug("Cannot decode JSON message: %s", e)
return True # Broken message
if isinstance(data, dict):
r = handler(message, **data)
with ErrorReport():
r = handler(message, **data)
else:
r = handler(message, data)
with ErrorReport():
r = handler(message, data)
if r:
self.perf_metrics[metric_processed] += 1
elif message.is_async():
......@@ -681,7 +683,8 @@ class Service(object):
def call_raw_handler(message):
self.perf_metrics[metric_in] += 1
r = handler(message, message.body)
with ErrorReport():
r = handler(message, message.body)
if r:
self.perf_metrics[metric_processed] += 1
elif message.is_async():
......
This diff is collapsed.
......@@ -7,6 +7,8 @@
# ---------------------------------------------------------------------
import re
import six
import numpy as np
from itertools import izip_longest
#
# Parse string containing table an return a list of table rows.
......@@ -500,3 +502,37 @@ rx_escape = re.compile("|".join(ESC_REPLACEMENTS))
def tsv_escape(text):
return rx_escape.sub(lambda match: ESC_REPLACEMENTS[re.escape(match.group(0))], text)
def parse_table_header(v):
"""
Parse header structured multiline format:
Config Current Agg Min Ld Share Flags Ld Share Agg Link Link Up
Master Master Control Active Algorithm Group Mbr State Transitions
:param v:
:return: Dictionary {start column position: header}
{10: 'Config Master', 18: 'Current Master', 26: 'Agg Control', 33: 'Min Active',
43: 'Ld Share Algorithm', 49: 'Flags ', 59: 'Ld Share Group', 63: 'Agg Mbr', 69: 'Link State'}
"""
head = []
empty_header = None
header = {}
for num, lines in enumerate(izip_longest(*v, fillvalue='-')):
#
if empty_header is None:
empty_header = (' ',) * len(lines)
head += [lines]
continue
if set(head[-1]) == {' '} and lines != empty_header:
head = np.array(head)
# Transpone list header string
header[num] = " ".join(["".join(s).strip() for s in head.transpose().tolist()])
header[num] = header[num].strip()
head = []
head += [lines]
else:
# last column
head = np.array(head)
header[num] = " ".join(["".join(s).strip(" -") for s in head.transpose().tolist()])
header[num] = header[num].strip()
return header
......@@ -167,7 +167,7 @@ class Script(BaseScript):
vpns[-1]["interfaces"] += interfaces
return vpns
def execute_snmp(self, **kwargs):
def execute_snmp_vrf_mib(self):
names = {x: y for y, x in six.iteritems(self.scripts.get_ifindexes())}
r = {}
for vrfindex, vrf_name, vrf_tag, vrf_status in self.snmp.get_tables(
......@@ -181,6 +181,7 @@ class Script(BaseScript):
"vpn_id": "",
"status": bool(vrf_status),
"name": vrf_name.strip(),
"rd": "0:0",
"interfaces": []
}
for vrfifindex, vrfif_name, vrfif_status in self.snmp.get_tables(
......@@ -189,3 +190,44 @@ class Script(BaseScript):
vrf_index, ifindex = vrfifindex.split(".")
r[int(vrf_index)]["interfaces"] += [names[int(ifindex)]]
return list(six.itervalues(r))
def execute_snmp_mpls_mib(self):
names = {x: y for y, x in six.iteritems(self.scripts.get_ifindexes())}
r = {}
for conf_id, vrf_descr, vrf_rd, vrf_oper in self.snmp.get_tables(
[mib["MPLS-VPN-MIB::mplsVpnVrfDescription"],
mib["MPLS-VPN-MIB::mplsVpnVrfRouteDistinguisher"],
mib["MPLS-VPN-MIB::mplsVpnVrfOperStatus"]]):
vrf_name = "".join([chr(int(x)) for x in conf_id.split(".")[1:]])
r[conf_id] = {
"type": "VRF",
"status": vrf_oper,
"vpn_id": None,
"name": vrf_name,
"rd": vrf_rd,
"rt_export": [],
"rt_import": [],
"description": vrf_descr,
"interfaces": []
}
for conf_id, row_status in self.snmp.get_tables(
[mib["MPLS-VPN-MIB::mplsVpnInterfaceConfRowStatus"]]):
conf_id, ifindex = conf_id.rsplit(".", 1)
r[conf_id]["interfaces"] += [names[int(ifindex)]]
for conf_id, vrf_rt, vrf_rt_decr in self.snmp.get_tables([
mib["MPLS-VPN-MIB::mplsVpnVrfRouteTarget"],
mib["MPLS-VPN-MIB::mplsVpnVrfRouteTargetDescr"]
]):
# rt_type: import(1), export(2), both(3)
conf_id, rt_index, rt_type = conf_id.rsplit(".", 2)
if rt_type in {"2", "3"}:
r[conf_id]["rt_export"] += [vrf_rt]
if rt_type in {"1", "3"}:
r[conf_id]["rt_import"] += [vrf_rt]
return list(six.itervalues(r))
def execute_snmp(self, **kwargs):
r = self.execute_snmp_mpls_mib()
if r:
return r
return self.execute_snmp_vrf_mib()
......@@ -20,14 +20,15 @@ class Script(BaseScript):
requires = []
MAX_GETNEXT_RETIRES = 0
INTERFACE_NAME_OID = "IF-MIB::ifDescr"
def get_getnext_retires(self):
return self.MAX_GETNEXT_RETIRES
def execute_snmp(self):
def execute_snmp(self, name_oid=INTERFACE_NAME_OID):
r = {}
unknown_interfaces = []
for oid, name in self.snmp.getnext(mib["IF-MIB::ifDescr"],
for oid, name in self.snmp.getnext(mib[name_oid],
max_retries=self.get_getnext_retires()):
try:
v = self.profile.convert_interface_name(name)
......
......@@ -2,12 +2,13 @@
# ---------------------------------------------------------------------
# Generic.get_interfaces
# ---------------------------------------------------------------------
# Copyright (C) 2007-2016 The NOC Project
# Copyright (C) 2007-2018 The NOC Project
# See LICENSE for details
# ---------------------------------------------------------------------
# Python modules
from collections import defaultdict
import time
# NOC modules
from noc.core.script.base import BaseScript
from noc.sa.interfaces.igetinterfaces import IGetInterfaces
......@@ -26,6 +27,8 @@ class Script(BaseScript):
MAX_GETNEXT_RETIRES = 0
BULK = None
INTERFACE_TYPES = {
1: "other",
6: "physical", # ethernetCsmacd
......@@ -47,6 +50,13 @@ class Script(BaseScript):
def get_getnext_retires(self):
return self.MAX_GETNEXT_RETIRES
# if ascii or rus text in description
def convert_description(self, desc):
return unicode(desc, "utf8", "replace").encode("utf8")
def get_bulk(self):
return self.BULK
def get_ifindexes(self):
r = {}
unknown_interfaces = []
......@@ -78,7 +88,8 @@ class Script(BaseScript):
oid = mib[oid]
for oid, v in self.snmp.getnext(oid,
max_repetitions=self.get_max_repetitions(),
max_retries=self.get_getnext_retires()):
max_retries=self.get_getnext_retires(),
bulk=self.get_bulk):
yield int(oid.rsplit(".", 1)[-1]) if transform else oid, v
def apply_table(self, r, mib, name, f=None):
......@@ -116,8 +127,8 @@ class Script(BaseScript):
# v = self.scripts.get_interface_status_ex()