Browse Source

[2305] address review comments

updated documentation of bindctl chapter
fixed a stray space in module help output in bindctl
Jelte Jansen 12 years ago
parent
commit
56f0319afe
2 changed files with 66 additions and 35 deletions
  1. 64 34
      doc/guide/bind10-guide.xml
  2. 2 1
      src/bin/bindctl/moduleinfo.py

+ 64 - 34
doc/guide/bind10-guide.xml

@@ -1275,6 +1275,14 @@ TODO
       configuring BIND 10.
       configuring BIND 10.
     </para></note>
     </para></note>
 
 
+    <note><para>
+      <command>bindctl</command> has an internal command history, as
+      well as tab-completion for most of the commands and arguments.
+      However, these are only enabled if the python readline module
+      is available on the system. If not, neither of these
+      features will be supported.
+    </para></note>
+
     <para>
     <para>
       The <command>bindctl</command> tool provides an interactive
       The <command>bindctl</command> tool provides an interactive
       prompt for configuring, controlling, and querying the BIND 10
       prompt for configuring, controlling, and querying the BIND 10
@@ -1387,7 +1395,7 @@ Available module names:
 
 
         When run as a command to a module, it shows the commands that module supports:
         When run as a command to a module, it shows the commands that module supports:
         <screen><userinput>> Boss help</userinput>
         <screen><userinput>> Boss help</userinput>
-Module  Boss 	Master process 
+Module  Boss 	Master process
 Available commands:
 Available commands:
     help        Get help for module.
     help        Get help for module.
     shutdown    Shut down BIND 10
     shutdown    Shut down BIND 10
@@ -1437,7 +1445,7 @@ Parameters:
         <title>Configuration commands</title>
         <title>Configuration commands</title>
         Configuration commands are used to view and change the configuration
         Configuration commands are used to view and change the configuration
         of BIND 10 and its modules. Module configuration is only shown if
         of BIND 10 and its modules. Module configuration is only shown if
-        that module is running, but similar to modules, there are a number
+        that module is running, but similar to commands, there are a number
         of top-level configuration items that are always available (for
         of top-level configuration items that are always available (for
         instance tsig_keys and data_sources).
         instance tsig_keys and data_sources).
 
 
@@ -1450,7 +1458,8 @@ Parameters:
 
 
         When identifying items in configuration commands, the format is
         When identifying items in configuration commands, the format is
         <screen><userinput>Module/example/item</userinput></screen>
         <screen><userinput>Module/example/item</userinput></screen>
-        Sub-elements of names, lists and sets are separated with the '/'
+        Sub-elements of names, lists and sets (see <xref linkend=
+        "bindctl_configuration_data_types"/>) are separated with the '/'
         character, and list indices are identified with [&lt;index&gt;].
         character, and list indices are identified with [&lt;index&gt;].
         <screen><userinput>Module/example/list[2]/foo</userinput></screen>
         <screen><userinput>Module/example/list[2]/foo</userinput></screen>
 
 
@@ -1480,7 +1489,8 @@ Parameters:
             <term>add &lt;item name&gt; [value]</term>
             <term>add &lt;item name&gt; [value]</term>
             <listitem>
             <listitem>
               <simpara>
               <simpara>
-                Add an entry to configuration list or a named set.
+                Add an entry to configuration list or a named set (see <xref
+                linkend="bindctl_configuration_data_types"/>).
                 When adding to a list, the command has one optional
                 When adding to a list, the command has one optional
                 argument, a value to add to the list. The value must
                 argument, a value to add to the list. The value must
                 be in correct JSON and complete. When adding to a
                 be in correct JSON and complete. When adding to a
@@ -1499,7 +1509,7 @@ Parameters:
                 Remove an item from a configuration list or a named set.
                 Remove an item from a configuration list or a named set.
                 When removing an item for a list, either the index needs to
                 When removing an item for a list, either the index needs to
                 be specified, or the complete value of the element to remove
                 be specified, or the complete value of the element to remove
-                must be (in JSON format).
+                must be specified (in JSON format).
               </simpara>
               </simpara>
             </listitem>
             </listitem>
           </varlistentry>
           </varlistentry>
@@ -1571,7 +1581,7 @@ Parameters:
                 <term>integer</term>
                 <term>integer</term>
                 <listitem>
                 <listitem>
                     <simpara>
                     <simpara>
-                        A basic integer, can be set directly with <command>config set</command>, to any integer value.
+                        A basic integer; can be set directly with <command>config set</command>, to any integer value.
                     </simpara>
                     </simpara>
                 </listitem>
                 </listitem>
             </varlistentry>
             </varlistentry>
@@ -1579,7 +1589,7 @@ Parameters:
                 <term>real</term>
                 <term>real</term>
                 <listitem>
                 <listitem>
                     <simpara>
                     <simpara>
-                        A basic floating point number, can be set directly with <command>config set</command>, to any floating point value.
+                        A basic floating point number; can be set directly with <command>config set</command>, to any floating point value.
                     </simpara>
                     </simpara>
                 </listitem>
                 </listitem>
             </varlistentry>
             </varlistentry>
@@ -1603,7 +1613,7 @@ Parameters:
                 <term>null</term>
                 <term>null</term>
                 <listitem>
                 <listitem>
                     <simpara>
                     <simpara>
-                        This is a special type representing 'no value at all', usable in compound structures that have optional elements that are not set.
+                        This is a special type representing 'no value at all'; usable in compound structures that have optional elements that are not set.
                     </simpara>
                     </simpara>
                 </listitem>
                 </listitem>
             </varlistentry>
             </varlistentry>
@@ -1612,16 +1622,24 @@ Parameters:
                 <term>maps</term>
                 <term>maps</term>
                 <listitem>
                 <listitem>
                     <simpara>
                     <simpara>
-                        Maps are compound collections of other elements of
-                        any other type. They are not usually modified
-                        directly, but their elements are; Every top-level
-                        element for a module is a map containing the
-                        configuration values for that map, which can
+                        Maps are (pre-defined) compound collections of other
+                        elements of any other type. They are not usually
+                        modified directly, but their elements are; Every
+                        top-level element for a module is a map containing
+                        the configuration values for that map, which can
                         themselves be maps again. For instance, the Auth
                         themselves be maps again. For instance, the Auth
-                        module is a map containing the elements 'listen_on'
-                        (list) and 'tcp_recv_timeout' (integer). When
-                        changing one of its values, they can be modified
-                        directly with <command>config set Auth/tcp_recv_timeout 3000</command>.
+                        module configuration is a map containing the
+                        elements 'listen_on' (list) and 'tcp_recv_timeout'
+                        (integer). When changing one of its values, they can
+                        be modified directly with <command>config set
+                        Auth/tcp_recv_timeout 3000</command>.
+                    </simpara>
+                    <simpara>
+                        Some map entries are optional; If they are, and
+                        currently have a value, the value can be unset by
+                        using either <command>config unset &lt;item name&gt;
+                        </command> or <command>config set &lt;item name&gt;
+                        null</command>.
                     </simpara>
                     </simpara>
                     <simpara>
                     <simpara>
                         Maps *can* be modified as a whole, but using the
                         Maps *can* be modified as a whole, but using the
@@ -1685,13 +1703,40 @@ Parameters:
                         to maps.
                         to maps.
                     </simpara>
                     </simpara>
                     <simpara>
                     <simpara>
-                        For example, the Boss/components elements is a named set.
+                        For example, the Boss/components elements is a named
+                        set; adding, showing, and then removing an element
+                        can be done with the following three commands (note
+                        the '/'-character versus the space before
+                        'example_module'):
+                    </simpara>
+                    <simpara>
                         <command>config add Boss/components example_module</command>
                         <command>config add Boss/components example_module</command>
+                    </simpara>
+                    <simpara>
                         <command>config show Boss/components/example_module</command>
                         <command>config show Boss/components/example_module</command>
+                    </simpara>
+                    <simpara>
                         <command>config remove Boss/components example_module</command>
                         <command>config remove Boss/components example_module</command>
                     </simpara>
                     </simpara>
                 </listitem>
                 </listitem>
             </varlistentry>
             </varlistentry>
+            <varlistentry>
+                <term>any</term>
+                <listitem>
+                    <simpara>
+                        The 'any' type is a special type that can have any
+                        form. Apart from that it must consist of elements as
+                        decsribed in this chapter, there is no restriction
+                        on which element types are used. This type is used
+                        in places where different data formats could be
+                        used. Element modification commands depend on the
+                        actual type of the value. For instance, if the value
+                        of an 'any' element is a list, <command>config add
+                        </command> and <command>config remove</command> work
+                        as for other lists.
+                    </simpara>
+                </listitem>
+            </varlistentry>
         </variablelist>
         </variablelist>
       </section>
       </section>
     </section>
     </section>
@@ -1772,7 +1817,7 @@ config set /Boss/components/b10-zonemgr/kind dispensable
         <section id="bindctl_execute_notes">
         <section id="bindctl_execute_notes">
             <title>Notes on execute scripts</title>
             <title>Notes on execute scripts</title>
             Within scripts, you can add or remove modules with the normal
             Within scripts, you can add or remove modules with the normal
-            configuration commands for Boss/components. However; as module
+            configuration commands for Boss/components. However, as module
             configuration and commands do not show up until the module is
             configuration and commands do not show up until the module is
             running, it is currently not possible to add a module and set
             running, it is currently not possible to add a module and set
             its configuration in one script. This will be addressed in the
             its configuration in one script. This will be addressed in the
@@ -1780,21 +1825,6 @@ config set /Boss/components/b10-zonemgr/kind dispensable
             modules in separate commands and execute scripts.
             modules in separate commands and execute scripts.
         </section>
         </section>
     </section>
     </section>
-
-    <para>
-      Configuration changes are actually commands to
-      <command>b10-cfgmgr</command>. So when <command>bindctl</command>
-      sends a configuration, it is sent to <command>b10-cmdctl</command>
-      (over a HTTPS connection); then <command>b10-cmdctl</command>
-      sends the command (over a <command>b10-msgq</command> command
-      channel) to <command>b10-cfgmgr</command> which then stores
-      the details and relays (over a <command>b10-msgq</command> command
-      channel) the configuration on to the specified module.
-    </para>
-
-    <para>
-    </para>
-
   </chapter>
   </chapter>
 
 
   <chapter id="common">
   <chapter id="common">

+ 2 - 1
src/bin/bindctl/moduleinfo.py

@@ -221,7 +221,8 @@ class ModuleInfo:
 
 
     def module_help(self):
     def module_help(self):
         """Prints the help info for this module to stdout"""
         """Prints the help info for this module to stdout"""
-        print("Module ", self, "\nAvailable commands:")
+        print("Module " + str(self))
+        print("Available commands:")
         for k in self.commands.values():
         for k in self.commands.values():
             n = k.get_name()
             n = k.get_name()
             if len(n) >= CONST_BINDCTL_HELP_INDENT_WIDTH:
             if len(n) >= CONST_BINDCTL_HELP_INDENT_WIDTH: