Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
zaum-kurs-2013.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
654.85 Кб
Скачать

2.1Встановлення

TwistedSNMP поширюється у вигляді пакетів Python Distutils. Ви можете встановити розпакувавши дистрибутив і запустити:

setup.py install

Вам знадобиться і Twisted і PySNMP 3.x або встановлений PySNMP-SE. PySNMP-SE пакет дозволяє більш швидке сканування, але повертає кортеж на основі ідентифікаторів. PySNMP-SE рекомендується для використання для всіх нових TwistedSNMP розробок.

2.2Використання

TwistedSNMP призначений для забезпечення інтерфейсу API для роботи з віддаленим SNMP агентами в припущенні, що код буде використовуватися на стороні менеджера додатків. На даний момент, він не підтримує Trap обігу.

Для операцій на стороні менеджера, ми можемо використовувати функції порту в модулі snmpprotocol для створення нового об'єкта порту з прикріпленим об'єктом SNMPProtocol.При цьому, ми можемо створити будь-яку кількість об'єктів AgentProxy, які забезпечують API,що ми використовуємо для запитів SNMP-агентів.

port = snmpprotocol.port() proxy = agentproxy.AgentProxy( ipAddress, 161, community = sys.argv[2], snmpVersion = 'v2', protocol = port.protocol, allowCache = True,

Як тільки ми отримаємо AgentProxy, у нас є три основні точки входу. Перша "get", яка витягає окремі значення OID. Ви можете побачити повний приклад використання в simpleget.py :

df = proxy.get( oids, timeout=.25, retryCount=5)

відкладений об'єкт, що повертається методом Get буде спрацьовувати зі словником відображення {OID: значення} для кожного OID в ідентифікаторі. Ідентифікатори, які не були присутні на агенті не повернуть None. Якщо Агент не вертає значення або повертає помилку, то буде спрацьовувати відкладений errback ланцюг з поверненням помилки.

Друга точка входу є "GetTable", яка витягує всі суб-ідентифікатори для кожного OID в списку

приклад використання в simplegettable.py :

df = proxy.getTable(oids, timeout=.25, retryCount=5)

відкладений об'єкт, що повертається методом GetTable буде спрацьовувати зі словником відображення {rootOID: {OID: значення}} для кожного rootOID в ідентифікаторах rootOIDs, які не були присутні на агенті. Якщо Агент не вертає значення або повертає помилку, то буде спрацьовувати відкладений errback ланцюг з поверненням помилки.

Третя точка входу "set", яка має вигляд пари {OID: значення}  і додавання значень до агента. Приклад використання в simpleset.py :

df = proxy.set(oidSet, timeout=.25, retryCount=5)

На даний момент значення, що повертається для відкладеного об'єкта є лише SNMP повідомлення, повернутого з агента.

2.3Структура

 __init__ – TwistedSNMP: SNMP протокол для реалізації TwistedMatrix

agent – логіка для SNMP агента (Server) на стороні реалізації 

agentprotocol – протокол реалізації API на стороні агента / менеджера

agentproxy – для запиту агента через SNMP Protocol настороні клієнта / менеджера

bisectoidstore – у пам'яті OIDStore базується на стандартному модулі

bsdoidstore –BSDDBBTree на основі OID зберігання  

errors – помилки, характерні для TwistedSNMP 

logs – можливість журналізування TwistedSNMP

massretriever – утиліта-механізм вилучення OIDs / таблиці з великого числа агентів 

netsnmpagentproxy oidstore – абстрактний інтерфейс для зберігання об'єктів OID 

oidstub – модуль для збільшення швидкості реалізації  кортежу OID

pysnmpproto – створення одного робочого місця для імпорту v2c таv1 протоколів 

setup – налаштування twistedsnmp з використанням Distutils 

snmpprotocol –протокол SNMP для Twisted

tableretriever – допоміжний об'єкт для об'єкта AgentProxy 

test  (пакет) – тестовий набір для TwistedSNMP проекту 

twinetables – перетворення індексованих множин в табличний

utilities  (пакет) – утиліта-скрипт для twistedsnmp 

2.3.1twistedsnmp.agent

Логіка для SNMP   на стороні агента (Server) реалізацій

Модулі

twistedsnmp.datatypes  twisted.internet.defer

pysnmp.proto.error  twistedsnmp.errors

pysnmp.asn1.oid  pysnmp.proto.v1

pysnmp.proto.v2c  weakref

Класи 

Клас TrapHandler(object)

Реєстрація даної пастка для даного менеджера

Методи:

__init__ (self, managerIP, community='public', version='v2c', genericType=None, specificType=None)

Ініціалізація реєстрації при заданих параметрах 

managerIP – (IP, порт), адреса, за якою відправляти повідомлення  

community – спільноти, використовувані для повідомлень

GenericType – основні специфікації типу для погодження повідомлень 

specificType – незначні специфікації типу для погодження повідомлень

send(self, agent, genericType=6, specificType=0, pdus=None)

Враховуючи агента, відправити повідомлення для наших станцій управління

Дані та інші атрибути:

__dict__ = <dictproxy Object>словник для змінних екземпляра (якщо вони визначені)

__weakref__ = <attribute'__weakref__' із'TrapHandler' objects>

список слабких посилань на  об'єкт  (якщо вони визначені)

Клас Agent( object )

Реалізація логіки для SNMP агента  реалізації. 

Цей базовий клас призначений для взаємодії з об'єктами забезпечення OID інтерфейсу. Його основною метою є реалізація механізмів управління ітераціям і для запитів цього інтерфейсу.

Методи:

__init__ (self, dataStore, protocol=None)

Ініціалізація MockAgent зісписком OID

deregisterTrap (self, managerIP, genericType=None, specificType=None)

Скасувати реєстрацію даного managerIP з даної пастки  

GenericType – якщо немає, дереєстрація з усіх універсальних типів  

specificType – якщо немає, дереєстрація від всіх конкретних типів

findTrapHandlers(self, genericType=None, specificType=None)

Задання шляхів для обробників для заданих типів

get(self, request, address, implementation)

Отримати OID для запиту і повернути відповідь 

request – аналізується (тобто  об'єкт-форма) GET запит 

address – (IP, порт) інтернет адреса, з якої було отримано запит.

Implementation – впровадження модуля для запиту,тобто v2c або v1 модуль посилає відповідь клієнту 

GetNext getNext(self, request, address, implementation)

Відповідь отримати наступний запит

Request – аналізується (тобто  об'єкт -форма) GETNEX запит 

Address – (IP, порт) Інтернет-адреса, з якої було отримано запит. 

Implementation – впровадження модуля для запиту, тобто v2c або v1 модуль посилає відповідь клієнту.

getNextOIDs(self, oids)

Отримати наступний даний набір OID, елементи ідентифікатори - послідовності OID, з якого витягується наступний OID, повертає список OID 

getOIDs (self, OID)

Отримати даний набір ідентифікаторів OID – послідовність ідентифікаторів для отримання значення пар списоку OID

getSysObjectId (self)

Отримати у нашій системі ідентифікатор об'єкта пастки

GetTable (self, request, address, implementation)

Відповісти на всі(V2) отримані запити 

Request – оброблений (тобто об'єкт -форма) GETBULK запит 

Address – (IP адреса, порт) Інтернет адресу, з якої був отриманий запит

implementation – впровадження модуля для запиту ,тобто v1 v2c або модуль посилає відповідь клієнту, як побічний ефект повертає відправлену відповідь Get запиту, яка складається з двох елементів, набір неповторюваних Get-Next ідентифікаторів (зазвичай 0), і набір повторюваних ідентифікаторів. До зазначеної кількості впорядкованих елементів, починаючи з заданого ідентифікатора повертаються на кожний з основних елементів, з урізанням всього комплексу відбуваються якщо всі таблиці вичерпані (досягають кінця таблиці OID), в іншому випадку буде включати наступні значення таблиці.

   

getTableOIDs (self, nonRepeating=(), repeating=(), maxRepetitions=255)

Отримати неповторювані і повторювані OID значення 

nonrepeating – послідовність OIDs для неповторюваного пошуку 

repeating – послідовність OIDs для повторення пошуку 

maxRepetitions – кількість повторень 

registerTrap (Self, trapHandler)

Реєстрація даного менеджера для прив’язки до даної пастки 

ключ (GenericType, specificType) використовуватиметься для відправки пастки  повідомлення для тих керівників, які зареєстровані тут  

sendTrap(self, genericType=6, specificType=0, pdus=None)

Надіслати дану пастку для всіх зареєстрованих спостерігачів

set(self, request, address, implementation)

Встановити OIDs як задано за запитом 

Request – оброблений (тобто  об'єкт -форма) SETзапиту 

Address – (IP адреса, порт) інтернет адреса, з якоїбуло отримано запит. 

Implementation – впровадження модуля для запиту,тобто для v1 або v2c модуля 

setOIDs (Self, variables)

Встановлює OID значення змінних в нашому сховищі даних

setProtocol (Self, protocol)

Встановлює протокол для агента  об'єкта

Дані та інші атрибути:

__dict__ = <dictproxy Object>

Словник для змінних екземпляра (якщо вони визначені)

__weakref__ = <attribute'__weakref__' із'Agent' objects>

Список слабких посилань на  об'єкт  (якщо вони визначені)

Дані

      

badValue = 3 generators = _Feature((2, 2, 0, 'alpha', 1), (2, 3, 0, 'final', 0), 4096) noError = 0 noSuchName = 2 reactor = <twisted.internet.selectreactor.SelectReactor instance> tooBig = 1

2.3.2twistedsnmp.agentprotocol

Реалізація протоколу для агента / менеджера на стороні API Модулі

pysnmp.asn1.error  twisted.internet.defer

pysnmp.proto.error  twisted.internet.protocol

pysnmp.error  pysnmp.proto.v1

pysnmp.proto.v2c

  Класи

       Клас AgentProtocol ( ConnectedDatagramProtocol )

Базовий клас для SNMP протоколу дейтаграм об'єкта AgentProtocol, який відповідає за обробку вхідних датаграм (рядки) та їх перетворення в PySNMP повідомлення.Він також відповідає за відправку повідомлень від агента назад через мережу. Крім того, він надає кілька методів.

Методи:

__init__(self, interface=None, port=161, community='public', snmpVersion='v2', agent=None)

Ініціалізація об'єкту SNMPProtocol 

Interface – інтерфейс (IP), по якому зв'язуються 

Port – порт для підключення

Community – метод доступу, який використовується для SNMP

snmpVersion – '1 'або '2', вказує на підтримувану версію

datagramReceived(self, datagram, address)

Процес для отримання дейтаграм

Перетворює повідомлення в pysnmp запит об'єкта, а потім відправляє його у відповідний обробник (і) на основі запитуваного OID, збирає результати і повертає їх у об'єкт відповіді    

requestType(self, request)

Отримати запит типу із запиту

send(self, response, address)

Відправити запит (рядки) до мережі

setAgent(self, agent)

Встановити агент реалізації цього протоколу

verifyIdentity(self, request, address)

Перевірка, що адреса і повідомлення-спільноти дійсні 

Дані:

agent = None

Методи, успадковані від ConnectedDatagramProtocol:

connectionFailed(self, failure)

Викликається при невдалому підключенні. Зазвичай це відбувається через помилку пошуку DNS. 

Методи, успадковані від DatagramProtocol:

ConnectionRefused (self)

Викликається через помилки запису в режимі з'єднанні.

Методи, успадкованівід AbstractDatagramProtocol:

__getstate__ (self)

doStart (self)

Перевіряє чи startProtocol був викликаний.

doStop (self)

Перевіряє чи stopProtocol був викликаний.   

makeConnection(self, transport)

Встановлює з'єднання з транспортом і сервером. Встановлює атрибут 'транспортний' для DatagramProtocol і викликає doStart (). 

startProtocol (self)

Викликається, коли транспорт підключений до даного протоколу, буде викликатися тільки один раз, навіть якщо кілька портів підключені.  

stopProtocol (self)

Викликається, коли транспортний відключений, буде викликатися тільки один раз, після того, як всі порти відключені.

Дані та інші атрибути успадкувані від AbstractDatagramProtocol:

noisy = True

numPorts = 0

transport = None

Дані

      

reactor = <twisted.internet.selectreactor.SelectReactor instance>

2.3.3twistedsnmp.bisectoidstore

У пам'яті  OIDStore  існує на основі стандартного модуля

Модулі

twistedsnmp.agent bisect

pysnmp.proto.error twistedsnmp.errors

pysnmp.asn1.oid twistedsnmp.oidstore

pysnmp.proto.v1 pysnmp.proto.v2c

  Класи

       Клас BisectOIDStore ( OIDStore )

   

У пам'яті  OIDStore  існує на основі стандартного модуля OID. Цей магазин призначений для використання в першу чергу в ситуаціях тестування, де невеликий набір OID повинен бути завантажений і протестований.  

Методи:

__init__ (Self, OIDs = None )

Ініціалізація зберігання з відповідними OIDs

firstOID (Self)

Заносить перший OID, пару значень, для зберігання 

Викликається OIDNameError якщо немає доступних пар  

getExactOID(self, base)

Отримати даний OID, (пара значень) для даної бази. Цей метод відповідає за реалізацію GET запиту.

nextOID (Self, base)

Отримати наступний OID, (пара значень)після даної базової OID. Цей метод відповідає за реалізацію GETNEXT, і GETBULK запитів.  

returnValue(self, value, oid)

Значення, що повертається, або value.calculateOIDValue (OID, самостійно)

SetValue (Self, OID value)

Встановлює даний OID, пару значень, повертаючи старе значення 

Методи, успадковані від OIDStore:

__iter__ (Self)

Створити об'єкт-ітератор для цього  OIDStore

close(self)

Закриває  OIDStore

update(self, valueSet)

Враховуючи ValueSet, завантажує дані значення в сховище 

ValueSet - набірOID: значення відображень в цих формах { rootOID : { oid : value }} 

validateSetValue(self, oid, value, request, address, implementation)

Підтвердити, що, враховуючи OID і значення може бути встановлено 

повертає 0 у випадку успіху і ErrorID у разі виникнення помилки 

Ця реалізація просто повертає 0 у всіх випадках

Дані та інші атрибути успадкували від OIDStore:

__dict__ = <dictproxy Object>

словник для змінних екземпляра (якщо вони визначені)

__weakref__ = <attribute'__weakref__' із'OIDStore' objects>

список слабких посилань наоб'єкт (якщо вони визначені)

  Дані

      

generators = _Feature((2, 2, 0, 'alpha', 1), (2, 3, 0, 'final', 0), 4096)

2.3.4twistedsnmp . bsdoidstore

BSDDB BTree на основі OID полиць для зберігання

  Модулі

      

bsddb twistedsnmp.errors twistedsnmp.oidstore

twistedsnmp.pysnmpproto shelve struct

sys traceback weakref

bsddb  twistedsnmp.errors  twistedsnmp.oidstore

twistedsnmp.pysnmpproto  weakref

  Класи

       Клас BSDOIDStore ( OIDStore )

   

OIDStore  реалізований з використанням BSDDB файлів 

Цей застосунок OID підходить для середніх OID таблиць, які вимагають збереження на Python сесій.

Методи:

__init__(self, filename, OIDs=None)

Ініціалізація сховища з відповідними OIDs

firstOID (self)

Отримати перший OID, значення пари для зберігання 

Викликає OIDNameError, якщо пари значень недоступні  

getExactOID(self, base)

Отримати даний OID, пару значень,для даної бази. Цей метод несе відповідальність за виконання GET запиту

nextOID(self, base)

Отримати наступний OID, значення пари після даної базової OID. Цей метод відповідає за реалізацію GETNEXT, і GetBulk запитів.  

setValue(self, oid, value)

Встановлює даний OID, пару значень, повертаючи старі значення. Цей метод відповідає за реалізацію SET запит.

Класи і методи:

open(self, filename, mode='c') from type

Відкриття данного блоку, як BSDDBВТКЕЕ 

Методи, успадкованівід OIDStore:

__iter__ (self)

Створення ітератора  об'єкта  для цього  OIDStore

Close (self)

Закриває  OIDStore

update (self, ValueSet)

Враховуючи ValueSet, завантажитиданізначеннявсховище 

ValueSet - набір OID: значення відображення в цих формах { rootOID : { oid : value }}

OIDStore інстанція – ітеруєме як (ключ, значення) виробляє послідовність [(OID, значення )]

# значення також може бути словник або  OIDStore  (як показано вище)         

[словник,  OIDStore , ... ] # Тобто просто послідовність словників або сховищ    

validateSetValue(self, oid, value, request, address, implementation)

Перевіряє, що даний OID і значення може бути встановлено 

повертає 0 у випадку успіху, повертається errorID в разі невдачі 

Ця реалізація просто повертає 0 у всіх випадках

Дані та інші атрибути успадкували від OIDStore:

__dict__ = <dictproxy object>

словник для змінних екземпляра (якщо вони визначені)

__weakref__ = <attribute'__weakref__' із'OIDStore' objects>

Список слабкі посилання на  об'єкт  (якщо вони визначені)

  Клас Closer ( object)

   

Закриває  OIDStore   Цей  об'єкт  дозволяє уникнути метод __ del__, визначена на OIDStore об'єкті, що дозволяє уникнути потенційних витоків пам'яті.

 

Методи:

__call__ (self)

Закриває і очищує, щоб запобігти кількох викликів

__del__ (self)

Ручне видалення подібних  об'єктів

__init__ (self, client)

Ініціалізація подібних об'єктів

Дані та інші атрибути:

__dict__ = <dictproxy object>

словник для змінних екземпляра (якщо вони визначені)

__weakref__ = <attribute'__weakref__' із'Closer' objects>

Список слабкі посилання на  об'єкт  (якщо вони визначені)

Функції

oidToSortable (OID)

Перетворення у точковий формат OID для сортування рядків

set_location (self, key)

Виправлена​​версія _DBWithCursor.set_location для Python 2.3.x

sortableToOID (sortable)

Перетворення сортованого представлення у точково-строкове представлення

 

2.3.5twistedsnmp .datatype

Модулі

    

pysnmp.proto.rfc1902

pysnmp.proto.v1

pysnmp.proto.v2c

Класи

       Клас SimpleConverter

   

Простий об'єкт, який просто виконує (value.get ())  

Методи:

__call__ (self, value)

__init__ (self, target)

Функції

ipConvert (value)

Конвертор, який повертає v2c.IpAddress (value.get ())

nullMapping (value)

Конвертор, який просто повертає значення без змін

typeCoerce (value, implementation)

Coerce значення для реалізації версії 

Value – Python або PySNMP значення, яке буде представлено в якості значення

implementation – v1 або v2c модулів з ​​PySNMP 

2.3.6twistedsnmp.errors

Помилки, характерні для TwistedSNMP

Класи   

Клас OIDNameError ( NameError )

   

OID був оголошений, який не визначений у просторі імен

Методи:

__init__(self, oid, errorIndex=-1, errorCode=2, message='')

Ініціалізацію  OIDNameError

__repr__ (Self)

Представляти  OIDNameError  у вигляді рядка

Методи, успадковані від винятків:

__getitem__ (...)

Дані

      

badValue = 3 NoError = 0 noSuchName = 2 tooBig = 1

2.3.7twistedsnmp.logs

Можливість журналювання TwistedSNMP Модулі

cStringIO

logging

traceback

Функції

      

GetException (error)

Отримати відформатований виняток

 

Дані

      

agentprotocol_log = <logging.Logger instance> agentproxy_log = <logging.Logger instance> massretriever_log = <logging.Logger instance> protocol_log = <logging.Logger instance> tableretriever_log = <logging.Logger instance>

agentprotocol_log = <logging.Logger instance> agentproxy_log = <logging.Logger instance> massretriever_log = <logging.Logger instance> protocol_log = <logging.Logger instance> tableretriever_log = <logging.Logger instance>

   

2.3.8twistedsnmp .massretriever

Утиліта – механізм для вилучення ідентифікаторів / таблиці з великого числа агентів

Модулі

twistedsnmp.agentproxy  twisted.internet.defer

twisted.internet.error  twisted.python.failure

pysnmp.asn1.oid 

Класи

      

MassRetriever

  Клас MassRetriever (object)

   

Таблиця для отримання безлічі значень з декількох агентів 

Методи:

__call__(self, oids=(), tables=(), iterDelay=0.0050000000000000001, *arguments, **named)

oids – індивідуальні (отримати) ідентифікатори для кожного агента 

tables – багатозначні (GetTable) ідентифікатори для кожного агента 

** named – передається в проксі-об'єкт, добувається GetTable методом

__init__(self, proxies)

Ініціалізація ретривера з клієнтом AgentProxies 

proxies – послідовність властивостей запиту в партіях  

handleSingleError(self, err, oids, proxy)

err – повний вихід з ладу одного проксі-сервера

oids – OID, запитуваний проксі

proxy – проксі який буде використовуватись для повернення значення  

integrateSingleResult(self, value, proxy)

Інтеграція одного результату запиту агента в мега-результат 

Value – значення словника, як повернувся з отримаємо get/getTable         

Proxy – об'єкт проксі, який був використаний для отримання значення 

printStats (само)

Роздрукувати евристичну статистику для ретривера

returnFinal(self, dataList)

Коли всі проксі-сервери були завершені (успішно чи ні), то ми отримаєм зворотний виклик 

singleProxy(self, proxy, oids, tables)

Додати налаштування зворотного виклику для даного проксі-агента 

Proxy – проксі, щоб будуть запитані 

Oids – єдині ідентифікатори, які будуть опитані (get) 

Tables – багатозначні ідентифікатори, які будуть опитані (GetTable)

smallBatch(self, oids, tables, index=0, iterDelay=0.01)

Виконати на єдиному проксі ітеративно партіями 

Дані та інші атрибути:

__dict__ = <dictproxy object>

словник для змінних екземпляра (якщо вони визначені)

__weakref__ = <attribute'__weakref__' із'MassRetriever' objects>

Список слабких посиланьна об'єкт  (якщо вони визначені)

errorCount = 0

successCount = 0

Функції

      

proxies(protocol, addresses, proxyClass=<class 'twistedsnmp.v3.agentproxy.AgentProxy'>)

Враховуючи протокол і набір адрес, побудувати AgentProxies 

Protocol – тип SNMPProtocol 

Addresses – набори (ip,port,[community,[version]]) , які будуть  передані в AgentProxy конструктор. 

proxyClass – проксі-клас для використання в пошуку Дані

generators = _Feature((2, 2, 0, 'alpha', 1), (2, 3, 0, 'final', 0), 4096) nested_scopes = _Feature((2, 1, 0, 'beta', 1), (2, 2, 0, 'alpha', 0), 16) reactor = <twisted.internet.selectreactor.SelectReactor instance>

2.3.9twistedsnmp.oidstore

Абстрактний інтерфейс для зберігання об'єктів OID

Модулі

      

twistedsnmp.errors

Класи

      Клас OIDStore (object)

   

Інтерфейс для механізму зберігання  OID

Роль цього механізму для зберігання та вилучення OID: значення пар. Так як більшість поширених запитів включають пошук, а не конкретного OID, а наступний OID після даного OID, це необхідно для OID, щоб використовувати упорядкований формат зберігання з швидкими характеристиками пошуку, такі як ділення навпіл списку, або BSDDBBTree бази даних.

Методи:

__iter__ (self)

Створення ітератора  об'єкта  для цього  OIDStore

close (само)

Закриття  OIDStore

firstOID (self)

Отримати перший OID, значення пари для зберігання 

Викликає OIDNameError, якщо немає доступної пари  

getExactOID (self, base)

Отримати даний OID, пара значень для даної бази. Цей метод несе відповідальність за виконання GET запиту

nextOID (self, base)

Отримати наступний OID, значення пари після даної базової OID. Цей метод відповідає за реалізацію GETNEXT, і GetBulk запитів.

SetValue (self, OID value)

Встановлює даний OID, пара значень, повертаючи старі значення. Цей метод відповідає за реалізацію SET запиту.

update (self, ValueSet)

Враховуючи ValueSet, завантажити дані значення в сховище ValueSet - набір OID: значення відображені в цих формах {rootOID: {OID: значення}}

validateSetValue(self, oid, value, request, address, implementation)

Переконатися, що даний OID і значення може бути встановлено 

повертає 0 у випадку успіху, повертається errorID в разі невдачі 

Ця реалізація просто повертає 0 у всіх випадках

Дані та інші атрибути:

__dict__ = <dictproxy object>

словник для змінних екземпляра (якщо вони визначені)

__weakref__ = <attribute'__weakref__' із'OIDStore' objects>

Список слабких посиланьна  об'єкт  (якщо вони визначені)

Функції

      

dumbPrefix(key, oid)

Ця функція використовується для суб-класів, щоб зробити просту перевірку на OID спадкування.

Дані

generators = _Feature((2, 2, 0, 'alpha', 1), (2, 3, 0, 'final', 0), 4096)

2.3.10twistedsnmp . tableretriever

Помічник  об'єкта  для AgentProxy об'єкта

Модулі

twisted.internet.defer pysnmp.proto.error twisted.python.failure

pysnmp.asn1.oid twisted.internet.protocol socket

traceback pysnmp.proto.v1 pysnmp.proto.v2c

weakref

  Класи      

Клас TableRetriever ( object)

   

Об'єкт для отримання всієї таблиці від SNMP агента. Він також включає в себе код для SNMPBulkWalk, який є узагальненням SNMPWalk коду.  

Методи:

__call__ (self, recordCallback=None, startOIDs=None)

Збір результатів, викликає recordCallback для кожного запису

recordCallback – викликається для кожного виявленого нового запису

startOIDs – додаткові маркери OID будуть використовуватися в якості відправної точки

_init__(self, proxy, roots, includeStart=0, retryCount=4, timeout=2.0, maxRepetitions=128)

Ініціалізація ретривера 

proxy–AgentProxy, який ми хочемо використовувати для витягання даних 

roots – коріння OID

includeStart – чи потрібно включати починаючи OID  в наборі результатів, за замовчуванням, повертає OID *after* після кореневоїOID 

RetryCount – число повторних спроб

Timeout – початковий тайм-аут

maxRepetitions – максимум записів запиту з одного запиту  

areWeDone(self, response, roots, request, recordCallback=None)

Callback  який перевіряє чи виконалась спроба 

getTable(self, oids=None, roots=None, includeStart=0, retryCount=None, delay=None, firstCall=False)

Отримати всі суб-ідентифікатори від цих коренів 

recordCallback – викликається для кожного OID: пара значень отриманних recordCallback( root, oid, value ) 

includeStart – на даний момент, реалізована тільки для v1 протоколів, ігноруються v2c. 

FirstCall – перший виклик, дозволяє кешування

integrateNewRecord (self, oidValues, rootOIDs)

Інтеграція набору записів в таблицю 

Цей метод є досить спрощеним у своєму підході, він просто перевіряє для кожного значення в oidValues ​​якщо це суб або корінь в rootOIDs, і якщо це так, додає його в результуючий набір для цього кореня.  

scheduleIntegrate(self, oidValues, rootOIDs)

Розклад інтеграції oidValues​​в результатах цієї таблиці.Розбиває процес, так що ми можемо обробляти інші події , перш ніж робити (важкі) роботи  

tableTimeout(self, df, key, oids, roots, includeStart, retryCount, delay)

Таблиця тайм-аут реалізації запитів 

Дані та інші атрибути:

__dict__ = <dictproxy object>

Словник для змінних екземпляра (якщо вони визначені)

__weakref__ = <attribute'__weakref__' із'TableRetriever' objects>

Список слабких посиланьна  об'єкт  (якщо вони визначені)

bulk = 1

finished = 0

  Дані

USE_STRING_OIDS = False reactor = <twisted.internet.selectreactor.SelectReactor instance>

2.3.11twistedsnmp.twinetables

Перетворення індексованих множин в табличний зручний формат за замовчуванням getTable( [roots] ) повертає структуру словника так:

rootOID: {fullOID: значення}  

  Функції

woiterTwine (oidTable, OID)

Подвійний набір як набір словників з OID, як ключі  

twineTables (oidTable, OID)

Враховуючи oidTable з коренем OIDs, дати кожній версії елемента 

oidTable - вихідні дані, отримані від GetTable запиту 

2.3.12twistedsnmp.utilities

Модулі

__init__ - скріпти для twistedsnmp mirroragent – відображає керучого агента для локального файлу

2.3.13twistedsnmp.utilities.mirroragent

Відображає керучого агента для локального файлу

  Модулі

twistedsnmp.agentproxy

twistedsnmp.bsdoidstore

twistedsnmp.snmpprotocol

Функції

main(proxy, oidStore, OIDs=('.1.3',))

Виконує getTable на проксі для  OIDs і зберігає в  oidStore

openStore(oidStore)

 

Дані

reactor = <twisted.internet.selectreactor.SelectReactor instance>

 

2.3.14twistedsnmp.utilities.synchronous

  Модулі

     

twisted.internet.defer

Класи

        Клас DoUntilFinished(object)

Виконувати дії над об’єктом, до його завершення

Методи:

OnFailure(self, errorMessage)

OnSuccess(self, result)

OnTimeout(self)

Викликає помилку після закінчення тайм-ауту

__call__(self, timeout=None)

__init__(self, *defers)

Ініціалізує DoUntilFinished 

Дані і інші атрибути:

__dict__ = <dictproxy object>

__weakref__ = <attribute '__weakref__' of 'DoUntilFinished' objects>

finished = 0

result = None

success = 0

timeout = 0

Функції

doUntil(*defers)

Відкадений запуск

synchronous(timeout, callable, *arguments, **named)

Викликає викликані об’єкти

timeout – тайм-аут в секундах callable – визначає викликувані object  returns (success, result/error)

  Дані

reactor = <twisted.internet.selectreactor.SelectReactor instance>

3Yapsnmp

Yapsnmp є Python SNMP модулем на основі Net-SNMP (раніше відома як UCD-SNMP) бібліотеки. Він складається з низькорівневого інтерфейсу до бібліотеки, створеною за допомогою SWIG, і більш високого рівня Python модуля видаляючи всі складності роботи з SNMP.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]