Команда snmpset
Назначение команды
Команда snmpset
служит для запроса записи значений переменных в платы блока MC04-DSL-3U.
Ключи запроса
Ключ | Тип значения | обязательный | Назначение |
cmd | строка | да | "snmpset" - имя команды |
varlist | объект | да | набор пар "OID"-"значение" |
Команде snmpset
требуется параметр varlist
, значением которого является объект, содержащий набор пар "OID"-"значение". Ключами объекта являются OID переменных, в которые требуется запись, значением - записываемое значение. Записываемое значение может быть числом, строкой или массивом байт. При обращении к переменной платы первый элемент OID должен быть равен 4, второй элемент - номеру слота. Элементы OID начиная с третьего являются идентификатором переменной внутри платы. OID должен завершаться элементом 0.
Если записываемая переменная имеет тип "число", записываемое значение должно быть числом. Пример записи такой переменной: {"cmd":"snmpset","varlist":{".4.3.9.0":16}}
- переменной .4.3.9.0
присваивается значение 16.
Если записываемая переменная имеет тип "строка", записываемое значение может иметь тип "строка" или массив чисел со значениями от 0 до 255. В последнем случае каждый элемент массива является значением байта записываемой строки. Два следующих запроса эквивалентны:
{"cmd":"snmpset","varlist":{".4.3.5.0":"ABC"}}
,
{"cmd":"snmpset","varlist":{".4.3.5.0":[65,66,67]}}
-
переменной .4.3.5.0
присваивается последовательность из 3 байт со значениями 65, 66, 67.
Права доступа
В общем случае для выполнения команды snmpset
требуется право изменения конфигурации блока. Однако для записи некоторых значений в некоторые переменные некоторых плат могут требоваться другие права. Например для записи значений от 1 до 4 в переменную .6.0
плат SM-01, SM-02 и SM-03 требуется право записи команд в платы SM (право изменения конфигурации блока при этом не требуется).
Возвращаемые данные
В случае успешного выполнения команда snmpset
возвращает ключ result
, значением которого является объект, содержащий результаты записи переменных. Ключами объекта result
являются OID переменных, которые были переданы в объекте varlist
запроса. Значениями являются результаты записи. Результат записи переменной может принимать одно из следующих значений:
значение | описание |
"OK" | Запись переменной выполнена успешно. |
"Not found" | Запрошенная переменная отсутствует (неверный OID) |
"Wrong type" | Записываемое значение не соответствует типу переменной (попытка записи строки или массива байт в переменную типа "число" или наоборот) |
"Access denied" | Пользователь не имеет права записи в эту переменную |
"Read only" | Запрошенная переменная имеет тип "только для чтения" |
"Timeout" | Плата, которая содержит переменную, не ответила на запрос (время ожидания ответа истекло) |
"Error" | Плата, содержащая запрошенную переменную, вернула ошибку. |
В случае успешной записи результат имеет значение "OK". Обратите внимание, что значение "OK" означает только то, что переменная с указанным OID существует, право записи в нее имеется, тип записываемого значения соответствует типу переменной, запрос записи был получен и успешно обработан соответствующей платой блока. Результат "OK" не означает, что записанное значение корректно с точки зрения семантики конкретной переменной. Например при записи в регистр команд платы несуществующего кода команды будет возвращен результат "OK", однако никакой команды платой выполнено не будет.
Примеры запросов и ответов:
{"cmd":"snmpset","varlist":{".4.3.5.0":"ABC"}}
,
{ "cmd":"snmpset", "result": { ".4.3.5.0": "OK" } }
{"cmd":"snmpset","varlist":{".4.3.7.3.0":234}}
,
{ "cmd":"snmpset", "result": { ".4.3.7.3.0": "Not found" } }
{"cmd":"snmpset","varlist":{".4.3.5.0":[65,66,67], ".4.3.6.0":1}}
,
{ "cmd":"snmpset", "result": { ".4.3.5.0": "OK", ".4.3.6.0": "Access denied" } }