| 1 | = Команда snmpset = |
| 2 | |
| 3 | == Назначение команды == |
| 4 | |
| 5 | Команда `snmpset` служит для запроса записи значений переменных в платы блока MC04-DSL-3U. |
| 6 | |
| 7 | == Ключи запроса == |
| 8 | |
| 9 | || '''Ключ''' || '''Тип значения''' || '''обязательный''' || '''Назначение''' || |
| 10 | || cmd || строка || да || "snmpset" - имя команды || |
| 11 | || varlist || объект || да || набор пар "OID"-"значение" || |
| 12 | |
| 13 | Команде `snmpset` требуется параметр `varlist`, значением которого является объект, содержащий набор пар "OID"-"значение". Ключами объекта являются OID переменных, в которые требуется запись, значением - записываемое значение. Записываемое значение может быть числом, строкой или массивом байт. При обращении к переменной платы первый элемент OID должен быть равен 4, второй элемент - номеру слота. Элементы OID начиная с третьего являются идентификатором переменной внутри платы. OID должен завершаться элементом 0. |
| 14 | |
| 15 | Если записываемая переменная имеет тип "число", записываемое значение должно быть числом. Пример записи такой переменной: `{"cmd":"snmpset","varlist":{".4.3.9.0":16}}` - переменной `.4.3.9.0` присваивается значение 16. |
| 16 | |
| 17 | Если записываемая переменная имеет тип "строка", записываемое значение может иметь тип "строка" или массив чисел со значениями от 0 до 255. В последнем случае каждый элемент массива является значением байта записываемой строки. Два следующих запроса эквивалентны: |
| 18 | `{"cmd":"snmpset","varlist":{".4.3.5.0":"ABC"}}`, |
| 19 | |
| 20 | `{"cmd":"snmpset","varlist":{".4.3.5.0":[65,66,67]}}` - |
| 21 | |
| 22 | переменной `.4.3.5.0` присваивается последовательность из 3 байт со значениями 65, 66, 67. |
| 23 | |
| 24 | == Права доступа == |
| 25 | |
| 26 | В общем случае для выполнения команды `snmpset` требуется право изменения конфигурации блока. Однако для записи некоторых значений в некоторые переменные некоторых плат могут требоваться другие права. Например для записи значений от 1 до 4 в переменную `.6.0` плат SM-01, SM-02 и SM-03 требуется право записи команд в платы SM (право изменения конфигурации блока при этом не требуется). |
| 27 | |
| 28 | == Возвращаемые данные == |
| 29 | |
| 30 | В случае успешного выполнения команда `snmpset` возвращает ключ `result`, значением которого является объект, содержащий результаты записи переменных. Ключами объекта `result` являются OID переменных, которые были переданы в объекте `varlist` запроса. Значениями являются результаты записи. Результат записи переменной может принимать одно из следующих значений: |
| 31 | |
| 32 | || '''значение''' || '''описание''' || |
| 33 | || "OK" || Запись переменной выполнена успешно. || |
| 34 | || "Not found" || Запрошенная переменная отсутствует (неверный OID) || |
| 35 | || "Wrong type" || Записываемое значение не соответствует типу переменной (попытка записи строки или массива байт в переменную типа "число" или наоборот) || |
| 36 | || "Access denied" || Пользователь не имеет права записи в эту переменную || |
| 37 | || "Read only" || Запрошенная переменная имеет тип "только для чтения" || |
| 38 | || "Timeout" || Плата, которая содержит переменную, не ответила на запрос (время ожидания ответа истекло) || |
| 39 | || "Error" || Плата, содержащая запрошенную переменную, вернула ошибку. || |
| 40 | |
| 41 | В случае успешной записи результат имеет значение "OK". Обратите внимание, что значение "OK" означает только то, что переменная с указанным OID существует, право записи в нее имеется, тип записываемого значения соответствует типу переменной, запрос записи был получен и успешно обработан соответствующей платой блока. Результат "OK" не означает, что записанное значение корректно с точки зрения семантики конкретной переменной. Например при записи в регистр команд платы несуществующего кода команды будет возвращен результат "OK", однако никакой команды платой выполнено не будет. |
| 42 | |
| 43 | === Примеры запросов и ответов: === |
| 44 | |
| 45 | `{"cmd":"snmpset","varlist":{".4.3.5.0":"ABC"}}`, |
| 46 | |
| 47 | {{{ |
| 48 | { |
| 49 | "cmd":"snmpset", |
| 50 | "result": { |
| 51 | ".4.3.5.0": "OK" |
| 52 | } |
| 53 | } |
| 54 | }}} |
| 55 | |
| 56 | `{"cmd":"snmpset","varlist":{".4.3.7.3.0":234}}`, |
| 57 | |
| 58 | {{{ |
| 59 | { |
| 60 | "cmd":"snmpset", |
| 61 | "result": { |
| 62 | ".4.3.7.3.0": "Not found" |
| 63 | } |
| 64 | } |
| 65 | }}} |
| 66 | |
| 67 | `{"cmd":"snmpset","varlist":{".4.3.5.0":[65,66,67], ".4.3.6.0":1}}`, |
| 68 | |
| 69 | {{{ |
| 70 | { |
| 71 | "cmd":"snmpset", |
| 72 | "result": { |
| 73 | ".4.3.5.0": "OK", |
| 74 | ".4.3.6.0": "Access denied" |
| 75 | } |
| 76 | } |
| 77 | }}} |
| 78 | |
| 79 | == См. также == |
| 80 | |
| 81 | [ApiSnmpget команда snmpget] |