Browse Source

Doc for DefaultKeys

Serj Kalichev 1 year ago
parent
commit
58b1b088ab
1 changed files with 70 additions and 0 deletions
  1. 70 0
      docs/klish-plugin-sysrepo.ru.md

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

@@ -535,6 +535,76 @@ test
 ```
 
 
+### Настройка `DefaultKeys`
+
+По стандарту YANG все ключи списка являются обязательными. Значения
+по умолчанию (директива `default`) для ключей игнорируются. Однако, если у списка
+много ключей, то может быть удобно некоторые из них опускать при вводе. Чтобы
+использовать такое поведение, нужно указать настройку `DefaultKeys = y`. Эта
+настройка действует совместно с YANG-расширением `klish:default`, определенным в
+файле `klish.yang`. Если в YANG файле с помощью расширения `klish:default`
+указано значение по умолчанию для ключа, то в случае, если администратор не ввел
+значение этого ключа явно, то ключу сопоставляется значение по умолчанию.
+
+Обратите внимание, что расширение не нарушает стандарт YANG, относительно того,
+что обязательно должны быть введены все ключи. Так как значения по умолчанию
+используются только на этапе формирования запроса, внутри плугина. YANG запрос
+содержит все ключи.
+
+> Если используется настройка `FirstKeyWithStatement = n`, и при этом первый
+> ключ имеет значение по умолчанию, то настройка перестает работать и ключ
+> должен быть введен с указанием имени ключа, как и все последующие ключи.
+
+> Настройка `DefaultKeys` игнорируется в случае, если `KeysWithStatements = n`.
+
+Пример YANG файла с использованием ключей по умолчанию:
+
+```
+...
+import klish { prefix "klish"; }
+...
+list list {
+  key "key1 key2 key3";
+  leaf key1 {
+    description "First key";
+    type string;
+    klish:default "def1";
+  }
+  leaf key2 {
+    description "Second key";
+    type string;
+    klish:default "def2";
+  }
+  leaf key3 {
+    description "Third key";
+    type string;
+  }
+  leaf el1 {
+    description "First el";
+    type string;
+    default "el1-def";
+  }
+  leaf el2 {
+    description "Second el";
+    type string;
+  }
+}
+```
+
+Администратор может ввести следующую команду, опустив ключи `key1` и `key2`,
+т.к. они имеют значения по умолчанию:
+
+```
+# set list key3 nnn el1 mmm
+# show
+...
+list key1 def1 key2 def2 key3 nnn {
+  el1 mmm
+}
+...
+```
+
+
 ### Настройка `HidePasswords`
 
 Если в конфигурации хранятся пароли или хэши паролей, то такую информацию