Serj Kalichev 1 year ago
parent
commit
43189d9e06
1 changed files with 236 additions and 0 deletions
  1. 236 0
      docs/klish-plugin-sysrepo.ru.md

+ 236 - 0
docs/klish-plugin-sysrepo.ru.md

@@ -182,15 +182,251 @@ KPath до поля комментария для интерфейса "eth1" б
 ```
 
 ### Команда `edit`
+
+При входе в режим конфигурирования, пользователь находится в "корне" дерева
+конфигурации, т.е. в корневом узле схемы. И все пути KPath, которые он указывает
+при работе с конфигурацией, являются полными (абсолютными) путями от корня
+схемы до искомого элемента. Это не всегда удобно, если настраивается подсистема
+с высокой степенью вложенности. Поэтому предусмотрена команда `edit`, которая
+меняет текущее положение пользователя в дереве конфигурации.
+
+```
+# edit <KPath>
+```
+
+Перемещение пользователя по дереву конфигурации подобно перемещению по
+директориям в файловой системе. Текущий путь в дереве конфигурации отображается
+в строке, предшествующей приглашению пользователя, внутри квадратных скобок
+после слова "edit".
+
+```
+[edit]
+# edit test iface eth0
+[edit test iface eth0]
+#
+```
+
+После смены текущего пути, все указания KPath становятся относительными.
+Относительно текущего положения в дереве конфигурации. Например указания KPath в
+командах `set` и `del` будут относительными.
+
+```
+[edit]
+# edit test iface eth0
+[edit test iface eth0]
+# set type ethernet
+[edit test iface eth0]
+# set comment "Comment with space"
+[edit test iface eth0]
+# del comment
+```
+
+Команда `edit` позволяет менять текущий путь только в направлении углубления
+вложенности. Команды `top`, `up`, `exit` позволяют двигаться по дереву в
+противоположном направлении.
+
+Обратите внимание, что в команде `edit` нельзя указывать список (узел "list")
+без указания ключа одного из его элементов.
+
+
 ### Команда `top`
+
+Команда `top` меняет текущий путь пользователя в дереве конфигурации на
+корневой элемент. Если пользователь уже находился в корне дерева, то ничего не
+происходит.
+
+```
+[edit test iface eth0]
+# top
+[edit]
+# top
+[edit]
+#
+```
+
+
 ### Команда `up`
+
+Команда `up` меняет текущий путь пользователя в дереве конфигурации на один
+уровень вложенности вверх. Т.е. выходит из текущего пути на один уровень. Если
+пользователь уже находится в корневом элементе дерева, то ничего не происходит.
+
+```
+[edit test iface eth0]
+# up
+[edit test]
+# up
+[edit]
+# up
+[edit]
+#
+```
+
+
 ### Команда `exit`
+
+Команда `exit` аналогична команде `up` с тем отличием, что будучи выполнена в
+корневом элементе дерева, выходит из режима конфигурирования.
+
+```
+[edit test iface eth0]
+# exit
+[edit test]
+# exit
+[edit]
+# exit
+>
+```
+
+
 ### Команда `insert`
+
+В YANG схеме может быть определен список (узел "list" или "leaf-list") с
+параметром "ordered-by user". Это означает, что последовательность элементов
+списка имеет значение и регулируется пользователем. Команда `insert` позволяет
+перемещать элементы внутри такого списка.
+
+```
+# insert <from_kpath> <first/last/before/after> [to_list_key]
+```
+
+Прежде чем перемещать элемент внутри списка, его надо создать. Несуществующие
+элементы перемещать нельзя.
+
+Первым параметром команды `insert` указывается KPath до того элемента, который
+нужно переместить. Далее ключевым словом указывается режим перемещения:
+
+* `first` - переместить элемент в начало списка.
+* `last` - переместить элемент в конец списка.
+* `before` - разместить элемент непосредственно перед элементом, указанным далее.
+* `after` - разместить элемент непосредственно после элемента, указанного далее.
+
+Для режимов `before` и `after` третьим параметром указывается ключ того
+элемента, относительно которого выбирается позиция. Обратите внимание, что тут
+указывается не KPath целиком, а только лишь ключ.
+
+```
+[edit]
+# show
+acl acl1
+acl acl2
+acl acl3
+[edit]
+# insert acl acl3 before acl1
+[edit]
+# show
+acl acl3
+acl acl1
+acl acl2
+[edit]
+# insert acl acl2 first
+[edit]
+# show
+acl acl2
+acl acl3
+acl acl1
+```
+
+
 ### Команда `commit`
+
+Команда `commit` подтверждает изменение конфигурации и копирует содержимое
+хранилища конфигурации `candidate` в хранилище `running`. После успешного
+выполнения команды, конфигурация, которую редактировал пользователь, применится
+в системе и станет действующей. Если `candidate` конфигурация содержит ошибки,
+которые могут быть проверены YANG-схемой, то действующая конфигурация изменена
+не будет, а на экране появится сообщение об ошибке.
+
+При записи конфигурации в хранилище `running`, также конфигурация будет записана
+в хранилище `startup`, чтобы в будущем "пережить" перезагрузку системы.
+
+
 ### Команда `check`
+
+Команда `check` проверяет корректность текущей редактируемой конфигурации
+относительно YANG-схемы. Успешное выполнение этой команды означает, что команда
+`commit` может быть выполнена без ошибок.
+
+
 ### Команда `rollback`
+
+Команда `rollback` позволяет откатить все изменения при редактировании
+конфигурации. Редактируемая конфигурация `candidate` вернется к состоянию
+действующей конфигурации `running`.
+
+
 ### Команда `show`
+
+Команда `show` показывает текущее состояние редактируемой конфигурации.
+
+```
+# show [kpath]
+```
+
+Опциональный параметр принимает путь KPath. В случае если KPath задан, то на
+экран будет выводиться содержание только указанной секции. По умолчанию команда
+`show` использует текущий путь пользователя в дереве конфигурации.
+
+```
+[edit]
+# show
+test
+    iface eth0
+        comment "Test desc"
+        type ethernet
+acl acl2
+acl acl3
+acl acl1
+[edit]
+# show test
+iface eth0
+    comment "Test desc"
+    type ethernet
+```
+
+
 ### Команда `diff`
+
+Команда `diff` показывает разницу между редактируемой и действующей
+конфигурациями.
+
+```
+[edit]
+# show
+test
+    iface eth0
+        comment "Test desc"
+        type ethernet
+acl acl2
+acl acl3
+acl acl1
+#
+# <Тут изменения конфигурации>
+#
+[edit]
+# show
+test
+    iface eth0
+        comment "New comment"
+        type ethernet
+acl acl2
+acl acl1
+acl acl4
+## diff
+test
+    iface eth0
+=        comment "New comment"
+-acl acl3
++acl acl4
+```
+
+Вновь добавленные строки обозначаются символом `+` в начале строки и зеленым
+цветом (если включена подсветка). Удаленные строки обозначаются символом `-` в
+начале строки и красным цветом (если включена подсветка). Измененные строки
+обозначаются символом `=` в начале строки и желтым цветом (если включена
+подсветка).
+
+
 ### Команда `do`