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