Serj Kalichev 1 year ago
parent
commit
887bc90f7a
1 changed files with 127 additions and 3 deletions
  1. 127 3
      docs/klish-plugin-sysrepo.ru.md

+ 127 - 3
docs/klish-plugin-sysrepo.ru.md

@@ -16,6 +16,8 @@ klish-plugin-sysrepo, похож на подход, применяемый в м
 
 Схема конфигурация описана YANG файлами, а доступ и редактирование элементов
 конфигурации осуществляется с помощью специальных команд, доступных из klish.
+Всю информацию об используемой YANG схеме klish-plugin-sysrepo получает из
+Sysrepo автоматически.
 
 Проект содержит файл `xml/sysrepo.xml`, который, будучи добавленным к файлам
 конфигурации klish, объявляет новый `VIEW` с именем "sysrepo". Этот `VIEW`
@@ -24,9 +26,6 @@ klish-plugin-sysrepo, похож на подход, применяемый в м
 библиотеки [`libyang`](#https://github.com/CESNET/libyang). Проекты Sysrepo,
 libyang и klish требуются для сборки и работы модуля klish-plugin-sysrepo.
 
-Далее будут описаны команды работы с конфигурацией, объявленные в
-`xml/sysrepo.xml`.
-
 
 ## Хранилище конфигурации
 
@@ -122,6 +121,8 @@ KPath до поля комментария для интерфейса "eth1" б
 # set test iface eth0 type ethernet comment "Comment with space"
 ```
 
+В одной строке задается значение типа интерфейса и комментарий. Тут, собственно,
+путь прерывается значениями полей.
 
 
 ## Команды конфигурирования
@@ -129,7 +130,57 @@ KPath до поля комментария для интерфейса "eth1" б
 
 ### Команда `set`
 
+Команда `set` позволяет установить значение элемента конфигурации.
+
+```
+# set <KPath> <value>
+```
+
+Чтобы выбрать какому именно элементу следует присвоить значение, указывается
+[путь KPath](#путь-kpath) до этого элемента а затем само значение. Если значение
+содержит пробелы, то должно заключаться в кавычки.
+
+Здесь элементу, имеющему KPath `test iface eth0 type` присваивается значение
+`ethernet`:
+
+```
+# set test iface eth0 type ethernet
+```
+
+Команда `set` может присвоить значения сразу нескольким элементам конфигурации.
+Читайте про "однострочники" в разделе ["Путь KPath"](#путь-kpath). Пример
+однострочника:
+
+```
+# set test iface eth0 type ethernet comment "Comment with space"
+```
+
+При указании пути KPath команде `set` не обязательно, чтобы все компоненты пути
+уже существовали. Команды из приведенных примеров будут работать даже если
+интерфейс "eth0" еще не был создан в конфигурации. Недостающие компоненты пути
+будут созданы автоматически.
+
+
 ### Команда `del`
+
+Команда `del` удаляет значение элемента, либо целую ветку конфигурации.
+
+```
+# del <KPath>
+```
+
+Например можно удалить комментарий для интрерфейса:
+
+```
+# del test iface eth0 comment
+```
+
+А можно удалить все настройки для интерфейса "eth0":
+
+```
+# del test iface eth0
+```
+
 ### Команда `edit`
 ### Команда `top`
 ### Команда `up`
@@ -152,15 +203,88 @@ KPath до поля комментария для интерфейса "eth1" б
 
 ### Настройка `JuniperLikeShow`
 
+Поле может принимать значения `y` и `n`. В случае, если задано `y`, то команды,
+показывающие конфигурацию, отображают ее в виде похожем на то, как конфиг
+выглядит в системах Juniper. С фигурными скобками, выделяющими секции и символом
+`;` в конце строк с "листьями" (узлы `leaf`).
+
+```
+test {
+    iface eth0 {
+        comment "Test desc";
+        type ethernet;
+    }
+}
+```
+
+Если задано значение `n`, то конфигурация будет отображаться в более кратком и
+простом виде. Структура секций помечается отступами.
+
+```
+test
+    iface eth0
+        comment "Test desc"
+        type ethernet
+```
+
 
 ### Настройка `FirstKeyWithStatement`
 
+У списков (узел `list`) может быть не один ключ, для идентификации нужного
+элемента, а сразу несколько. Данное поле настройки относится только к первому
+ключу списка. Поле может принимать значения `y` или `n`. Если задано значение
+`y`, то при указании KPath или отображении конфигурации, перед значением ключа,
+будет указываться имя элемента.
+
+Например оператор устанавливает значение элемента `type` для интерфейса:
+
+```
+# set test iface name eth0 type ethernet
+```
+
+В KPath появился элемент `name`, который показывает название (а не только
+значение) ключевого элемента. Та же самая конструкция, если
+`FirstKeyWithStatement = n` будет выглядеть так:
+
+```
+# set test iface eth0 type ethernet
+```
+
 
 ### Настройка `MultiKeysWithStatement`
 
+Настройка аналогична полю `FirstKeyWithStatement`, только относится ко всем
+ключевым элементам списка кроме первого.
+
+Предположим, что ключами списка "интерфейсы" являются сразу и поле `name` и поле
+`type`. Еще предположим что `FirstKeyWithStatement = n`. Команда установки
+"комментария" для интерфейса будет выглядеть следующим образом, если
+`MultiKeysWithStatement = y`:
+
+```
+# set test iface eth0 type ethernet comment "Comment"
+```
+
+Если `MultiKeysWithStatement = n` то следующим образом:
+
+```
+# set test iface eth0 ethernet comment "Comment"
+```
+
 
 ### Настройка `Colorize`
 
+Поле может принимать значения `y` и `n`. В случае, если задано `y`, то при
+отображении конфигурации или изменений в конфигурации, характерные элементы
+будут выделяться цветом.
+
+> Сейчас цветовое выделение реализовано только в команде `diff`. Новые элементы
+> выделяются зеленым, удаленные - красным, а те, что изменили свое значение -
+> желтым.
+
+Некоторые терминалы, в основном устаревшие, могут не поддерживать цвета. Поэтому
+в каких то случаях может быть полезно отключить настройку `Colorize`.
+
 
 ### Пример настройки модуля