wiki:ApiSnmpset

Version 1 (modified by alx, 2 years ago) ( diff )

--

Команда 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"
  }
}

См. также

команда snmpget

Note: See TracWiki for help on using the wiki.