Browse Source

[master] Merge branch 'trac1901'

Jelte Jansen 12 years ago
parent
commit
bae3798603
92 changed files with 1792 additions and 1569 deletions
  1. 3 1
      configure.ac
  2. 63 63
      doc/guide/bind10-guide.xml
  3. 3 3
      src/bin/auth/b10-auth.xml
  4. 1 1
      src/bin/auth/main.cc
  5. 1 2
      src/bin/bind10/.gitignore
  6. 18 14
      src/bin/bind10/Makefile.am
  7. 3 2
      src/bin/bind10/README
  8. 510 0
      src/bin/bind10/b10-init.xml
  9. 4 0
      src/bin/bind10/bind10.in
  10. 12 447
      src/bin/bind10/bind10.xml
  11. 14 14
      src/bin/bind10/creatorapi.txt
  12. 48 46
      src/bin/bind10/bind10_src.py.in
  13. 3 3
      src/bin/bind10/bob.spec
  14. 55 55
      src/bin/bind10/bind10_messages.mes
  15. 1 1
      src/bin/bind10/run_bind10.sh.in
  16. 50 50
      src/bin/bind10/tests/args_test.py
  17. 540 536
      src/bin/bind10/tests/bind10_test.py.in
  18. 1 1
      src/bin/bindctl/bindctl.xml
  19. 1 1
      src/bin/bindctl/bindctl_main.py.in
  20. 12 12
      src/bin/bindctl/command_sets.py
  21. 1 1
      src/bin/cfgmgr/b10-cfgmgr.py.in
  22. 4 4
      src/bin/cfgmgr/tests/b10-cfgmgr_test.py.in
  23. 2 2
      src/bin/cmdctl/b10-cmdctl.xml
  24. 1 1
      src/bin/cmdctl/cmdctl.py.in
  25. 4 4
      src/bin/ddns/b10-ddns.xml
  26. 1 1
      src/bin/dhcp4/ctrl_dhcp4_srv.h
  27. 1 1
      src/bin/dhcp4/tests/dhcp4_test.py
  28. 1 1
      src/bin/dhcp6/ctrl_dhcp6_srv.h
  29. 2 2
      src/bin/dhcp6/tests/dhcp6_test.py
  30. 3 3
      src/bin/resolver/b10-resolver.xml
  31. 3 3
      src/bin/stats/b10-stats-httpd.xml
  32. 5 5
      src/bin/stats/b10-stats.xml
  33. 3 3
      src/bin/stats/stats.py.in
  34. 1 1
      src/bin/stats/stats.spec
  35. 5 5
      src/bin/stats/tests/b10-stats-httpd_test.py
  36. 33 33
      src/bin/stats/tests/b10-stats_test.py
  37. 8 8
      src/bin/stats/tests/test_utils.py
  38. 1 1
      src/bin/stats/tests/testdata/b10-config.db
  39. 1 1
      src/bin/tests/process_rename_test.py.in
  40. 4 4
      src/bin/xfrin/b10-xfrin.xml
  41. 3 3
      src/bin/xfrout/b10-xfrout.xml
  42. 4 4
      src/bin/zonemgr/b10-zonemgr.xml
  43. 1 1
      src/bin/zonemgr/zonemgr.py.in
  44. 1 1
      src/bin/zonemgr/zonemgr_messages.mes
  45. 3 3
      src/lib/python/bind10_config.py.in
  46. 30 27
      src/lib/python/isc/bind10/component.py
  47. 3 3
      src/lib/python/isc/bind10/sockcreator.py
  48. 9 8
      src/lib/python/isc/bind10/socket_cache.py
  49. 26 26
      src/lib/python/isc/bind10/special_component.py
  50. 20 19
      src/lib/python/isc/bind10/tests/component_test.py
  51. 61 19
      src/lib/python/isc/config/cfgmgr.py
  52. 10 0
      src/lib/python/isc/config/cfgmgr_messages.mes
  53. 1 1
      src/lib/python/isc/config/config_data.py
  54. 49 5
      src/lib/python/isc/config/tests/cfgmgr_test.py
  55. 2 2
      src/lib/python/isc/log_messages/Makefile.am
  56. 0 1
      src/lib/python/isc/log_messages/bind10_messages.py
  57. 1 0
      src/lib/python/isc/log_messages/init_messages.py
  58. 1 1
      src/lib/server_common/portconfig.cc
  59. 4 3
      src/lib/server_common/portconfig.h
  60. 18 18
      src/lib/server_common/socket_request.cc
  61. 2 2
      src/lib/server_common/tests/portconfig_unittest.cc
  62. 4 4
      src/lib/server_common/tests/socket_requestor_test.cc
  63. 2 2
      tests/lettuce/configurations/auth/auth_badzone.config.orig
  64. 2 2
      tests/lettuce/configurations/auth/auth_basic.config.orig
  65. 2 2
      tests/lettuce/configurations/bindctl/bindctl.config.orig
  66. 2 2
      tests/lettuce/configurations/bindctl_commands.config.orig
  67. 2 2
      tests/lettuce/configurations/ddns/ddns.config.orig
  68. 2 2
      tests/lettuce/configurations/ddns/noddns.config.orig
  69. 1 1
      tests/lettuce/configurations/default.config
  70. 2 2
      tests/lettuce/configurations/example.org.config.orig
  71. 2 2
      tests/lettuce/configurations/example.org.inmem.config
  72. 2 2
      tests/lettuce/configurations/example2.org.config
  73. 2 2
      tests/lettuce/configurations/inmemory_over_sqlite3/secondary.conf
  74. 2 2
      tests/lettuce/configurations/ixfr-out/testset1-config.db
  75. 2 2
      tests/lettuce/configurations/multi_instance/multi_auth.config.orig
  76. 2 2
      tests/lettuce/configurations/no_db_file.config
  77. 2 2
      tests/lettuce/configurations/nsec3/nsec3_auth.config
  78. 31 1
      tests/lettuce/configurations/resolver/resolver_basic.config.orig
  79. 2 2
      tests/lettuce/configurations/xfrin/inmem_slave.conf
  80. 2 2
      tests/lettuce/configurations/xfrin/retransfer_master.conf.orig
  81. 2 2
      tests/lettuce/configurations/xfrin/retransfer_master_nons.conf.orig
  82. 2 2
      tests/lettuce/configurations/xfrin/retransfer_slave.conf.orig
  83. 2 2
      tests/lettuce/configurations/xfrin/retransfer_slave_notify.conf
  84. 3 3
      tests/lettuce/data/commands/bad_command
  85. 11 11
      tests/lettuce/features/bindctl_commands.feature
  86. 2 2
      tests/lettuce/features/ddns_system.feature
  87. 1 1
      tests/lettuce/features/default.feature
  88. 5 5
      tests/lettuce/features/multi_instance.feature
  89. 10 10
      tests/lettuce/features/terrain/bind10_control.py
  90. 8 8
      tests/system/bindctl/tests.sh
  91. 1 1
      tests/system/glue/nsx1/b10-config.db.in
  92. 1 1
      tests/system/ixfr/b10-config.db.in

+ 3 - 1
configure.ac

@@ -1133,6 +1133,7 @@ AC_CONFIG_FILES([Makefile
                  compatcheck/Makefile
                  src/Makefile
                  src/bin/Makefile
+                 src/bin/bind10/bind10
                  src/bin/bind10/Makefile
                  src/bin/bind10/tests/Makefile
                  src/bin/cmdctl/Makefile
@@ -1316,7 +1317,7 @@ AC_OUTPUT([doc/version.ent
            src/bin/sysinfo/run_sysinfo.sh
            src/bin/stats/stats.py
            src/bin/stats/stats_httpd.py
-           src/bin/bind10/bind10_src.py
+           src/bin/bind10/init.py
            src/bin/bind10/run_bind10.sh
            src/bin/bind10/tests/bind10_test.py
            src/bin/bindctl/run_bindctl.sh
@@ -1382,6 +1383,7 @@ AC_OUTPUT([doc/version.ent
            chmod +x src/bin/xfrin/run_b10-xfrin.sh
            chmod +x src/bin/xfrout/run_b10-xfrout.sh
            chmod +x src/bin/zonemgr/run_b10-zonemgr.sh
+           chmod +x src/bin/bind10/bind10
            chmod +x src/bin/bind10/run_bind10.sh
            chmod +x src/bin/cmdctl/tests/cmdctl_test
            chmod +x src/bin/dbutil/run_dbutil.sh

+ 63 - 63
doc/guide/bind10-guide.xml

@@ -347,7 +347,7 @@ share/
   share/bind10/
     auth.spec
     b10-cmdctl.pem
-    bob.spec
+    init.spec
     passwd.csv
   man/
 var/
@@ -432,9 +432,9 @@ var/
 	    run): <screen>$ <userinput>bindctl</userinput></screen>
 	    (Login with the provided default username and password.)
             <screen>
-&gt; <userinput>config add Boss/components b10-auth</userinput>
-&gt; <userinput>config set Boss/components/b10-auth/special auth</userinput>
-&gt; <userinput>config set Boss/components/b10-auth/kind needed</userinput>
+&gt; <userinput>config add Init/components b10-auth</userinput>
+&gt; <userinput>config set Init/components/b10-auth/special auth</userinput>
+&gt; <userinput>config set Init/components/b10-auth/kind needed</userinput>
 &gt; <userinput>config commit</userinput>
 &gt; <userinput>quit</userinput>
             </screen>
@@ -1274,10 +1274,10 @@ TODO
 
         <screen><userinput>&lt;module&gt; &lt;command&gt; <replaceable>[argument(s)]</replaceable></userinput></screen>
 
-        For example, the Boss module has a 'shutdown' command to shut down
+        For example, the Init module has a 'shutdown' command to shut down
         BIND 10, with an optional argument 'help':
 
-        <screen>&gt; <userinput>Boss shutdown help</userinput>
+        <screen>&gt; <userinput>Init shutdown help</userinput>
 Command  shutdown 	(Shut down BIND 10)
 		help (Get help for command)
 This command has no parameters
@@ -1300,12 +1300,12 @@ Available module names:
         </screen>
 
         When 'help' is used as a command to a module, it shows the supported commands for the module; for example:
-        <screen>&gt; <userinput>Boss help</userinput>
-Module  Boss 	Master process
+        <screen>&gt; <userinput>Init help</userinput>
+Module  Init 	Master process
 Available commands:
     help        Get help for module.
     shutdown    Shut down BIND 10
-    ping        Ping the boss process
+    ping        Ping the Init process
     show_processes
             List the running BIND 10 processes
         </screen>
@@ -1646,7 +1646,7 @@ Parameters:
                         to maps.
                     </simpara>
                     <simpara>
-                        For example, the <command>Boss/components</command>
+                        For example, the <command>Init/components</command>
                         elements is a named set;
                         adding, showing, and then removing an element
                         can be done with the following three commands (note
@@ -1654,13 +1654,13 @@ Parameters:
                         'example_module'):
                     </simpara>
                     <simpara>
-                        <command>config add Boss/components example_module</command>
+                        <command>config add Init/components example_module</command>
                     </simpara>
                     <simpara>
-                        <command>config show Boss/components/example_module</command>
+                        <command>config show Init/components/example_module</command>
                     </simpara>
                     <simpara>
-                        <command>config remove Boss/components example_module</command>
+                        <command>config remove Init/components example_module</command>
                     </simpara>
                 </listitem>
             </varlistentry>
@@ -1708,21 +1708,21 @@ Parameters:
 
         <screen>&gt; <userinput>execute init_authoritative_server show</userinput>
 !echo adding Authoritative server component
-config add /Boss/components b10-auth
-config set /Boss/components/b10-auth/kind needed
-config set /Boss/components/b10-auth/special auth
+config add /Init/components b10-auth
+config set /Init/components/b10-auth/kind needed
+config set /Init/components/b10-auth/special auth
 !echo adding Xfrin component
-config add /Boss/components b10-xfrin
-config set /Boss/components/b10-xfrin/address Xfrin
-config set /Boss/components/b10-xfrin/kind dispensable
+config add /Init/components b10-xfrin
+config set /Init/components/b10-xfrin/address Xfrin
+config set /Init/components/b10-xfrin/kind dispensable
 !echo adding Xfrout component
-config add /Boss/components b10-xfrout
-config set /Boss/components/b10-xfrout/address Xfrout
-config set /Boss/components/b10-xfrout/kind dispensable
+config add /Init/components b10-xfrout
+config set /Init/components/b10-xfrout/address Xfrout
+config set /Init/components/b10-xfrout/kind dispensable
 !echo adding Zone Manager component
-config add /Boss/components b10-zonemgr
-config set /Boss/components/b10-zonemgr/address Zonemgr
-config set /Boss/components/b10-zonemgr/kind dispensable
+config add /Init/components b10-zonemgr
+config set /Init/components/b10-zonemgr/address Zonemgr
+config set /Init/components/b10-zonemgr/kind dispensable
 !echo Components added. Please enter "config commit" to
 !echo finalize initial setup and run the components.
         </screen>
@@ -1770,7 +1770,7 @@ config set /Boss/components/b10-zonemgr/kind dispensable
         <section id="bindctl_execute_notes">
             <title>Notes on execute scripts</title>
             Within scripts, you can add or remove modules with the normal
-            configuration commands for <command>Boss/components</command>.
+            configuration commands for <command>Init/components</command>.
             However, as module
             configuration and commands do not show up until the module is
             running, it is currently not possible to add a module and set
@@ -2091,7 +2091,7 @@ AND_MATCH := "ALL": [ RULE_RAW, RULE_RAW, ... ]
       <para>
         The BIND 10 suite may be shut down by stopping the
         parent <command>bind10</command> process. This may be done
-        by running the <userinput>Boss shutdown</userinput> command
+        by running the <userinput>Init shutdown</userinput> command
         at the <command>bindctl</command> prompt.
       </para>
     </section>
@@ -2105,7 +2105,7 @@ AND_MATCH := "ALL": [ RULE_RAW, RULE_RAW, ... ]
 	of the required <command>b10-sockcreator</command>,
 	<command>b10-msgq</command> and <command>b10-cfgmgr</command>
 	components.
-	The configuration is in the <varname>Boss/components</varname>
+	The configuration is in the <varname>Init/components</varname>
 	section. Each element represents one component, which is
 	an abstraction of a process.
       </para>
@@ -2113,10 +2113,10 @@ AND_MATCH := "ALL": [ RULE_RAW, RULE_RAW, ... ]
       <para>
 	To add a process to the set, let's say the resolver (which
 	is not started by default), you would do this:
-        <screen>&gt; <userinput>config add Boss/components b10-resolver</userinput>
-&gt; <userinput>config set Boss/components/b10-resolver/special resolver</userinput>
-&gt; <userinput>config set Boss/components/b10-resolver/kind needed</userinput>
-&gt; <userinput>config set Boss/components/b10-resolver/priority 10</userinput>
+        <screen>&gt; <userinput>config add Init/components b10-resolver</userinput>
+&gt; <userinput>config set Init/components/b10-resolver/special resolver</userinput>
+&gt; <userinput>config set Init/components/b10-resolver/kind needed</userinput>
+&gt; <userinput>config set Init/components/b10-resolver/priority 10</userinput>
 &gt; <userinput>config commit</userinput></screen></para>
 
       <para>
@@ -2146,7 +2146,7 @@ AND_MATCH := "ALL": [ RULE_RAW, RULE_RAW, ... ]
             <row><entry>b10-auth</entry><entry>auth</entry><entry>Authoritative DNS server</entry></row>
             <row><entry>b10-resolver</entry><entry>resolver</entry><entry>DNS resolver</entry></row>
             <row><entry>b10-cmdctl</entry><entry>cmdctl</entry><entry>Command control (remote control interface)</entry></row>
-            <!-- TODO Either add xfrin and xfrout as well or clean up the workarounds in boss before the release -->
+            <!-- TODO Either add xfrin and xfrout as well or clean up the workarounds in b10-init before the release -->
           </tbody>
           </tgroup>
         </table>
@@ -2230,9 +2230,9 @@ address, but the usual ones don't." mean? -->
         You might want to do that to gain more performance (each one uses only
         single core). Just put multiple entries under different names, like
         this, with the same config:
-        <screen>&gt; <userinput>config add Boss/components b10-resolver-2</userinput>
-&gt; <userinput>config set Boss/components/b10-resolver-2/special resolver</userinput>
-&gt; <userinput>config set Boss/components/b10-resolver-2/kind needed</userinput>
+        <screen>&gt; <userinput>config add Init/components b10-resolver-2</userinput>
+&gt; <userinput>config set Init/components/b10-resolver-2/special resolver</userinput>
+&gt; <userinput>config set Init/components/b10-resolver-2/kind needed</userinput>
 &gt; <userinput>config commit</userinput></screen>
       </para>
       <para>
@@ -2248,7 +2248,7 @@ address, but the usual ones don't." mean? -->
 
       <para>
         The running processes started by <command>bind10</command>
-        may be listed by running <userinput>Boss show_processes</userinput>
+        may be listed by running <userinput>Init show_processes</userinput>
         using <command>bindctl</command>.
       </para>
 
@@ -2420,7 +2420,7 @@ can use various data source backends.
               <simpara>Stop the authoritative DNS server.
       This has an optional <varname>pid</varname> argument to
       select the process ID to stop.
-      (Note that the BIND 10 boss process may restart this service
+      (Note that the BIND 10 init process may restart this service
       if configured.)
               </simpara>
             </listitem>
@@ -3024,9 +3024,9 @@ what is XfroutClient xfr_client??
         It can be done by using the <command>bindctl</command>
         utility.  For example:
       <screen>
-&gt; <userinput>config add Boss/components b10-ddns</userinput>
-&gt; <userinput>config set Boss/components/b10-ddns/address DDNS</userinput>
-&gt; <userinput>config set Boss/components/b10-ddns/kind dispensable</userinput>
+&gt; <userinput>config add Init/components b10-ddns</userinput>
+&gt; <userinput>config set Init/components/b10-ddns/address DDNS</userinput>
+&gt; <userinput>config set Init/components/b10-ddns/kind dispensable</userinput>
 &gt; <userinput>config commit</userinput>
 </screen>
       <note><simpara>
@@ -3217,10 +3217,10 @@ what is XfroutClient xfr_client??
       <command>bindctl</command>, for example:
 
       <screen>
-&gt; <userinput>config add Boss/components b10-resolver</userinput>
-&gt; <userinput>config set Boss/components/b10-resolver/special resolver</userinput>
-&gt; <userinput>config set Boss/components/b10-resolver/kind needed</userinput>
-&gt; <userinput>config set Boss/components/b10-resolver/priority 10</userinput>
+&gt; <userinput>config add Init/components b10-resolver</userinput>
+&gt; <userinput>config set Init/components/b10-resolver/special resolver</userinput>
+&gt; <userinput>config set Init/components/b10-resolver/kind needed</userinput>
+&gt; <userinput>config set Init/components/b10-resolver/priority 10</userinput>
 &gt; <userinput>config commit</userinput>
 </screen>
 
@@ -3340,7 +3340,7 @@ then change those defaults with config set Resolver/forward_addresses[0]/address
     both servers.  DHCPv4-specific details are covered in <xref linkend="dhcp4"/>,
     while those details specific to DHCPv6 are described in <xref linkend="dhcp6"/>
     </para>
-    
+
     <section id="dhcp-install-configure">
       <title>DHCP Database Installation and Configuration</title>
       <para>
@@ -3409,7 +3409,7 @@ $</screen>
    </section>
 
   </chapter>
-  
+
   <chapter id="dhcp4">
     <title>The DHCPv4 Server</title>
 
@@ -3425,16 +3425,16 @@ $</screen>
         After starting BIND 10 and entering bindctl, the first step
         in configuring the server is to add it to the list of running BIND 10 services.
 <screen>
-&gt; <userinput>config add Boss/components b10-dhcp4</userinput>
-&gt; <userinput>config set Boss/components/b10-dhcp4/kind dispensable</userinput>
+&gt; <userinput>config add Init/components b10-dhcp4</userinput>
+&gt; <userinput>config set Init/components/b10-dhcp4/kind dispensable</userinput>
 &gt; <userinput>config commit</userinput>
 </screen>
       </para>
       <para>
          To remove <command>b10-dhcp4</command> from the set of running services,
-         the <command>b10-dhcp4</command> is removed from list of Boss components:
+         the <command>b10-dhcp4</command> is removed from list of Init components:
 <screen>
-&gt; <userinput>config remove Boss/components b10-dhcp4</userinput>
+&gt; <userinput>config remove Init/components b10-dhcp4</userinput>
 &gt; <userinput>config commit</userinput>
 </screen>
       </para>
@@ -3502,7 +3502,7 @@ Dhcp4/subnet4	[]	list	(default)
       The server comes with an in-memory database ("memfile") configured as the default
       database. This is used for internal testing and is not supported.  In addition,
       it does not store lease information on disk: lease information will be lost if the
-      server is restarted. 
+      server is restarted.
       </para>
       </footnote>, and so the server must be configured to
       access the correct database with the appropriate credentials.
@@ -3552,7 +3552,7 @@ Dhcp4/subnet4	[]	list	(default)
       database.  Improved password security will be added in a future version of BIND 10 DHCP</para>
       </note>
       </section>
-      
+
       <section id="dhcp4-address-config">
       <title>Configuration of Address Pools</title>
       <para>
@@ -3726,16 +3726,16 @@ Dhcp4/renew-timer	1000	integer	(default)
         After starting BIND 10 and starting <command>bindctl</command>, the first step
         in configuring the server is to add <command>b10-dhcp6</command> to the list of running BIND 10 services.
 <screen>
-&gt; <userinput>config add Boss/components b10-dhcp6</userinput>
-&gt; <userinput>config set Boss/components/b10-dhcp6/kind dispensable</userinput>
+&gt; <userinput>config add Init/components b10-dhcp6</userinput>
+&gt; <userinput>config set Init/components/b10-dhcp6/kind dispensable</userinput>
 &gt; <userinput>config commit</userinput>
 </screen>
       </para>
       <para>
          To remove <command>b10-dhcp6</command> from the set of running services,
-         the <command>b10-dhcp4</command> is removed from list of Boss components:
+         the <command>b10-dhcp4</command> is removed from list of Init components:
 <screen>
-&gt; <userinput>config remove Boss/components b10-dhcp6</userinput>
+&gt; <userinput>config remove Init/components b10-dhcp6</userinput>
 &gt; <userinput>config commit</userinput>
 </screen>
       </para>
@@ -3782,7 +3782,7 @@ Dhcp6/lease-database/name	""	string	(default)
 Dhcp6/lease-database/user	""	string	(default)
 Dhcp6/lease-database/host	""	string	(default)
 Dhcp6/lease-database/password	""	string	(default)
-Dhcp6/subnet6/	list	
+Dhcp6/subnet6/	list
 </screen>
       </para>
       <para>
@@ -3813,7 +3813,7 @@ Dhcp6/subnet6/	list
       The server comes with an in-memory database ("memfile") configured as the default
       database. This is used for internal testing and is not supported.  In addition,
       it does not store lease information on disk: lease information will be lost if the
-      server is restarted. 
+      server is restarted.
       </para>
       </footnote>, and so the server must be configured to
       access the correct database with the appropriate credentials.
@@ -3959,7 +3959,7 @@ Dhcp6/subnet6/	list
         lines for clarity.)
       </para>
     </section>
-       
+
       <section id="dhcp6-config-subnets">
         <title>Subnet Selection</title>
           <para>
@@ -3994,8 +3994,8 @@ Dhcp6/subnet6/	list
 &gt; <userinput>config commit</userinput>
 </screen>
         </para>
-      </section>    
-    
+      </section>
+
    </section>
 
     <section id="dhcp6-serverid">
@@ -4164,7 +4164,7 @@ Dhcp6/renew-timer	1000	integer	(default)
         "queries.tcp": 1749,
         "queries.udp": 867868
     },
-    "Boss": {
+    "Init": {
         "boot_time": "2011-01-20T16:59:03Z"
     },
     "Stats": {

+ 3 - 3
src/bin/auth/b10-auth.xml

@@ -53,8 +53,8 @@
     <para>The <command>b10-auth</command> daemon provides the BIND 10
       authoritative DNS server.
       Normally it is started by the
-      <citerefentry><refentrytitle>bind10</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-      boss process.
+      <citerefentry><refentrytitle>b10-init</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+      process.
     </para>
 
     <para>
@@ -194,7 +194,7 @@
       <command>shutdown</command> exits <command>b10-auth</command>.
       This has an optional <varname>pid</varname> argument to
       select the process ID to stop.
-      (Note that the BIND 10 boss process may restart this service
+      (Note that the b10-init process may restart this service
       if configured.)
     </para>
 

+ 1 - 1
src/bin/auth/main.cc

@@ -187,7 +187,7 @@ main(int argc, char* argv[]) {
         // We delay starting listening to new commands/config just before we
         // go into the main loop to avoid confusion due to mixture of
         // synchronous and asynchronous operations (this would happen in
-        // initial communication with the boss that takes place in
+        // initial communication with b10-init that takes place in
         // updateConfig() for listen_on and in initializing TSIG keys below).
         // Until then all operations on the CC session will take place
         // synchronously.

+ 1 - 2
src/bin/bind10/.gitignore

@@ -1,4 +1,3 @@
-/bind10
-/bind10_src.py
+/b10-init.py
 /run_bind10.sh
 /bind10.8

+ 18 - 14
src/bin/bind10/Makefile.am

@@ -1,29 +1,33 @@
 SUBDIRS = . tests
 
 sbin_SCRIPTS = bind10
-CLEANFILES = bind10 bind10_src.pyc
-CLEANFILES += $(PYTHON_LOGMSGPKG_DIR)/work/bind10_messages.py
-CLEANFILES += $(PYTHON_LOGMSGPKG_DIR)/work/bind10_messages.pyc
+pkglibexec_SCRIPTS = b10-init
+CLEANFILES = b10-init b10-init.pyc
+CLEANFILES += $(PYTHON_LOGMSGPKG_DIR)/work/init_messages.py
+CLEANFILES += $(PYTHON_LOGMSGPKG_DIR)/work/init_messages.pyc
 
 pkglibexecdir = $(libexecdir)/@PACKAGE@
 
-nodist_pylogmessage_PYTHON = $(PYTHON_LOGMSGPKG_DIR)/work/bind10_messages.py
+nodist_pylogmessage_PYTHON = $(PYTHON_LOGMSGPKG_DIR)/work/init_messages.py
 pylogmessagedir = $(pyexecdir)/isc/log_messages/
 
 noinst_SCRIPTS = run_bind10.sh
 
 bind10dir = $(pkgdatadir)
-bind10_DATA = bob.spec
-EXTRA_DIST = bob.spec
+bind10_DATA = init.spec
+EXTRA_DIST = init.spec bind10.in
 
-man_MANS = bind10.8
-DISTCLEANFILES = $(man_MANS)
-EXTRA_DIST += $(man_MANS) bind10.xml bind10_messages.mes
+man_MANS = b10-init.8 bind10.8
+DISTCLEANFILES = $(man_MANS) bind10
+EXTRA_DIST += $(man_MANS) b10-init.xml bind10.xml init_messages.mes
 
 if GENERATE_DOCS
 
 bind10.8: bind10.xml
-	@XSLTPROC@ --novalid --xinclude --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $(srcdir)/bind10.xml 
+	@XSLTPROC@ --novalid --xinclude --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $(srcdir)/bind10.xml
+
+b10-init.8: b10-init.xml
+	@XSLTPROC@ --novalid --xinclude --nonet -o $@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $(srcdir)/b10-init.xml
 
 #dist-local-check-mans-enabled:
 #	@if grep "Man generation disabled" $(man_MANS) >/dev/null; then $(RM) $(man_MANS); fi
@@ -40,15 +44,15 @@ $(man_MANS):
 
 endif
 
-$(PYTHON_LOGMSGPKG_DIR)/work/bind10_messages.py : bind10_messages.mes
+$(PYTHON_LOGMSGPKG_DIR)/work/init_messages.py : init_messages.mes
 	$(top_builddir)/src/lib/log/compiler/message \
-	-d $(PYTHON_LOGMSGPKG_DIR)/work -p $(srcdir)/bind10_messages.mes
+	-d $(PYTHON_LOGMSGPKG_DIR)/work -p $(srcdir)/init_messages.mes
 
 # this is done here since configure.ac AC_OUTPUT doesn't expand exec_prefix
-bind10: bind10_src.py $(PYTHON_LOGMSGPKG_DIR)/work/bind10_messages.py
+b10-init: init.py $(PYTHON_LOGMSGPKG_DIR)/work/init_messages.py
 	$(SED) -e "s|@@PYTHONPATH@@|@pyexecdir@|" \
 	       -e "s|@@LIBDIR@@|$(libdir)|" \
-	       -e "s|@@LIBEXECDIR@@|$(pkglibexecdir)|" bind10_src.py >$@
+	       -e "s|@@LIBEXECDIR@@|$(pkglibexecdir)|" init.py >$@
 	chmod a+x $@
 
 pytest:

+ 3 - 2
src/bin/bind10/README

@@ -1,11 +1,12 @@
-This directory contains the source for the "Boss of Bind" program.
+This directory contains the source for the "b10-init" program, as well as
+the "bind10" script that runs it.
 
 Files:
   Makefile.am      - build information
   README           - this file
   TODO             - remaining development tasks for this program
   bind10.py.in     - used to make bind10.py with proper Python paths
-  bob.spec         - defines the options and commands
+  init.spec        - defines the options and commands
   run_bind10.sh.in - use to make run_bind10.sh with proper Python paths
 
 The "tests" directory contains unit tests for the application.

+ 510 - 0
src/bin/bind10/b10-init.xml

@@ -0,0 +1,510 @@
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+               "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
+	       [<!ENTITY mdash "&#8212;">]>
+<!--
+ - Copyright (C) 2010-2012  Internet Systems Consortium, Inc. ("ISC")
+ -
+ - Permission to use, copy, modify, and/or distribute this software for any
+ - purpose with or without fee is hereby granted, provided that the above
+ - copyright notice and this permission notice appear in all copies.
+ -
+ - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+ - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ - AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+ - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ - PERFORMANCE OF THIS SOFTWARE.
+-->
+
+<refentry>
+
+  <refentryinfo>
+    <date>April 12, 2012</date>
+  </refentryinfo>
+
+  <refmeta>
+    <refentrytitle>b10-init</refentrytitle>
+    <manvolnum>8</manvolnum>
+    <refmiscinfo>BIND10</refmiscinfo>
+  </refmeta>
+
+  <refnamediv>
+    <refname>b10-init</refname>
+    <refpurpose>BIND 10 Init process</refpurpose>
+  </refnamediv>
+
+  <docinfo>
+    <copyright>
+      <year>2010-2012</year>
+      <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
+    </copyright>
+  </docinfo>
+
+  <refsynopsisdiv>
+    <cmdsynopsis>
+      <command>b10-init</command>
+      <arg><option>-c <replaceable>config-filename</replaceable></option></arg>
+      <arg><option>-i</option></arg>
+      <arg><option>-m <replaceable>file</replaceable></option></arg>
+      <arg><option>-p <replaceable>data_path</replaceable></option></arg>
+      <arg><option>-u <replaceable>user</replaceable></option></arg>
+      <arg><option>-v</option></arg>
+      <arg><option>-w <replaceable>wait_time</replaceable></option></arg>
+      <arg><option>--clear-config</option></arg>
+      <arg><option>--cmdctl-port</option> <replaceable>port</replaceable></arg>
+      <arg><option>--config-file</option> <replaceable>config-filename</replaceable></arg>
+      <arg><option>--data-path</option> <replaceable>directory</replaceable></arg>
+      <arg><option>--msgq-socket-file <replaceable>file</replaceable></option></arg>
+      <arg><option>--no-kill</option></arg>
+      <arg><option>--pid-file</option> <replaceable>filename</replaceable></arg>
+      <arg><option>--pretty-name <replaceable>name</replaceable></option></arg>
+      <arg><option>--user <replaceable>user</replaceable></option></arg>
+      <arg><option>--verbose</option></arg>
+      <arg><option>--wait <replaceable>wait_time</replaceable></option></arg>
+    </cmdsynopsis>
+  </refsynopsisdiv>
+
+  <refsect1>
+    <title>DESCRIPTION</title>
+
+    <para>The <command>b10-init</command> daemon starts up other
+    BIND 10 required daemons.  It handles restarting of exiting
+    programs and also the shutdown of all managed daemons.</para>
+
+<!-- TODO: list what it starts here? -->
+
+<!-- TODO
+    <para>The configuration of the <command>b10-init</command> daemon
+    is defined in the TODO configuration file, as described in the
+    <citerefentry><refentrytitle>TODO</refentrytitle><manvolnum>5</manvolnum></citerefentry>
+    manual page.</para>
+-->
+
+  </refsect1>
+
+  <refsect1>
+    <title>ARGUMENTS</title>
+
+    <para>The arguments are as follows:</para>
+
+    <variablelist>
+
+      <varlistentry>
+        <term>
+          <option>-c</option> <replaceable>config-filename</replaceable>,
+          <option>--config-file</option> <replaceable>config-filename</replaceable>
+        </term>
+        <listitem>
+          <para>The configuration filename to use. Can be either absolute or
+          relative to data path. In case it is absolute, value of data path is
+          not considered.
+          Defaults to <filename>b10-config.db</filename>.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>
+          <option>--clear-config</option>
+        </term>
+        <listitem>
+	  <para>
+	    This will create a backup of the existing configuration
+	    file, remove it and start
+	    <refentrytitle>b10-cfgmgr</refentrytitle><manvolnum>8</manvolnum>
+            with the default configuration.
+	    The name of the backup file can be found in the logs
+	    (<varname>CFGMGR_BACKED_UP_CONFIG_FILE</varname>).
+	    (It will append a number to the backup filename if a
+	    previous backup file exists.)
+
+          </para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>
+          <option>--cmdctl-port</option> <replaceable>port</replaceable>
+        </term>
+        <listitem>
+	  <para>The <command>b10-cmdctl</command> daemon will listen
+	    on this port.
+	    (See
+	    <refentrytitle>b10-cmdctl</refentrytitle><manvolnum>8</manvolnum>
+            for the default.)
+          </para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term>
+          <option>-p</option> <replaceable>directory</replaceable>,
+          <option>--data-path</option> <replaceable>directory</replaceable>
+        </term>
+        <listitem>
+          <para>The path where BIND 10 programs look for various data files.
+	  Currently only
+	  <citerefentry><refentrytitle>b10-cfgmgr</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+	  uses it to locate the configuration file, but the usage
+	  might be extended for other programs and other types of
+	  files.</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-m</option> <replaceable>file</replaceable>,
+           <option>--msgq-socket-file</option> <replaceable>file</replaceable></term>
+
+        <listitem>
+          <para>The UNIX domain socket file for the
+	    <citerefentry><refentrytitle>b10-msgq</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+            daemon to use.
+            The default is
+            <filename>/usr/local/var/bind10/msg_socket</filename>.
+<!-- @localstatedir@/@PACKAGE_NAME@/msg_socket -->
+           </para>
+         </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-i</option>, <option>--no-kill</option></term>
+        <listitem>
+	  <para>When this option is passed, <command>b10-init</command>
+	  does not send SIGTERM and SIGKILL signals to modules during
+	  shutdown. (This option was introduced for use during
+	  testing.)</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-u</option> <replaceable>user</replaceable>, <option>--user</option> <replaceable>name</replaceable></term>
+<!-- TODO: example more detail. -->
+        <listitem>
+          <para>The username for <command>b10-init</command> to run as.
+            <command>b10-init</command> must be initially ran as the
+            root user to use this option.
+            The default is to run as the current user.</para>
+         </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>--pid-file</option> <replaceable>filename</replaceable></term>
+        <listitem>
+          <para>If defined, the PID of the <command>b10-init</command> is stored
+             in this file.
+          </para>
+         </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>--pretty-name <replaceable>name</replaceable></option></term>
+
+        <listitem>
+          <para>The name this process should have in tools like
+          <command>ps</command> or <command>top</command>. This
+          is handy if you have multiple versions/installations
+          of <command>b10-init</command>.
+<!-- TODO: only supported with setproctitle feature
+The default is the basename of ARG 0.
+-->
+</para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-v</option>, <option>--verbose</option></term>
+        <listitem>
+	  <para>Display more about what is going on for
+	  <command>b10-init</command> and its child processes.</para>
+<!-- TODO: not true about all children yet -->
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><option>-w</option> <replaceable>wait_time</replaceable>, <option>--wait</option> <replaceable>wait_time</replaceable></term>
+        <listitem>
+	  <para>Sets the amount of time that BIND 10 will wait for
+	  the configuration manager (a key component of BIND 10)
+	  to initialize itself before abandoning the start up and
+	  terminating with an error.  The
+	  <replaceable>wait_time</replaceable> is specified in
+	  seconds and has a default value of 10.
+          </para>
+        </listitem>
+      </varlistentry>
+
+    </variablelist>
+  </refsect1>
+
+<!--
+TODO: configuration section
+-->
+
+  <refsect1>
+    <title>CONFIGURATION AND COMMANDS</title>
+
+    <para>
+      The configuration provides settings for components for
+      <command>b10-init</command> to manage under
+      <varname>/Init/components/</varname>.
+      The default elements are:
+    </para>
+
+    <itemizedlist>
+
+      <listitem>
+        <para> <varname>/Init/components/b10-cmdctl</varname> </para>
+      </listitem>
+
+      <listitem>
+        <para> <varname>/Init/components/b10-stats</varname> </para>
+      </listitem>
+
+    </itemizedlist>
+
+    <para>
+      (Note that the startup of <command>b10-sockcreator</command>,
+      <command>b10-cfgmgr</command>, and <command>b10-msgq</command>
+      is not configurable. They are hardcoded and <command>b10-init</command>
+      will not run without them.)
+    </para>
+
+    <para>
+      The named sets for components contain the following settings:
+    </para>
+
+    <variablelist>
+
+      <varlistentry>
+        <term><varname>address</varname></term>
+        <listitem>
+	  <para>The name used for communicating to it on the message
+	  bus.</para>
+<!-- NOTE: vorner said:
+These can be null, because the components are special ones, and
+the special class there already knows the address. It is (I hope)
+explained in the guide. I'd like to get rid of the special components
+sometime and I'd like it to teach to guess the address.
+-->
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+        <term><varname>kind</varname></term>
+        <listitem>
+          <para>
+            This defines how required a component is.
+            The possible settings for <varname>kind</varname> are:
+            <varname>core</varname> (system won't start if it won't
+            start and <command>b10-init</command> will shutdown if
+            a <quote>core</quote> component crashes),
+            <varname>dispensable</varname> (<command>b10-init</command>
+            will restart failing component),
+            and
+	    <varname>needed</varname> (<command>b10-init</command>
+	    will shutdown if component won't initially start, but
+	    if crashes later, it will attempt to restart).
+            This setting is required.
+<!-- TODO: formatting -->
+          </para>
+        </listitem>
+      </varlistentry>
+
+<!--
+TODO: currently not used
+      <varlistentry>
+        <term> <varname>params</varname> </term>
+        <listitem>
+          <para>
+list
+</para>
+        </listitem>
+      </varlistentry>
+-->
+
+      <varlistentry>
+        <term> <varname>priority</varname> </term>
+        <listitem>
+          <para>This is an integer. <command>b10-init</command>
+            will start the components with largest priority numbers first.
+          </para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+          <term> <varname>process</varname> </term>
+        <listitem>
+          <para>This is the filename of the executable to be started.
+            If not defined, then <command>b10-init</command> will
+            use the component name instead.
+          </para>
+        </listitem>
+      </varlistentry>
+
+      <varlistentry>
+          <term> <varname>special</varname> </term>
+        <listitem>
+          <para>
+            This defines if the component is started a special, hardcoded
+            way.
+<!--
+TODO: document this ... but maybe some of these will be removed
+once we get rid of some using switches for components?
+
+auth
+cfgmgr
+cmdctl
+msgq
+resolver
+sockcreator
+xfrin
+-->
+
+</para>
+        </listitem>
+      </varlistentry>
+
+    </variablelist>
+
+<!-- TODO: formating -->
+    <para>
+      The <varname>Init</varname> configuration commands are:
+    </para>
+
+<!-- TODO -->
+<!--
+    <para>
+      <command>drop_socket</command>
+      This is an internal command and not exposed to the administrator.
+    </para>
+-->
+
+<!-- TODO -->
+<!--
+    <para>
+      <command>get_socket</command>
+      This is an internal command and not exposed to the administrator.
+    </para>
+-->
+
+    <para>
+      <command>getstats</command> tells <command>b10-init</command>
+      to send its statistics data to the <command>b10-stats</command>
+      daemon.
+      This is an internal command and not exposed to the administrator.
+<!-- not defined in spec -->
+    </para>
+
+    <para>
+      <command>ping</command> is used to check the connection with the
+      <command>b10-init</command> daemon.
+      It returns the text <quote>pong</quote>.
+    </para>
+
+    <para>
+      <command>show_processes</command> lists the current processes
+      managed by <command>b10-init</command>.
+      The output is an array in JSON format containing the process
+      ID, the name for each and the address name used on each message bus.
+<!-- TODO: what is name? -->
+<!-- TODO: change to JSON object format? -->
+<!-- TODO: ticket #1406 -->
+    </para>
+
+    <para>
+      <command>shutdown</command> tells <command>b10-init</command>
+      to shutdown the BIND 10 servers.
+      It will tell each process it manages to shutdown and, when
+      complete, <command>b10-init</command> will exit.
+    </para>
+
+  </refsect1>
+
+  <refsect1>
+    <title>STATISTICS DATA</title>
+
+    <para>
+      The statistics data collected by the <command>b10-stats</command>
+      daemon for <quote>Init</quote> include:
+    </para>
+
+    <variablelist>
+
+      <varlistentry>
+        <term>boot_time</term>
+        <listitem><para>
+          The date and time that the <command>b10-init</command>
+          process started.
+          This is represented in ISO 8601 format.
+        </para></listitem>
+      </varlistentry>
+
+    </variablelist>
+
+  </refsect1>
+
+  <refsect1>
+    <title>FILES</title>
+    <para><filename>sockcreator-XXXXXX/sockcreator</filename>
+    &mdash;
+    the Unix Domain socket located in a temporary file directory for
+    <command>b10-sockcreator</command>
+<!--    <citerefentry><refentrytitle>b10-sockcreator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -->
+    communication.
+    </para>
+  </refsect1>
+
+  <refsect1>
+    <title>SEE ALSO</title>
+    <para>
+      <citerefentry>
+        <refentrytitle>bindctl</refentrytitle><manvolnum>1</manvolnum>
+      </citerefentry>,
+      <citerefentry>
+        <refentrytitle>b10-auth</refentrytitle><manvolnum>8</manvolnum>
+      </citerefentry>,
+      <citerefentry>
+        <refentrytitle>b10-cfgmgr</refentrytitle><manvolnum>8</manvolnum>
+      </citerefentry>,
+      <citerefentry>
+        <refentrytitle>b10-cmdctl</refentrytitle><manvolnum>8</manvolnum>
+      </citerefentry>,
+      <citerefentry>
+        <refentrytitle>b10-msgq</refentrytitle><manvolnum>8</manvolnum>
+      </citerefentry>,
+      <citerefentry>
+        <refentrytitle>b10-xfrin</refentrytitle><manvolnum>8</manvolnum>
+      </citerefentry>,
+      <citerefentry>
+        <refentrytitle>b10-xfrout</refentrytitle><manvolnum>8</manvolnum>
+      </citerefentry>,
+      <citerefentry>
+        <refentrytitle>b10-zonemgr</refentrytitle><manvolnum>8</manvolnum>
+      </citerefentry>,
+      <citerefentry>
+        <refentrytitle>b10-stats</refentrytitle><manvolnum>8</manvolnum>
+      </citerefentry>,
+      <citetitle>BIND 10 Guide</citetitle>.
+    </para>
+  </refsect1>
+<!-- <citerefentry>
+        <refentrytitle>b10-sockcreator</refentrytitle><manvolnum>8</manvolnum>
+      </citerefentry>, -->
+
+  <refsect1 id='history'><title>HISTORY</title>
+    <para>The development of <command>b10-init</command>
+    was started in October 2009.</para>
+  </refsect1>
+
+  <refsect1>
+    <title>AUTHORS</title>
+    <para>
+      The <command>b10-init</command>
+      daemon was initially designed by Shane Kerr of ISC.
+    </para>
+  </refsect1>
+</refentry><!--
+ - Local variables:
+ - mode: sgml
+ - End:
+-->

+ 4 - 0
src/bin/bind10/bind10.in

@@ -0,0 +1,4 @@
+#!/bin/sh
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+exec @libexecdir@/@PACKAGE@/b10-init $*

+ 12 - 447
src/bin/bind10/bind10.xml

@@ -2,7 +2,7 @@
                "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"
 	       [<!ENTITY mdash "&#8212;">]>
 <!--
- - Copyright (C) 2010-2012  Internet Systems Consortium, Inc. ("ISC")
+ - Copyright (C) 2013  Internet Systems Consortium, Inc. ("ISC")
  -
  - Permission to use, copy, modify, and/or distribute this software for any
  - purpose with or without fee is hereby granted, provided that the above
@@ -31,12 +31,12 @@
 
   <refnamediv>
     <refname>bind10</refname>
-    <refpurpose>BIND 10 boss process</refpurpose>
+    <refpurpose>BIND 10 start script</refpurpose>
   </refnamediv>
 
   <docinfo>
     <copyright>
-      <year>2010-2012</year>
+      <year>2013</year>
       <holder>Internet Systems Consortium, Inc. ("ISC")</holder>
     </copyright>
   </docinfo>
@@ -44,468 +44,33 @@
   <refsynopsisdiv>
     <cmdsynopsis>
       <command>bind10</command>
-      <arg><option>-c <replaceable>config-filename</replaceable></option></arg>
-      <arg><option>-i</option></arg>
-      <arg><option>-m <replaceable>file</replaceable></option></arg>
-      <arg><option>-p <replaceable>data_path</replaceable></option></arg>
-      <arg><option>-u <replaceable>user</replaceable></option></arg>
-      <arg><option>-v</option></arg>
-      <arg><option>-w <replaceable>wait_time</replaceable></option></arg>
-      <arg><option>--clear-config</option></arg>
-      <arg><option>--cmdctl-port</option> <replaceable>port</replaceable></arg>
-      <arg><option>--config-file</option> <replaceable>config-filename</replaceable></arg>
-      <arg><option>--data-path</option> <replaceable>directory</replaceable></arg>
-      <arg><option>--msgq-socket-file <replaceable>file</replaceable></option></arg>
-      <arg><option>--no-kill</option></arg>
-      <arg><option>--pid-file</option> <replaceable>filename</replaceable></arg>
-      <arg><option>--pretty-name <replaceable>name</replaceable></option></arg>
-      <arg><option>--user <replaceable>user</replaceable></option></arg>
-      <arg><option>--verbose</option></arg>
-      <arg><option>--wait <replaceable>wait_time</replaceable></option></arg>
+      <arg><option>options</option></arg>
     </cmdsynopsis>
   </refsynopsisdiv>
 
   <refsect1>
     <title>DESCRIPTION</title>
 
-    <para>The <command>bind10</command> daemon starts up other
-    BIND 10 required daemons.  It handles restarting of exiting
-    programs and also the shutdown of all managed daemons.</para>
+    <para>The <command>bind10</command> script is a simple wrapper that
+    starts BIND10 by running the <command>b10-init</command> daemon. All
+    options passed to <command>bind10</command> are directly passed on to
+    <command>b10-init</command>.</para>
 
-<!-- TODO: list what it starts here? -->
-
-<!-- TODO
-    <para>The configuration of the <command>bind10</command> daemon
-    is defined in the TODO configuration file, as described in the
-    <citerefentry><refentrytitle>TODO</refentrytitle><manvolnum>5</manvolnum></citerefentry>
-    manual page.</para>
--->
-
-  </refsect1>
-
-  <refsect1>
-    <title>ARGUMENTS</title>
-
-    <para>The arguments are as follows:</para>
-
-    <variablelist>
-
-      <varlistentry>
-        <term>
-          <option>-c</option> <replaceable>config-filename</replaceable>,
-          <option>--config-file</option> <replaceable>config-filename</replaceable>
-        </term>
-        <listitem>
-          <para>The configuration filename to use. Can be either absolute or
-          relative to data path. In case it is absolute, value of data path is
-          not considered.
-          Defaults to <filename>b10-config.db</filename>.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>
-          <option>--clear-config</option>
-        </term>
-        <listitem>
-	  <para>
-	    This will create a backup of the existing configuration
-	    file, remove it and start
-	    <refentrytitle>b10-cfgmgr</refentrytitle><manvolnum>8</manvolnum>
-            with the default configuration.
-	    The name of the backup file can be found in the logs
-	    (<varname>CFGMGR_BACKED_UP_CONFIG_FILE</varname>).
-	    (It will append a number to the backup filename if a
-	    previous backup file exists.)
-
-          </para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>
-          <option>--cmdctl-port</option> <replaceable>port</replaceable>
-        </term>
-        <listitem>
-	  <para>The <command>b10-cmdctl</command> daemon will listen
-	    on this port.
-	    (See
-	    <refentrytitle>b10-cmdctl</refentrytitle><manvolnum>8</manvolnum>
-            for the default.)
-          </para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term>
-          <option>-p</option> <replaceable>directory</replaceable>,
-          <option>--data-path</option> <replaceable>directory</replaceable>
-        </term>
-        <listitem>
-          <para>The path where BIND 10 programs look for various data files.
-	  Currently only
-	  <citerefentry><refentrytitle>b10-cfgmgr</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-	  uses it to locate the configuration file, but the usage
-	  might be extended for other programs and other types of
-	  files.</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>-m</option> <replaceable>file</replaceable>,
-           <option>--msgq-socket-file</option> <replaceable>file</replaceable></term>
-
-        <listitem>
-          <para>The UNIX domain socket file for the
-	    <citerefentry><refentrytitle>b10-msgq</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-            daemon to use.
-            The default is
-            <filename>/usr/local/var/bind10/msg_socket</filename>.
-<!-- @localstatedir@/@PACKAGE_NAME@/msg_socket -->
-           </para>
-         </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>-i</option>, <option>--no-kill</option></term>
-        <listitem>
-	  <para>When this option is passed, <command>bind10</command>
-	  does not send SIGTERM and SIGKILL signals to modules during
-	  shutdown. (This option was introduced for use during
-	  testing.)</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>-u</option> <replaceable>user</replaceable>, <option>--user</option> <replaceable>name</replaceable></term>
-<!-- TODO: example more detail. -->
-        <listitem>
-          <para>The username for <command>bind10</command> to run as.
-            <command>bind10</command> must be initially ran as the
-            root user to use this option.
-            The default is to run as the current user.</para>
-         </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>--pid-file</option> <replaceable>filename</replaceable></term>
-        <listitem>
-          <para>If defined, the PID of the <command>bind10</command> is stored
-             in this file.
-          </para>
-         </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>--pretty-name <replaceable>name</replaceable></option></term>
-
-        <listitem>
-          <para>The name this process should have in tools like
-          <command>ps</command> or <command>top</command>. This
-          is handy if you have multiple versions/installations
-          of <command>bind10</command>.
-<!-- TODO: only supported with setproctitle feature
-The default is the basename of ARG 0.
--->
-</para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>-v</option>, <option>--verbose</option></term>
-        <listitem>
-	  <para>Display more about what is going on for
-	  <command>bind10</command> and its child processes.</para>
-<!-- TODO: not true about all children yet -->
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><option>-w</option> <replaceable>wait_time</replaceable>, <option>--wait</option> <replaceable>wait_time</replaceable></term>
-        <listitem>
-	  <para>Sets the amount of time that BIND 10 will wait for
-	  the configuration manager (a key component of BIND 10)
-	  to initialize itself before abandoning the start up and
-	  terminating with an error.  The
-	  <replaceable>wait_time</replaceable> is specified in
-	  seconds and has a default value of 10.
-          </para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-  </refsect1>
-
-<!--
-TODO: configuration section
--->
-
-  <refsect1>
-    <title>CONFIGURATION AND COMMANDS</title>
-
-    <para>
-      The configuration provides settings for components for
-      <command>bind10</command> to manage under
-      <varname>/Boss/components/</varname>.
-      The default elements are:
-    </para>
-
-    <itemizedlist>
-
-      <listitem>
-        <para> <varname>/Boss/components/b10-cmdctl</varname> </para>
-      </listitem>
-
-      <listitem>
-        <para> <varname>/Boss/components/b10-stats</varname> </para>
-      </listitem>
-
-    </itemizedlist>
-
-    <para>
-      (Note that the startup of <command>b10-sockcreator</command>,
-      <command>b10-cfgmgr</command>, and <command>b10-msgq</command>
-      is not configurable. They are hardcoded and <command>bind10</command>
-      will not run without them.)
-    </para>
-
-    <para>
-      The named sets for components contain the following settings:
-    </para>
-
-    <variablelist>
-
-      <varlistentry>
-        <term><varname>address</varname></term>
-        <listitem>
-	  <para>The name used for communicating to it on the message
-	  bus.</para>
-<!-- NOTE: vorner said:
-These can be null, because the components are special ones, and
-the special class there already knows the address. It is (I hope)
-explained in the guide. I'd like to get rid of the special components
-sometime and I'd like it to teach to guess the address.
--->
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-        <term><varname>kind</varname></term>
-        <listitem>
-          <para>
-            This defines how required a component is.
-            The possible settings for <varname>kind</varname> are:
-            <varname>core</varname> (system won't start if it won't
-            start and <command>bind10</command> will shutdown if
-            a <quote>core</quote> component crashes),
-            <varname>dispensable</varname> (<command>bind10</command>
-            will restart failing component),
-            and
-	    <varname>needed</varname> (<command>bind10</command>
-	    will shutdown if component won't initially start, but
-	    if crashes later, it will attempt to restart).
-            This setting is required.
-<!-- TODO: formatting -->
-          </para>
-        </listitem>
-      </varlistentry>
-
-<!--
-TODO: currently not used
-      <varlistentry>
-        <term> <varname>params</varname> </term>
-        <listitem>
-          <para>
-list
-</para>
-        </listitem>
-      </varlistentry>
--->
-
-      <varlistentry>
-        <term> <varname>priority</varname> </term>
-        <listitem>
-          <para>This is an integer. <command>bind10</command>
-            will start the components with largest priority numbers first.
-          </para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-          <term> <varname>process</varname> </term>
-        <listitem>
-          <para>This is the filename of the executable to be started.
-            If not defined, then <command>bind10</command> will
-            use the component name instead.
-          </para>
-        </listitem>
-      </varlistentry>
-
-      <varlistentry>
-          <term> <varname>special</varname> </term>
-        <listitem>
-          <para>
-            This defines if the component is started a special, hardcoded
-            way.
-<!--
-TODO: document this ... but maybe some of these will be removed
-once we get rid of some using switches for components?
-
-auth
-cfgmgr
-cmdctl
-msgq
-resolver
-sockcreator
-xfrin
--->
-
-</para>
-        </listitem>
-      </varlistentry>
-
-    </variablelist>
-
-<!-- TODO: formating -->
-    <para>
-      The <varname>Boss</varname> configuration commands are:
-    </para>
-<!-- TODO: let's just let bind10 be known as bind10 and not Boss -->
-
-<!-- TODO -->
-<!--
-    <para>
-      <command>drop_socket</command>
-      This is an internal command and not exposed to the administrator.
-    </para>
--->
-
-<!-- TODO -->
-<!--
-    <para>
-      <command>get_socket</command>
-      This is an internal command and not exposed to the administrator.
-    </para>
--->
-
-    <para>
-      <command>getstats</command> tells <command>bind10</command>
-      to send its statistics data to the <command>b10-stats</command>
-      daemon.
-      This is an internal command and not exposed to the administrator.
-<!-- not defined in spec -->
-    </para>
-
-    <para>
-      <command>ping</command> is used to check the connection with the
-      <command>bind10</command> daemon.
-      It returns the text <quote>pong</quote>.
-    </para>
-
-    <para>
-      <command>show_processes</command> lists the current processes
-      managed by <command>bind10</command>.
-      The output is an array in JSON format containing the process
-      ID, the name for each and the address name used on each message bus.
-<!-- TODO: what is name? -->
-<!-- TODO: change to JSON object format? -->
-<!-- TODO: ticket #1406 -->
-    </para>
-
-    <para>
-      <command>shutdown</command> tells <command>bind10</command>
-      to shutdown the BIND 10 servers.
-      It will tell each process it manages to shutdown and, when
-      complete, <command>bind10</command> will exit.
-    </para>
-
-  </refsect1>
-
-  <refsect1>
-    <title>STATISTICS DATA</title>
-
-    <para>
-      The statistics data collected by the <command>b10-stats</command>
-      daemon for <quote>Boss</quote> include:
-    </para>
-
-    <variablelist>
-
-      <varlistentry>
-        <term>boot_time</term>
-        <listitem><para>
-          The date and time that the <command>bind10</command>
-          process started.
-          This is represented in ISO 8601 format.
-        </para></listitem>
-      </varlistentry>
-
-    </variablelist>
-
-  </refsect1>
-
-  <refsect1>
-    <title>FILES</title>
-    <para><filename>sockcreator-XXXXXX/sockcreator</filename>
-    &mdash;
-    the Unix Domain socket located in a temporary file directory for
-    <command>b10-sockcreator</command>
-<!--    <citerefentry><refentrytitle>b10-sockcreator</refentrytitle><manvolnum>8</manvolnum></citerefentry> -->
-    communication.
-    </para>
   </refsect1>
 
   <refsect1>
     <title>SEE ALSO</title>
     <para>
       <citerefentry>
-        <refentrytitle>bindctl</refentrytitle><manvolnum>1</manvolnum>
-      </citerefentry>,
-      <citerefentry>
-        <refentrytitle>b10-auth</refentrytitle><manvolnum>8</manvolnum>
-      </citerefentry>,
-      <citerefentry>
-        <refentrytitle>b10-cfgmgr</refentrytitle><manvolnum>8</manvolnum>
-      </citerefentry>,
-      <citerefentry>
-        <refentrytitle>b10-cmdctl</refentrytitle><manvolnum>8</manvolnum>
-      </citerefentry>,
-      <citerefentry>
-        <refentrytitle>b10-msgq</refentrytitle><manvolnum>8</manvolnum>
-      </citerefentry>,
-      <citerefentry>
-        <refentrytitle>b10-xfrin</refentrytitle><manvolnum>8</manvolnum>
-      </citerefentry>,
-      <citerefentry>
-        <refentrytitle>b10-xfrout</refentrytitle><manvolnum>8</manvolnum>
-      </citerefentry>,
-      <citerefentry>
-        <refentrytitle>b10-zonemgr</refentrytitle><manvolnum>8</manvolnum>
-      </citerefentry>,
-      <citerefentry>
-        <refentrytitle>b10-stats</refentrytitle><manvolnum>8</manvolnum>
+        <refentrytitle>b10-init</refentrytitle><manvolnum>1</manvolnum>
       </citerefentry>,
       <citetitle>BIND 10 Guide</citetitle>.
     </para>
   </refsect1>
-<!-- <citerefentry>
-        <refentrytitle>b10-sockcreator</refentrytitle><manvolnum>8</manvolnum>
-      </citerefentry>, -->
 
   <refsect1 id='history'><title>HISTORY</title>
-    <para>The development of <command>bind10</command>
-    was started in October 2009.</para>
-  </refsect1>
-
-  <refsect1>
-    <title>AUTHORS</title>
-    <para>
-      The <command>bind10</command>
-      daemon was initially designed by Shane Kerr of ISC.
+    <para>The <command>bind10</command> script was added in Januari 2013
     </para>
   </refsect1>
-</refentry><!--
- - Local variables:
- - mode: sgml
- - End:
--->
+
+</refentry>

+ 14 - 14
src/bin/bind10/creatorapi.txt

@@ -1,7 +1,7 @@
 Socket creator API
 ==================
 
-This API is between Boss and other modules to allow them requesting of sockets.
+This API is between Init and other modules to allow them requesting of sockets.
 For simplicity, we will use the socket creator for all (even non-privileged)
 ports for now, but we should have some function where we can abstract it later.
 
@@ -25,12 +25,12 @@ It seems we are stuck with current msgq for a while and there's a chance the
 new replacement will not be able to send sockets inbound. So, we need another
 channel.
 
-The boss will create a unix-domain socket and listen on it. When something
+b10-init will create a unix-domain socket and listen on it. When something
 requests a socket over the command channel and the socket is created, some kind
 of token is returned to the application (which will represent the future
 socket). The application then connects to the unix-domain socket, sends the
-token over the connection (so Boss will know which socket to send there, in case
-multiple applications ask for sockets simultaneously) and Boss sends the socket
+token over the connection (so Init will know which socket to send there, in case
+multiple applications ask for sockets simultaneously) and Init sends the socket
 in return.
 
 In theory, we could send the requests directly over the unix-domain
@@ -48,8 +48,8 @@ socket, but it has two disadvantages:
 
 Caching of sockets
 ------------------
-To allow sending the same socket to multiple application, the Boss process will
-hold a cache. Each socket that is created and sent is kept open in Boss and
+To allow sending the same socket to multiple application, the Init process will
+hold a cache. Each socket that is created and sent is kept open in Init and
 preserved there as well. A reference count is kept with each of them.
 
 When another application asks for the same socket, it is simply sent from the
@@ -60,14 +60,14 @@ command channel), the reference count can be decreased without problems. But
 when the application terminates or crashes, we need to decrease it as well.
 There's a problem, since we don't know which command channel connection (eg.
 lname) belongs to which PID. Furthermore, the applications don't need to be
-started by boss.
+started by b10-init.
 
 There are two possibilities:
 * Let the msgq send messages about disconnected clients (eg. group message to
   some name). This one is better if we want to migrate to dbus, since dbus
   already has this capability as well as sending the sockets inbound (at least it
   seems so on unix) and we could get rid of the unix-domain socket completely.
-* Keep the unix-domain connections open forever. Boss can remember which socket
+* Keep the unix-domain connections open forever. Init can remember which socket
   was sent to which connection and when the connection closes (because the
   application crashed), it can drop all the references on the sockets. This
   seems easier to implement.
@@ -75,12 +75,12 @@ There are two possibilities:
 The commands
 ------------
 * Command to release a socket. This one would have single parameter, the token
-  used to get the socket. After this, boss would decrease its reference count
-  and if it drops to zero, close its own copy of the socket. This should be used
-  when the module stops using the socket (and after closes it). The
-  library could remember the file-descriptor to token mapping (for
-  common applications that don't request the same socket multiple
-  times in parallel).
+  used to get the socket. After this, b10-init would decrease its reference
+  count and if it drops to zero, close its own copy of the socket. This
+  should be used when the module stops using the socket (and after closes
+  it). The library could remember the file-descriptor to token mapping (for
+  common applications that don't request the same socket multiple times in
+  parallel).
 * Command to request a socket. It would have parameters to specify which socket
   (IP address, address family, port) and how to allow sharing. Sharing would be
   one of:

+ 48 - 46
src/bin/bind10/bind10_src.py.in

@@ -16,7 +16,7 @@
 # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
 """
-This file implements the Boss of Bind (BoB, or bob) program.
+This file implements the b10-init program.
 
 Its purpose is to start up the BIND 10 system, and then manage the
 processes, by starting and stopping processes, plus restarting
@@ -30,7 +30,7 @@ The Python subprocess module is used for starting processes, but
 because this is not efficient for managing groups of processes,
 SIGCHLD signals are caught and processed using the signal module.
 
-Most of the logic is contained in the BoB class. However, since Python
+Most of the logic is contained in the Init class. However, since Python
 requires that signal processing happen in the main thread, we do
 signal handling outside of that class, in the code running for
 __main__.
@@ -43,11 +43,14 @@ import os
 # from a directory relative to that, otherwise we use the ones
 # installed on the system
 if "B10_FROM_SOURCE" in os.environ:
-    SPECFILE_LOCATION = os.environ["B10_FROM_SOURCE"] + "/src/bin/bind10/bob.spec"
+    SPECFILE_LOCATION = os.environ["B10_FROM_SOURCE"] +\
+                        "/src/bin/bind10/init.spec"
 else:
     PREFIX = "@prefix@"
     DATAROOTDIR = "@datarootdir@"
-    SPECFILE_LOCATION = "@datadir@/@PACKAGE@/bob.spec".replace("${datarootdir}", DATAROOTDIR).replace("${prefix}", PREFIX)
+    SPECFILE_LOCATION = "@datadir@/@PACKAGE@/init.spec"\
+                         .replace("${datarootdir}", DATAROOTDIR)\
+                         .replace("${prefix}", PREFIX)
 
 import subprocess
 import signal
@@ -69,15 +72,15 @@ import isc.cc
 import isc.util.process
 import isc.net.parse
 import isc.log
-from isc.log_messages.bind10_messages import *
+from isc.log_messages.init_messages import *
 import isc.bind10.component
 import isc.bind10.special_component
 import isc.bind10.socket_cache
 import libutil_io_python
 import tempfile
 
-isc.log.init("b10-boss", buffer=True)
-logger = isc.log.Logger("boss")
+isc.log.init("b10-init", buffer=True)
+logger = isc.log.Logger("init")
 
 # Pending system-wide debug level definitions, the ones we
 # use here are hardcoded for now
@@ -93,14 +96,14 @@ CREATOR_SOCKET_ERROR = 2
 CREATOR_SHARE_ERROR = 3
 
 # Assign this process some longer name
-isc.util.process.rename(sys.argv[0])
+isc.util.process.rename()
 
 # This is the version that gets displayed to the user.
 # The VERSION string consists of the module name, the module version
 # number, and the overall BIND 10 version number (set in configure.ac).
 VERSION = "bind10 20110223 (BIND 10 @PACKAGE_VERSION@)"
 
-# This is for boot_time of Boss
+# This is for boot_time of Init
 _BASETIME = time.gmtime()
 
 # Detailed error message commonly used on startup failure, possibly due to
@@ -147,7 +150,7 @@ class ProcessInfo:
         """Function used before running a program that needs to run as a
         different user."""
         # First, put us into a separate process group so we don't get
-        # SIGINT signals on Ctrl-C (the boss will shut everthing down by
+        # SIGINT signals on Ctrl-C (b10-init will shut everthing down by
         # other means).
         os.setpgrp()
 
@@ -161,7 +164,7 @@ class ProcessInfo:
         else:
             spawn_stderr = None
         # Environment variables for the child process will be a copy of those
-        # of the boss process with any additional specific variables given
+        # of the b10-init process with any additional specific variables given
         # on construction (self.env).
         spawn_env = copy.deepcopy(os.environ)
         spawn_env.update(self.env)
@@ -187,18 +190,18 @@ class CChannelConnectError(Exception): pass
 
 class ProcessStartError(Exception): pass
 
-class BoB:
-    """Boss of BIND class."""
+class Init:
+    """Init of BIND class."""
 
     def __init__(self, msgq_socket_file=None, data_path=None,
                  config_filename=None, clear_config=False,
                  verbose=False, nokill=False, setuid=None, setgid=None,
                  username=None, cmdctl_port=None, wait_time=10):
         """
-            Initialize the Boss of BIND. This is a singleton (only one can run).
+            Initialize the Init of BIND. This is a singleton (only one can run).
 
             The msgq_socket_file specifies the UNIX domain socket file that the
-            msgq process listens on.  If verbose is True, then the boss reports
+            msgq process listens on.  If verbose is True, then b10-init reports
             what it is doing.
 
             Data path and config filename are passed through to config manager
@@ -207,7 +210,7 @@ class BoB:
             The cmdctl_port is passed to cmdctl and specify on which port it
             should listen.
 
-            wait_time controls the amount of time (in seconds) that Boss waits
+            wait_time controls the amount of time (in seconds) that Init waits
             for selected processes to initialize before continuing with the
             initialization.  Currently this is only the configuration manager.
         """
@@ -287,7 +290,7 @@ class BoB:
         for comp in self.__core_components:
             if comp in comps:
                 raise Exception(comp + " is core component managed by " +
-                                "bind10 boss, do not set it")
+                                "b10-init, do not set it")
             comps[comp] = self.__core_components[comp]
         # Update the configuration
         self._component_configurator.reconfigure(comps)
@@ -313,7 +316,7 @@ class BoB:
                 # We use one-shot logger after setuid here.  This will
                 # detect any permission issue regarding logging due to the
                 # result of setuid at the earliest opportunity.
-                isc.log.Logger("boss").info(BIND10_SETUID, self.__uid)
+                isc.log.Logger("b10-init").info(BIND10_SETUID, self.__uid)
         except Exception as ex:
             raise ChangeUserError('failed to change user: ' + str(ex))
 
@@ -390,7 +393,7 @@ class BoB:
 
     def _read_bind10_config(self):
         """
-            Reads the parameters associated with the BoB module itself.
+            Reads the parameters associated with the Init module itself.
 
             This means the list of components we should start now.
 
@@ -398,7 +401,7 @@ class BoB:
             it stays because of historical reasons and because the tests
             replace the method sometimes.
         """
-        logger.info(BIND10_READING_BOSS_CONFIGURATION)
+        logger.info(BIND10_READING_INIT_CONFIGURATION)
 
         config_data = self.ccs.get_full_config()
         self.__propagate_component_config(config_data['components'])
@@ -439,7 +442,7 @@ class BoB:
 
     def process_running(self, msg, who):
         """
-            Some processes return a message to the Boss after they have
+            Some processes return a message to the Init after they have
             started to indicate that they are running.  The form of the
             message is a dictionary with contents {"running:", "<process>"}.
             This method checks the passed message and returns True if the
@@ -505,7 +508,7 @@ class BoB:
         # Subscribe to the message queue.  The only messages we expect to receive
         # on this channel are once relating to process startup.
         if self.cc_session is not None:
-            self.cc_session.group_subscribe("Boss")
+            self.cc_session.group_subscribe("Init")
 
         return msgq_proc
 
@@ -578,7 +581,7 @@ class BoB:
 
     def register_process(self, pid, component):
         """
-        Put another process into boss to watch over it.  When the process
+        Put another process into b10-init to watch over it.  When the process
         dies, the component.failed() is called with the exit code.
 
         It is expected the info is a isc.bind10.component.BaseComponent
@@ -661,7 +664,7 @@ class BoB:
         # inside the configurator.
         self.start_ccsession(self.c_channel_env)
 
-        # Extract the parameters associated with Bob.  This can only be
+        # Extract the parameters associated with Init.  This can only be
         # done after the CC Session is started.  Note that the logging
         # configuration may override the "-v" switch set on the command line.
         self._read_bind10_config()
@@ -670,7 +673,7 @@ class BoB:
 
     def startup(self):
         """
-            Start the BoB instance.
+            Start the Init instance.
 
             Returns None if successful, otherwise an string describing the
             problem.
@@ -720,7 +723,7 @@ class BoB:
 
     def component_shutdown(self, exitcode=0):
         """
-        Stop the Boss instance from a components' request. The exitcode
+        Stop the Init instance from a components' request. The exitcode
         indicates the desired exit code.
 
         If we did not start yet, it raises an exception, which is meant
@@ -737,11 +740,11 @@ class BoB:
             self.runnable = False
 
     def shutdown(self):
-        """Stop the BoB instance."""
+        """Stop the Init instance."""
         logger.info(BIND10_SHUTDOWN)
         # If ccsession is still there, inform rest of the system this module
         # is stopping. Since everything will be stopped shortly, this is not
-        # really necessary, but this is done to reflect that boss is also
+        # really necessary, but this is done to reflect that b10-init is also
         # 'just' a module.
         self.ccs.send_stopping()
 
@@ -943,7 +946,7 @@ class BoB:
 
     def set_creator(self, creator):
         """
-        Registeres a socket creator into the boss. The socket creator is not
+        Registeres a socket creator into the b10-init. The socket creator is not
         used directly, but through a cache. The cache is created in this
         method.
 
@@ -1078,7 +1081,7 @@ class BoB:
 
 # global variables, needed for signal handlers
 options = None
-boss_of_bind = None
+b10_init = None
 
 def reaper(signal_number, stack_frame):
     """A child process has died (SIGCHLD received)."""
@@ -1099,10 +1102,10 @@ def get_signame(signal_number):
 def fatal_signal(signal_number, stack_frame):
     """We need to exit (SIGINT or SIGTERM received)."""
     global options
-    global boss_of_bind
+    global b10_init
     logger.info(BIND10_RECEIVED_SIGNAL, get_signame(signal_number))
     signal.signal(signal.SIGCHLD, signal.SIG_DFL)
-    boss_of_bind.runnable = False
+    b10_init.runnable = False
 
 def process_rename(option, opt_str, value, parser):
     """Function that renames the process if it is requested by a option."""
@@ -1224,7 +1227,7 @@ def remove_lock_files():
 
 def main():
     global options
-    global boss_of_bind
+    global b10_init
     # Enforce line buffering on stdout, even when not a TTY
     sys.stdout = io.TextIOWrapper(sys.stdout.detach(), line_buffering=True)
 
@@ -1286,33 +1289,32 @@ def main():
     signal.signal(signal.SIGPIPE, signal.SIG_IGN)
 
     try:
-        # Go bob!
-        boss_of_bind = BoB(options.msgq_socket_file, options.data_path,
-                           options.config_file, options.clear_config,
-                           options.verbose, options.nokill,
-                           setuid, setgid, username, options.cmdctl_port,
-                           options.wait_time)
-        startup_result = boss_of_bind.startup()
+        b10_init = Init(options.msgq_socket_file, options.data_path,
+                        options.config_file, options.clear_config,
+                        options.verbose, options.nokill,
+                        setuid, setgid, username, options.cmdctl_port,
+                        options.wait_time)
+        startup_result = b10_init.startup()
         if startup_result:
             logger.fatal(BIND10_STARTUP_ERROR, startup_result)
             sys.exit(1)
-        boss_of_bind.init_socket_srv()
+        b10_init.init_socket_srv()
         logger.info(BIND10_STARTUP_COMPLETE)
         dump_pid(options.pid_file)
 
         # Let it run
-        boss_of_bind.run(wakeup_pipe[0])
+        b10_init.run(wakeup_pipe[0])
 
         # shutdown
         signal.signal(signal.SIGCHLD, signal.SIG_DFL)
-        boss_of_bind.shutdown()
+        b10_init.shutdown()
     finally:
         # Clean up the filesystem
         unlink_pid_file(options.pid_file)
         remove_lock_files()
-        if boss_of_bind is not None:
-            boss_of_bind.remove_socket_srv()
-    sys.exit(boss_of_bind.exitcode)
+        if b10_init is not None:
+            b10_init.remove_socket_srv()
+    sys.exit(b10_init.exitcode)
 
 if __name__ == "__main__":
     main()

+ 3 - 3
src/bin/bind10/bob.spec

@@ -1,7 +1,7 @@
 {
   "module_spec": {
-    "module_name": "Boss",
-    "module_description": "Master process",
+    "module_name": "Init",
+    "module_description": "Init process",
     "config_data": [
       {
         "item_name": "components",
@@ -66,7 +66,7 @@
       },
       {
         "command_name": "ping",
-        "command_description": "Ping the boss process",
+        "command_description": "Ping the b10-init process",
         "command_args": []
       },
       {

+ 55 - 55
src/bin/bind10/bind10_messages.mes

@@ -16,12 +16,12 @@
 # of the xfrin messages python module.
 
 % BIND10_CHECK_MSGQ_ALREADY_RUNNING checking if msgq is already running
-The boss process is starting up and will now check if the message bus
+The b10-init process is starting up and will now check if the message bus
 daemon is already running. If so, it will not be able to start, as it
 needs a dedicated message bus.
 
 % BIND10_COMPONENT_FAILED component %1 (pid %2) failed: %3
-The process terminated, but the bind10 boss didn't expect it to, which means
+The process terminated, but b10-init didn't expect it to, which means
 it must have failed.
 
 % BIND10_COMPONENT_RESTART component %1 is about to restart
@@ -30,7 +30,7 @@ as flawless service as possible, but it should be investigated what happened,
 as it could happen again.
 
 % BIND10_COMPONENT_START component %1 is starting
-The named component is about to be started by the boss process.
+The named component is about to be started by the b10-init process.
 
 % BIND10_COMPONENT_START_EXCEPTION component %1 failed to start: %2
 An exception (mentioned in the message) happened during the startup of the
@@ -38,7 +38,7 @@ named component. The componet is not considered started and further actions
 will be taken about it.
 
 % BIND10_COMPONENT_STOP component %1 is being stopped
-A component is about to be asked to stop willingly by the boss.
+A component is about to be asked to stop willingly by the b10-init.
 
 % BIND10_COMPONENT_UNSATISFIED component %1 is required to run and failed
 A component failed for some reason (see previous messages). It is either a core
@@ -59,31 +59,31 @@ will be propagated.
 A different configuration of which components should be running is being
 installed. All components that are no longer needed will be stopped and
 newly introduced ones started. This happens at startup, when the configuration
-is read the first time, or when an operator changes configuration of the boss.
+is read the first time, or when an operator changes configuration of the b10-init.
 
 % BIND10_CONFIGURATOR_RUN running plan of %1 tasks
 A debug message. The configurator is about to execute a plan of actions it
 computed previously.
 
 % BIND10_CONFIGURATOR_START bind10 component configurator is starting up
-The part that cares about starting and stopping the right component from the
-boss process is starting up. This happens only once at the startup of the
-boss process. It will start the basic set of processes now (the ones boss
-needs to read the configuration), the rest will be started after the
-configuration is known.
+The part that cares about starting and stopping the right component from
+the b10-init process is starting up. This happens only once at the startup
+of the b10-init process. It will start the basic set of processes now (the
+ones b10-init needs to read the configuration), the rest will be started
+after the configuration is known.
 
 % BIND10_CONFIGURATOR_STOP bind10 component configurator is shutting down
-The part that cares about starting and stopping processes in the boss is
+The part that cares about starting and stopping processes in the b10-init is
 shutting down. All started components will be shut down now (more precisely,
 asked to terminate by their own, if they fail to comply, other parts of
-the boss process will try to force them).
+the b10-init process will try to force them).
 
 % BIND10_CONFIGURATOR_TASK performing task %1 on %2
 A debug message. The configurator is about to perform one task of the plan it
 is currently executing on the named component.
 
 % BIND10_CONNECTING_TO_CC_FAIL failed to connect to configuration/command channel; try -v to see output from msgq
-The boss process tried to connect to the communication channel for
+The b10-init process tried to connect to the communication channel for
 commands and configuration updates during initialization, but it
 failed.  This is a fatal startup error, and process will soon
 terminate after some cleanup.  There can be several reasons for the
@@ -98,15 +98,15 @@ you specify the -u option to change process users, the directory must
 be writable for that user.
 
 % BIND10_INVALID_STATISTICS_DATA invalid specification of statistics data specified
-An error was encountered when the boss module specified
-statistics data which is invalid for the boss specification file.
+An error was encountered when the b10-init module specified
+statistics data which is invalid for the b10-init specification file.
 
 % BIND10_INVALID_USER invalid user: %1
-The boss process was started with the -u option, to drop root privileges
+The b10-init process was started with the -u option, to drop root privileges
 and continue running as the specified user, but the user is unknown.
 
 % BIND10_KILLING_ALL_PROCESSES killing all started processes
-The boss module was not able to start every process it needed to start
+The b10-init module was not able to start every process it needed to start
 during startup, and will now kill the processes that did get started.
 
 % BIND10_LOST_SOCKET_CONSUMER consumer %1 of sockets disconnected, considering all its sockets closed
@@ -136,28 +136,28 @@ This indicates a process started previously terminated. The process id
 and component owning the process are indicated, as well as the exit code.
 This doesn't distinguish if the process was supposed to terminate or not.
 
-% BIND10_READING_BOSS_CONFIGURATION reading boss configuration
-The boss process is starting up, and will now process the initial
+% BIND10_READING_INIT_CONFIGURATION reading b10-init configuration
+The b10-init process is starting up, and will now process the initial
 configuration, as received from the configuration manager.
 
 % BIND10_RECEIVED_COMMAND received command: %1
-The boss module received a command and shall now process it. The command
+The b10-init module received a command and shall now process it. The command
 is printed.
 
 % BIND10_RECEIVED_NEW_CONFIGURATION received new configuration: %1
-The boss module received a configuration update and is going to apply
+The b10-init module received a configuration update and is going to apply
 it now. The new configuration is printed.
 
 % BIND10_RECEIVED_SIGNAL received signal %1
-The boss module received the given signal.
+The b10-init module received the given signal.
 
 % BIND10_RESTART_COMPONENT_SKIPPED Skipped restarting a component %1
-The boss module tried to restart a component after it failed (crashed)
-unexpectedly, but the boss then found that the component had been removed
+The b10-init module tried to restart a component after it failed (crashed)
+unexpectedly, but the b10-init then found that the component had been removed
 from its local configuration of components to run.  This is an unusual
 situation but can happen if the administrator removes the component from
 the configuration after the component's crash and before the restart time.
-The boss module simply skipped restarting that module, and the whole system
+The b10-init module simply skipped restarting that module, and the whole system
 went back to the expected state (except that the crash itself is likely
 to be a bug).
 
@@ -175,51 +175,51 @@ should not happen under normal circumstances and is considered fatal,
 so BIND 10 will now shut down. The specific error is printed.
 
 % BIND10_SEND_SIGKILL sending SIGKILL to %1 (PID %2)
-The boss module is sending a SIGKILL signal to the given process.
+The b10-init module is sending a SIGKILL signal to the given process.
 
 % BIND10_SEND_SIGNAL_FAIL sending %1 to %2 (PID %3) failed: %4
-The boss module sent a single (either SIGTERM or SIGKILL) to a process,
+The b10-init module sent a single (either SIGTERM or SIGKILL) to a process,
 but it failed due to some system level error.  There are two major cases:
-the target process has already terminated but the boss module had sent
+the target process has already terminated but the b10-init module had sent
 the signal before it noticed the termination.  In this case an error
 message should indicate something like "no such process".  This can be
-safely ignored.  The other case is that the boss module doesn't have
+safely ignored.  The other case is that the b10-init module doesn't have
 the privilege to send a signal to the process.  It can typically
-happen when the boss module started as a privileged process, spawned a
+happen when the b10-init module started as a privileged process, spawned a
 subprocess, and then dropped the privilege.  It includes the case for
-the socket creator when the boss process runs with the -u command line
-option.  In this case, the boss module simply gives up to terminate
+the socket creator when the b10-init process runs with the -u command line
+option.  In this case, the b10-init module simply gives up to terminate
 the process explicitly because it's unlikely to succeed by keeping
 sending the signal.  Although the socket creator is implemented so
-that it will terminate automatically when the boss process exits
+that it will terminate automatically when the b10-init process exits
 (and that should be the case for any other future process running with
 a higher privilege), but it's recommended to check if there's any
 remaining BIND 10 process if this message is logged.  For all other
-cases, the boss module will keep sending the signal until it confirms
+cases, the b10-init module will keep sending the signal until it confirms
 all child processes terminate.  Although unlikely, this could prevent
-the boss module from exiting, just keeping sending the signals.  So,
+the b10-init module from exiting, just keeping sending the signals.  So,
 again, it's advisable to check if it really terminates when this
 message is logged.
 
 % BIND10_SEND_SIGTERM sending SIGTERM to %1 (PID %2)
-The boss module is sending a SIGTERM signal to the given process.
+The b10-init module is sending a SIGTERM signal to the given process.
 
 % BIND10_SETGID setting GID to %1
-The boss switches the process group ID to the given value.  This happens
+The b10-init switches the process group ID to the given value.  This happens
 when BIND 10 starts with the -u option, and the group ID will be set to
 that of the specified user.
 
 % BIND10_SETUID setting UID to %1
-The boss switches the user it runs as to the given UID.
+The b10-init switches the user it runs as to the given UID.
 
 % BIND10_SHUTDOWN stopping the server
-The boss process received a command or signal telling it to shut down.
+The b10-init process received a command or signal telling it to shut down.
 It will send a shutdown command to each process. The processes that do
 not shut down will then receive a SIGTERM signal. If that doesn't work,
 it shall send SIGKILL signals to the processes still alive.
 
 % BIND10_SHUTDOWN_COMPLETE all processes ended, shutdown complete
-All child processes have been stopped, and the boss process will now
+All child processes have been stopped, and the b10-init process will now
 stop itself.
 
 % BIND10_SOCKCREATOR_BAD_CAUSE unknown error cause from socket creator: %1
@@ -227,7 +227,7 @@ The socket creator reported an error when creating a socket. But the function
 which failed is unknown (not one of 'S' for socket or 'B' for bind).
 
 % BIND10_SOCKCREATOR_BAD_RESPONSE unknown response for socket request: %1
-The boss requested a socket from the creator, but the answer is unknown. This
+The b10-init requested a socket from the creator, but the answer is unknown. This
 looks like a programmer error.
 
 % BIND10_SOCKCREATOR_EOF eof while expecting data from socket creator
@@ -235,7 +235,7 @@ There should be more data from the socket creator, but it closed the socket.
 It probably crashed.
 
 % BIND10_SOCKCREATOR_INIT initializing socket creator parser
-The boss module initializes routines for parsing the socket creator
+The b10-init module initializes routines for parsing the socket creator
 protocol.
 
 % BIND10_SOCKCREATOR_KILL killing the socket creator
@@ -243,7 +243,7 @@ The socket creator is being terminated the aggressive way, by sending it
 sigkill. This should not happen usually.
 
 % BIND10_SOCKCREATOR_TERMINATE terminating socket creator
-The boss module sends a request to terminate to the socket creator.
+The b10-init module sends a request to terminate to the socket creator.
 
 % BIND10_SOCKCREATOR_TRANSPORT_ERROR transport error when talking to the socket creator: %1
 Either sending or receiving data from the socket creator failed with the given
@@ -259,7 +259,7 @@ The socket creator failed to create the requested socket. It failed on the
 indicated OS API function with given error.
 
 % BIND10_SOCKET_GET requesting socket [%1]:%2 of type %3 from the creator
-The boss forwards a request for a socket to the socket creator.
+The b10-init forwards a request for a socket to the socket creator.
 
 % BIND10_STARTED_CC started configuration/command session
 Debug message given when BIND 10 has successfully started the object that
@@ -279,14 +279,14 @@ Informational message given when BIND 10 is starting the session object
 that handles configuration and commands.
 
 % BIND10_STARTING_PROCESS starting process %1
-The boss module is starting the given process.
+The b10-init module is starting the given process.
 
 % BIND10_STARTING_PROCESS_PORT starting process %1 (to listen on port %2)
-The boss module is starting the given process, which will listen on the
+The b10-init module is starting the given process, which will listen on the
 given port number.
 
 % BIND10_STARTING_PROCESS_PORT_ADDRESS starting process %1 (to listen on %2#%3)
-The boss module is starting the given process, which will listen on the
+The b10-init module is starting the given process, which will listen on the
 given address and port number (written as <address>#<port>).
 
 % BIND10_STARTUP_COMPLETE BIND 10 started
@@ -298,30 +298,30 @@ shown, and BIND10 will now shut down.
 
 % BIND10_STARTUP_UNEXPECTED_MESSAGE unrecognised startup message %1
 During the startup process, a number of messages are exchanged between the
-Boss process and the processes it starts.  This error is output when a
-message received by the Boss process is recognised as being of the
+Init process and the processes it starts.  This error is output when a
+message received by the Init process is recognised as being of the
 correct format but is unexpected.  It may be that processes are starting
 of sequence.
 
 % BIND10_STARTUP_UNRECOGNISED_MESSAGE unrecognised startup message %1
 During the startup process, a number of messages are exchanged between the
-Boss process and the processes it starts.  This error is output when a
-message received by the Boss process is not recognised.
+Init process and the processes it starts.  This error is output when a
+message received by the Init process is not recognised.
 
 % BIND10_STOP_PROCESS asking %1 to shut down
-The boss module is sending a shutdown command to the given module over
+The b10-init module is sending a shutdown command to the given module over
 the message channel.
 
 % BIND10_UNKNOWN_CHILD_PROCESS_ENDED unknown child pid %1 exited
 An unknown child process has exited. The PID is printed, but no further
-action will be taken by the boss process.
+action will be taken by the b10-init process.
 
 % BIND10_WAIT_CFGMGR waiting for configuration manager process to initialize
 The configuration manager process is so critical to operation of BIND 10
-that after starting it, the Boss module will wait for it to initialize
+that after starting it, the Init module will wait for it to initialize
 itself before continuing.  This debug message is produced during the
 wait and may be output zero or more times depending on how long it takes
-the configuration manager to start up.  The total length of time Boss
+the configuration manager to start up.  The total length of time Init
 will wait for the configuration manager before reporting an error is
 set with the command line --wait switch, which has a default value of
 ten seconds.

+ 1 - 1
src/bin/bind10/run_bind10.sh.in

@@ -45,5 +45,5 @@ export B10_FROM_BUILD
 BIND10_MSGQ_SOCKET_FILE=@abs_top_builddir@/msgq_socket
 export BIND10_MSGQ_SOCKET_FILE
 
-exec ${PYTHON_EXEC} -O ${BIND10_PATH}/bind10 "$@"
+exec ${BIND10_PATH}/b10-init "$@"
 

+ 50 - 50
src/bin/bind10/tests/args_test.py

@@ -1,5 +1,5 @@
 """
-This program tests the boss process to make sure that it runs while
+This program tests the b10-init process to make sure that it runs while
 dropping permissions. It must be run as a user that can set permission.
 """
 import unittest
@@ -17,69 +17,69 @@ SUID_USER="shane"
 BIND10_EXE="../run_bind10.sh"
 TIMEOUT=3
 
-class TestBossArgs(unittest.TestCase):
-    def _waitForString(self, bob, s):
+class TestInitArgs(unittest.TestCase):
+    def _waitForString(self, init, s):
         found_string = False
         start_time = time.time()
         while time.time() < start_time + TIMEOUT:
-            (r,w,x) = select.select((bob.stdout,), (), (), TIMEOUT) 
-            if bob.stdout in r:
-                s = bob.stdout.readline()
+            (r,w,x) = select.select((init.stdout,), (), (), TIMEOUT)
+            if init.stdout in r:
+                s = init.stdout.readline()
                 if s == '':
                     break
-                if s.startswith(s): 
+                if s.startswith(s):
                     found_string = True
                     break
         return found_string
 
     def testNoArgs(self):
         """Run bind10 without any arguments"""
-        bob = subprocess.Popen(args=(BIND10_EXE,),
-                               stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-        started_ok = self._waitForString(bob, '[bind10] BIND 10 started')
+        init = subprocess.Popen(args=(BIND10_EXE,),
+                                stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        started_ok = self._waitForString(init, '[bind10] BIND 10 started')
         time.sleep(0.1)
-        bob.terminate()
-        bob.wait()
+        init.terminate()
+        init.wait()
         self.assertTrue(started_ok)
 
     def testBadOption(self):
         """Run bind10 with a bogus option"""
-        bob = subprocess.Popen(args=(BIND10_EXE, "--badoption"),
-                               stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-        failed = self._waitForString(bob, 'bind10: error: no such option: --badoption')
+        init = subprocess.Popen(args=(BIND10_EXE, "--badoption"),
+                                stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        failed = self._waitForString(init, 'bind10: error: no such option: --badoption')
         time.sleep(0.1)
-        bob.terminate()
-        self.assertTrue(bob.wait() == 2)
+        init.terminate()
+        self.assertTrue(init.wait() == 2)
         self.assertTrue(failed)
 
     def testArgument(self):
         """Run bind10 with an argument (this is not allowed)"""
-        bob = subprocess.Popen(args=(BIND10_EXE, "argument"),
-                               stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-        failed = self._waitForString(bob, 'Usage: bind10 [options]')
+        init = subprocess.Popen(args=(BIND10_EXE, "argument"),
+                                stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        failed = self._waitForString(init, 'Usage: bind10 [options]')
         time.sleep(0.1)
-        bob.terminate()
-        self.assertTrue(bob.wait() == 1)
+        init.terminate()
+        self.assertTrue(init.wait() == 1)
         self.assertTrue(failed)
 
     def testBadUser(self):
         """Run bind10 with a bogus user"""
-        bob = subprocess.Popen(args=(BIND10_EXE, "-u", "bogus_user"),
-                               stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-        failed = self._waitForString(bob, "bind10: invalid user: 'bogus_user'")
+        init = subprocess.Popen(args=(BIND10_EXE, "-u", "bogus_user"),
+                                stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        failed = self._waitForString(init, "bind10: invalid user: 'bogus_user'")
         time.sleep(0.1)
-        bob.terminate()
-        self.assertTrue(bob.wait() == 1)
+        init.terminate()
+        self.assertTrue(init.wait() == 1)
         self.assertTrue(failed)
 
     def testBadUid(self):
         """Run bind10 with a bogus user ID"""
-        bob = subprocess.Popen(args=(BIND10_EXE, "-u", "999999999"),
-                               stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-        failed = self._waitForString(bob, "bind10: invalid user: '999999999'")
+        init = subprocess.Popen(args=(BIND10_EXE, "-u", "999999999"),
+                                stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        failed = self._waitForString(init, "bind10: invalid user: '999999999'")
         time.sleep(0.1)
-        bob.terminate()
-        self.assertTrue(bob.wait() == 1)
+        init.terminate()
+        self.assertTrue(init.wait() == 1)
         self.assertTrue(failed)
 
     def testFailSetUser(self):
@@ -90,12 +90,12 @@ class TestBossArgs(unittest.TestCase):
         if os.getuid() == 0:
             self.skipTest("test must not be run as root (uid is 0)")
         # XXX: we depend on the "nobody" user
-        bob = subprocess.Popen(args=(BIND10_EXE, "-u", "nobody"),
-                               stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-        failed = self._waitForString(bob, "[bind10] Error on startup: Unable to start b10-msgq; Unable to change to user nobody")
+        init = subprocess.Popen(args=(BIND10_EXE, "-u", "nobody"),
+                                stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        failed = self._waitForString(init, "[bind10] Error on startup: Unable to start b10-msgq; Unable to change to user nobody")
         time.sleep(0.1)
-        bob.terminate()
-        self.assertTrue(bob.wait() == 1)
+        init.terminate()
+        self.assertTrue(init.wait() == 1)
         self.assertTrue(failed)
 
     def testSetUser(self):
@@ -108,9 +108,9 @@ class TestBossArgs(unittest.TestCase):
         if os.geteuid() != 0:
             self.skipTest("test must run as root (euid is not 0)")
 
-        bob = subprocess.Popen(args=(BIND10_EXE, "-u", SUID_USER),
-                               stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-        started_ok = self._waitForString(bob, '[bind10] BIND 10 started')
+        init = subprocess.Popen(args=(BIND10_EXE, "-u", SUID_USER),
+                                stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+        started_ok = self._waitForString(init, '[bind10] BIND 10 started')
         self.assertTrue(started_ok)
         ps = subprocess.Popen(args=("ps", "axo", "user,pid"),
                               stdout=subprocess.PIPE)
@@ -120,22 +120,22 @@ class TestBossArgs(unittest.TestCase):
             s = ps.stdout.readline()
             if s == '': break
             (user, pid) = s.split()
-            if int(pid) == bob.pid:
+            if int(pid) == init.pid:
                 ps_user = user.decode()
                 break
         self.assertTrue(ps_user is not None)
         self.assertTrue(ps_user == SUID_USER)
         time.sleep(0.1)
-        bob.terminate()
-        x = bob.wait()
-        self.assertTrue(bob.wait() == 0)
+        init.terminate()
+        x = init.wait()
+        self.assertTrue(init.wait() == 0)
 
     def testPrettyName(self):
         """Try the --pretty-name option."""
-        CMD_PRETTY_NAME = b'bob-name-test'
-        bob = subprocess.Popen(args=(BIND10_EXE, '--pretty-name',
+        CMD_PRETTY_NAME = b'init-name-test'
+        init = subprocess.Popen(args=(BIND10_EXE, '--pretty-name',
             CMD_PRETTY_NAME), stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
-        started_ok = self._waitForString(bob, '[bind10] BIND 10 started')
+        started_ok = self._waitForString(init, '[bind10] BIND 10 started')
         self.assertTrue(started_ok)
         ps = subprocess.Popen(args=("ps", "axo", "pid,comm"),
                               stdout=subprocess.PIPE)
@@ -145,13 +145,13 @@ class TestBossArgs(unittest.TestCase):
             s = ps.stdout.readline()
             if s == '': break
             (pid,comm) = s.split(None, 1)
-            if int(pid) == bob.pid:
+            if int(pid) == init.pid:
                 command = comm
                 break
         self.assertEqual(command, CMD_PRETTY_NAME + b'\n')
         time.sleep(0.1)
-        bob.terminate()
-        bob.wait()
+        init.terminate()
+        init.wait()
 
 if __name__ == '__main__':
     unittest.main()

File diff suppressed because it is too large
+ 540 - 536
src/bin/bind10/tests/bind10_test.py.in


+ 1 - 1
src/bin/bindctl/bindctl.xml

@@ -218,7 +218,7 @@
        <command>config</command> for Configuration commands.
 <!-- TODO: or is config from the cfgmgr module? -->
        Additional modules may be available, such as
-       <command>Boss</command>, <command>Xfrin</command>, and
+       <command>Init</command>, <command>Xfrin</command>, and
        <command>Auth</command>.
      </para>
 

+ 1 - 1
src/bin/bindctl/bindctl_main.py.in

@@ -34,7 +34,7 @@ isc.util.process.rename()
 # number, and the overall BIND 10 version number (set in configure.ac).
 VERSION = "bindctl 20110217 (BIND 10 @PACKAGE_VERSION@)"
 
-DEFAULT_IDENTIFIER_DESC = "The identifier specifies the config item. Child elements are separated with the '/' character. List indices can be specified with '[i]', where i is an integer specifying the index, starting with 0. Examples: 'Boss/start_auth', 'Recurse/listen_on[0]/address'. If no identifier is given, shows the item at the current location."
+DEFAULT_IDENTIFIER_DESC = "The identifier specifies the config item. Child elements are separated with the '/' character. List indices can be specified with '[i]', where i is an integer specifying the index, starting with 0. Examples: 'Init/start_auth', 'Auth/listen_on[0]/address'. If no identifier is given, shows the item at the current location."
 
 def prepare_config_commands(tool):
     '''Prepare fixed commands for local configuration editing'''

+ 12 - 12
src/bin/bindctl/command_sets.py

@@ -35,21 +35,21 @@ command_sets = {
         'commands':
             [
             '!echo adding Authoritative server component',
-            'config add /Boss/components b10-auth',
-            'config set /Boss/components/b10-auth/kind needed',
-            'config set /Boss/components/b10-auth/special auth',
+            'config add /Init/components b10-auth',
+            'config set /Init/components/b10-auth/kind needed',
+            'config set /Init/components/b10-auth/special auth',
             '!echo adding Xfrin component',
-            'config add /Boss/components b10-xfrin',
-            'config set /Boss/components/b10-xfrin/address Xfrin',
-            'config set /Boss/components/b10-xfrin/kind dispensable',
+            'config add /Init/components b10-xfrin',
+            'config set /Init/components/b10-xfrin/address Xfrin',
+            'config set /Init/components/b10-xfrin/kind dispensable',
             '!echo adding Xfrout component',
-            'config add /Boss/components b10-xfrout',
-            'config set /Boss/components/b10-xfrout/address Xfrout',
-            'config set /Boss/components/b10-xfrout/kind dispensable',
+            'config add /Init/components b10-xfrout',
+            'config set /Init/components/b10-xfrout/address Xfrout',
+            'config set /Init/components/b10-xfrout/kind dispensable',
             '!echo adding Zone Manager component',
-            'config add /Boss/components b10-zonemgr',
-            'config set /Boss/components/b10-zonemgr/address Zonemgr',
-            'config set /Boss/components/b10-zonemgr/kind dispensable',
+            'config add /Init/components b10-zonemgr',
+            'config set /Init/components/b10-zonemgr/address Zonemgr',
+            'config set /Init/components/b10-zonemgr/kind dispensable',
             '!echo Components added. Please enter "config commit" to',
             '!echo finalize initial setup and run the components.'
             ]

+ 1 - 1
src/bin/cfgmgr/b10-cfgmgr.py.in

@@ -115,7 +115,7 @@ def main():
         cm.read_config()
         for ppath in PLUGIN_PATHS:
             load_plugins(ppath, cm)
-        cm.notify_boss()
+        cm.notify_b10_init()
         cm.run()
     except SessionError as se:
         logger.fatal(CFGMGR_CC_SESSION_ERROR, se)

+ 4 - 4
src/bin/cfgmgr/tests/b10-cfgmgr_test.py.in

@@ -27,7 +27,7 @@ class MyConfigManager:
     def __init__(self, path, filename, session=None, rename_config_file=False):
         self._path = path
         self.read_config_called = False
-        self.notify_boss_called = False
+        self.notify_b10_init_called = False
         self.run_called = False
         self.write_config_called = False
         self.rename_config_called = False
@@ -37,8 +37,8 @@ class MyConfigManager:
     def read_config(self):
         self.read_config_called = True
 
-    def notify_boss(self):
-        self.notify_boss_called = True
+    def notify_b10_init(self):
+        self.notify_b10_init_called = True
 
     def run(self):
         self.run_called = True
@@ -89,7 +89,7 @@ class TestConfigManagerStartup(unittest.TestCase):
         b.load_plugins = orig_load
 
         self.assertTrue(b.cm.read_config_called)
-        self.assertTrue(b.cm.notify_boss_called)
+        self.assertTrue(b.cm.notify_b10_init_called)
         self.assertTrue(b.cm.run_called)
         self.assertTrue(self.loaded_plugins)
         # if there are no changes, config is not written

+ 2 - 2
src/bin/cmdctl/b10-cmdctl.xml

@@ -78,7 +78,7 @@
 
   <refsect1>
     <title>OPTIONS</title>
-    
+
     <para>The arguments are as follows:</para>
 
     <variablelist>
@@ -175,7 +175,7 @@
       <command>shutdown</command> exits <command>b10-cmdctl</command>.
       This has an optional <varname>pid</varname> argument to
       select the process ID to stop.
-      (Note that the BIND 10 boss process may restart this service
+      (Note that the b10-init process may restart this service
       if configured.)
     </para>
 

+ 1 - 1
src/bin/cmdctl/cmdctl.py.in

@@ -339,7 +339,7 @@ class CommandControl():
                     self.modules_spec[args[0]] = args[1]
 
         elif command == ccsession.COMMAND_SHUTDOWN:
-            #When cmdctl get 'shutdown' command from boss,
+            #When cmdctl get 'shutdown' command from b10-init,
             #shutdown the outer httpserver.
             self._module_cc.send_stopping()
             self._httpserver.shutdown()

+ 4 - 4
src/bin/ddns/b10-ddns.xml

@@ -56,8 +56,8 @@
     <para>The <command>b10-ddns</command> daemon provides the BIND 10
       Dynamic Update (DDNS) service, as specified in RFC 2136.
       Normally it is started by the
-      <citerefentry><refentrytitle>bind10</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-      boss process.
+      <citerefentry><refentrytitle>b10-init</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+      process.
     </para>
 
     <para>
@@ -119,7 +119,7 @@
         <listitem>
           <para>
             This value is ignored at this moment, but is provided for
-            compatibility with the <command>bind10</command> Boss process.
+            compatibility with the <command>b10-init</command> process.
           </para>
         </listitem>
       </varlistentry>
@@ -154,7 +154,7 @@
       <command>shutdown</command> exits <command>b10-ddns</command>.
       This has an optional <varname>pid</varname> argument to
       select the process ID to stop.
-      (Note that the BIND 10 boss process may restart this service
+      (Note that the b10-init process may restart this service
       if configured.)
     </para>
 

+ 1 - 1
src/bin/dhcp4/ctrl_dhcp4_srv.h

@@ -49,7 +49,7 @@ public:
     /// @brief Establishes msgq session.
     ///
     /// Creates session that will be used to receive commands and updated
-    /// configuration from boss (or indirectly from user via bindctl).
+    /// configuration from cfgmgr (or indirectly from user via bindctl).
     void establishSession();
 
     /// @brief Terminates existing msgq session.

+ 1 - 1
src/bin/dhcp4/tests/dhcp4_test.py

@@ -13,7 +13,7 @@
 # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
 # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
-from bind10_src import ProcessInfo, parse_args, dump_pid, unlink_pid_file, _BASETIME
+from init import ProcessInfo, parse_args, dump_pid, unlink_pid_file, _BASETIME
 
 import unittest
 import sys

+ 1 - 1
src/bin/dhcp6/ctrl_dhcp6_srv.h

@@ -49,7 +49,7 @@ public:
     /// @brief Establishes msgq session.
     ///
     /// Creates session that will be used to receive commands and updated
-    /// configuration from boss (or indirectly from user via bindctl).
+    /// configuration from cfgmgr (or indirectly from user via bindctl).
     void establishSession();
 
     /// @brief Terminates existing msgq session.

+ 2 - 2
src/bin/dhcp6/tests/dhcp6_test.py

@@ -13,7 +13,7 @@
 # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
 # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
-from bind10_src import ProcessInfo, parse_args, dump_pid, unlink_pid_file, _BASETIME
+from init import ProcessInfo, parse_args, dump_pid, unlink_pid_file, _BASETIME
 
 import unittest
 import sys
@@ -157,7 +157,7 @@ class TestDhcpv6Daemon(unittest.TestCase):
 
     def test_alive(self):
         """
-        Simple test. Checks that b10-dhcp6 can be started and prints out info 
+        Simple test. Checks that b10-dhcp6 can be started and prints out info
         about starting DHCPv6 operation.
         """
         print("Note: Purpose of some of the tests is to check if DHCPv6 server can be started,")

+ 3 - 3
src/bin/resolver/b10-resolver.xml

@@ -52,8 +52,8 @@
     <title>DESCRIPTION</title>
     <para>The <command>b10-resolver</command> daemon provides the BIND 10
       recursive DNS server.  Normally it is started by the
-      <citerefentry><refentrytitle>bind10</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-      boss process.
+      <citerefentry><refentrytitle>b10-init</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+      process.
     </para>
 
     <para>
@@ -205,7 +205,7 @@ once that is merged you can for instance do 'config add Resolver/forward_address
       <command>shutdown</command> exits <command>b10-resolver</command>.
       This has an optional <varname>pid</varname> argument to
       select the process ID to stop.
-      (Note that the BIND 10 boss process may restart this service
+      (Note that the b10-init process may restart this service
       if configured.)
     </para>
 

+ 3 - 3
src/bin/stats/b10-stats-httpd.xml

@@ -54,7 +54,7 @@
       intended for HTTP/XML interface for statistics module. This server
       process runs as a process separated from the process of the BIND 10 Stats
       daemon (<command>b10-stats</command>). The server is initially executed
-      by the BIND 10 boss process (<command>bind10</command>) and eventually
+      by the b10-init process and eventually
       exited by it.  The server is intended to serve requests by HTTP
       clients like web browsers and third-party modules. When the server is
       asked, it requests BIND 10 statistics data or its schema from
@@ -74,7 +74,7 @@
       10 statistics. The server uses CC session in communication
       with <command>b10-stats</command>. CC session is provided
       by <command>b10-msgq</command> which is started
-      by <command>bind10</command> in advance. The server is implemented by
+      by <command>b10-init</command> in advance. The server is implemented by
       HTTP-server libraries included in Python 3. The server obtains the
       configuration from the config manager (<command>b10-cfgmgr</command>) in
       runtime. Please see below for more details about this spec file and
@@ -176,7 +176,7 @@
 	    exits the <command>b10-stats-httpd</command> process.
             This has an optional <varname>pid</varname> argument to
             select the process ID to stop.
-            (Note that the BIND 10 boss process may restart this service
+            (Note that the b10-init process may restart this service
             if configured.)
           </para>
         </listitem>

+ 5 - 5
src/bin/stats/b10-stats.xml

@@ -56,18 +56,18 @@
       from each BIND 10 module. Its statistics information may be
       reported via <command>bindctl</command> or
       <command>b10-stats-httpd</command>.  It is started by
-      <command>bind10</command> and communicates by using the
+      <command>b10-init</command> and communicates by using the
       Command Channel by <command>b10-msgq</command> with other
-      modules like <command>bind10</command>, <command>b10-auth</command>
+      modules like <command>b10-init</command>, <command>b10-auth</command>
       and so on. <command>b10-stats</command> periodically requests statistics
       data from each module. The interval time can be configured
       via <command>bindctl</command>. <command>b10-stats</command> cannot
       accept any command from other modules for updating statistics data. The
       stats module collects data and
       aggregates it. <command>b10-stats</command> invokes an internal
-      command for <command>bind10</command> after its initial
+      command for <command>b10-init</command> after its initial
       starting to make sure it collects statistics data from
-      <command>bind10</command>.
+      <command>b10-init</command>.
     </para>
   </refsect1>
 
@@ -131,7 +131,7 @@
       <command>b10-stats</command> process.
       This has an optional <varname>pid</varname> argument to
       select the process ID to stop.
-      (Note that the BIND 10 boss process may restart this service
+      (Note that the b10-init process may restart this service
       if configured.)
     </para>
 

+ 3 - 3
src/bin/stats/stats.py.in

@@ -249,17 +249,17 @@ class Stats:
 
         # It counts the number of instances of same module by
         # examining the third value from the array result of
-        # 'show_processes' of Boss
+        # 'show_processes' of Init
         seq = self.cc_session.group_sendmsg(
             isc.config.ccsession.create_command("show_processes"),
-            'Boss')
+            'Init')
         (answer, env) = self.cc_session.group_recvmsg(False, seq)
         modules = []
         if answer:
             (rcode, value) = isc.config.ccsession.parse_answer(answer)
             if rcode == 0 and type(value) is list:
                 # NOTE: For example, the "show_processes" command
-                # of Boss is assumed to return the response in this
+                # of Init is assumed to return the response in this
                 # format:
                 #  [
                 #  ...

+ 1 - 1
src/bin/stats/stats.spec

@@ -92,7 +92,7 @@
         "item_optional": false,
         "item_default": "1970-01-01T00:00:00Z",
         "item_title": "Last update time",
-        "item_description": "The latest date time when the stats module receives from other modules like auth server or boss process and so on",
+        "item_description": "The latest date time when the stats module receives from other modules like auth server or b10-init process and so on",
         "item_format": "date-time"
       },
       {

+ 5 - 5
src/bin/stats/tests/b10-stats-httpd_test.py

@@ -68,7 +68,7 @@ XMLNS_XSD = "http://www.w3.org/2001/XMLSchema"
 XMLNS_XSI = stats_httpd.XMLNS_XSI
 
 DUMMY_DATA = {
-    'Boss' : {
+    'Init' : {
         "boot_time": time.strftime('%Y-%m-%dT%H:%M:%SZ', CONST_BASETIME)
         },
     'Auth' : {
@@ -278,7 +278,7 @@ class TestHttpHandler(unittest.TestCase):
                              + stats_httpd.XSD_URL_PATH)
             # check the path of XSL
             self.assertTrue(xsl_doctype.startswith(
-                    '<?xml-stylesheet type="text/xsl" href="' + 
+                    '<?xml-stylesheet type="text/xsl" href="' +
                     stats_httpd.XSL_URL_PATH
                     + '"?>'))
             # check whether the list of 'identifier' attributes in
@@ -397,7 +397,7 @@ class TestHttpHandler(unittest.TestCase):
 
         # 404 NotFound (too long path)
         self.client._http_vsn_str = 'HTTP/1.0'
-        self.client.putrequest('GET', stats_httpd.XML_URL_PATH + '/Boss/boot_time/a')
+        self.client.putrequest('GET', stats_httpd.XML_URL_PATH + '/Init/boot_time/a')
         self.client.endheaders()
         response = self.client.getresponse()
         self.assertEqual(response.status, 404)
@@ -1001,7 +1001,7 @@ class TestStatsHttpd(unittest.TestCase):
             self.assertFalse('item_format' in spec)
             self.assertFalse('format' in stats_xml[i].attrib)
 
-    @unittest.skipUnless(xml_parser, "skipping the test using XMLParser") 
+    @unittest.skipUnless(xml_parser, "skipping the test using XMLParser")
     def test_xsd_handler(self):
         self.stats_httpd = MyStatsHttpd(get_availaddr())
         xsd_string = self.stats_httpd.xsd_handler()
@@ -1036,7 +1036,7 @@ class TestStatsHttpd(unittest.TestCase):
                 self.assertEqual(attribs[i][1], stats_xsd[i].attrib['type'])
             self.assertEqual(attribs[i][2], stats_xsd[i].attrib['use'])
 
-    @unittest.skipUnless(xml_parser, "skipping the test using XMLParser") 
+    @unittest.skipUnless(xml_parser, "skipping the test using XMLParser")
     def test_xsl_handler(self):
         self.stats_httpd = MyStatsHttpd(get_availaddr())
         xsl_string = self.stats_httpd.xsl_handler()

+ 33 - 33
src/bin/stats/tests/b10-stats_test.py

@@ -319,15 +319,15 @@ class TestStats(unittest.TestCase):
         self.assertEqual(
             send_command(
                 'show', 'Stats',
-                params={ 'owner' : 'Boss',
+                params={ 'owner' : 'Init',
                   'name'  : 'boot_time' }),
-            (0, {'Boss': {'boot_time': self.const_datetime}}))
+            (0, {'Init': {'boot_time': self.const_datetime}}))
         self.assertEqual(
             send_command(
                 'show', 'Stats',
-                params={ 'owner' : 'Boss',
+                params={ 'owner' : 'Init',
                   'name'  : 'boot_time' }),
-            (0, {'Boss': {'boot_time': self.const_datetime}}))
+            (0, {'Init': {'boot_time': self.const_datetime}}))
         self.assertEqual(
             send_command('status', 'Stats'),
             (0, "Stats is up. (PID " + str(os.getpid()) + ")"))
@@ -335,13 +335,13 @@ class TestStats(unittest.TestCase):
         (rcode, value) = send_command('show', 'Stats')
         self.assertEqual(rcode, 0)
         self.assertEqual(len(value), 3)
-        self.assertTrue('Boss' in value)
+        self.assertTrue('Init' in value)
         self.assertTrue('Stats' in value)
         self.assertTrue('Auth' in value)
         self.assertEqual(len(value['Stats']), 5)
-        self.assertEqual(len(value['Boss']), 1)
-        self.assertTrue('boot_time' in value['Boss'])
-        self.assertEqual(value['Boss']['boot_time'], self.const_datetime)
+        self.assertEqual(len(value['Init']), 1)
+        self.assertTrue('boot_time' in value['Init'])
+        self.assertEqual(value['Init']['boot_time'], self.const_datetime)
         self.assertTrue('report_time' in value['Stats'])
         self.assertTrue('boot_time' in value['Stats'])
         self.assertTrue('last_update_time' in value['Stats'])
@@ -350,12 +350,12 @@ class TestStats(unittest.TestCase):
         (rcode, value) = send_command('showschema', 'Stats')
         self.assertEqual(rcode, 0)
         self.assertEqual(len(value), 3)
-        self.assertTrue('Boss' in value)
+        self.assertTrue('Init' in value)
         self.assertTrue('Stats' in value)
         self.assertTrue('Auth' in value)
         self.assertEqual(len(value['Stats']), 5)
-        self.assertEqual(len(value['Boss']), 1)
-        for item in value['Boss']:
+        self.assertEqual(len(value['Init']), 1)
+        for item in value['Init']:
             self.assertTrue(len(item) == 7)
             self.assertTrue('item_name' in item)
             self.assertTrue('item_type' in item)
@@ -383,10 +383,10 @@ class TestStats(unittest.TestCase):
 
     def test_update_modules(self):
         self.stats = stats.Stats()
-        self.assertEqual(len(self.stats.modules), 3) # Auth, Boss, Stats
+        self.assertEqual(len(self.stats.modules), 3) # Auth, Init, Stats
         self.stats.update_modules()
         self.assertTrue('Stats' in self.stats.modules)
-        self.assertTrue('Boss' in self.stats.modules)
+        self.assertTrue('Init' in self.stats.modules)
         self.assertFalse('Dummy' in self.stats.modules)
         my_statistics_data = stats.get_spec_defaults(self.stats.modules['Stats'].get_statistics_spec())
         self.assertTrue('report_time' in my_statistics_data)
@@ -399,7 +399,7 @@ class TestStats(unittest.TestCase):
         self.assertEqual(my_statistics_data['last_update_time'], self.const_default_datetime)
         self.assertEqual(my_statistics_data['timestamp'], 0.0)
         self.assertEqual(my_statistics_data['lname'], "")
-        my_statistics_data = stats.get_spec_defaults(self.stats.modules['Boss'].get_statistics_spec())
+        my_statistics_data = stats.get_spec_defaults(self.stats.modules['Init'].get_statistics_spec())
         self.assertTrue('boot_time' in my_statistics_data)
         self.assertEqual(my_statistics_data['boot_time'], self.const_default_datetime)
         orig_parse_answer = stats.isc.config.ccsession.parse_answer
@@ -411,8 +411,8 @@ class TestStats(unittest.TestCase):
         self.stats = stats.Stats()
         my_statistics_data = self.stats.get_statistics_data()
         self.assertTrue('Stats' in my_statistics_data)
-        self.assertTrue('Boss' in my_statistics_data)
-        self.assertTrue('boot_time' in my_statistics_data['Boss'])
+        self.assertTrue('Init' in my_statistics_data)
+        self.assertTrue('boot_time' in my_statistics_data['Init'])
         my_statistics_data = self.stats.get_statistics_data(owner='Stats')
         self.assertTrue('Stats' in my_statistics_data)
         self.assertTrue('report_time' in my_statistics_data['Stats'])
@@ -601,7 +601,7 @@ class TestStats(unittest.TestCase):
                              ['foo1']['nds_queries.perzone'],\
                              _new_val)
         self.assertEqual(self.stats.update_statistics_data(
-                'Boss', 'bar1', _test_exp7), ["KeyError: 'foo'"])
+                'Init', 'bar1', _test_exp7), ["KeyError: 'foo'"])
         self.assertEqual(self.stats.update_statistics_data(
                 'Foo', 'foo1', _test_exp6), ['unknown module name: Foo'])
 
@@ -659,7 +659,7 @@ class TestStats(unittest.TestCase):
         self.assertEqual(self.stats.statistics_data['Auth']['queries.udp'], sum_qudp)
         self.assertTrue('Auth' in self.stats.statistics_data_bymid)
         # restore statistics data of killed auth
-        # self.base.boss.server.pid_list = [ killed ] + self.base.boss.server.pid_list[:]
+        # self.base.b10_init.server.pid_list = [ killed ] + self.base.b10_init.server.pid_list[:]
         self.stats.update_statistics_data('Auth',
                                           "bar1@foo",
                                           {'queries.tcp': bar1_tcp})
@@ -717,9 +717,9 @@ class TestStats(unittest.TestCase):
         self.assertEqual(
             send_command(
                 'show', 'Stats',
-                params={ 'owner' : 'Boss',
+                params={ 'owner' : 'Init',
                   'name'  : 'boot_time' }),
-            (0, {'Boss': {'boot_time': self.const_datetime}}))
+            (0, {'Init': {'boot_time': self.const_datetime}}))
         stats_server.shutdown()
 
     def test_commands(self):
@@ -833,7 +833,7 @@ class TestStats(unittest.TestCase):
         self.assertEqual(rcode, 0)
         self.assertEqual(len(value), 3)
         self.assertTrue('Stats' in value)
-        self.assertTrue('Boss' in value)
+        self.assertTrue('Init' in value)
         self.assertTrue('Auth' in value)
         self.assertFalse('__Dummy__' in value)
         schema = value['Stats']
@@ -849,7 +849,7 @@ class TestStats(unittest.TestCase):
             if len(item) == 7:
                 self.assertTrue('item_format' in item)
 
-        schema = value['Boss']
+        schema = value['Init']
         self.assertEqual(len(schema), 1)
         for item in schema:
             self.assertTrue(len(item) == 7)
@@ -879,7 +879,7 @@ class TestStats(unittest.TestCase):
             self.stats.command_showschema(owner='Stats'))
         self.assertEqual(rcode, 0)
         self.assertTrue('Stats' in value)
-        self.assertFalse('Boss' in value)
+        self.assertFalse('Init' in value)
         self.assertFalse('Auth' in value)
         for item in value['Stats']:
             self.assertTrue(len(item) == 6 or len(item) == 7)
@@ -896,7 +896,7 @@ class TestStats(unittest.TestCase):
             self.stats.command_showschema(owner='Stats', name='report_time'))
         self.assertEqual(rcode, 0)
         self.assertTrue('Stats' in value)
-        self.assertFalse('Boss' in value)
+        self.assertFalse('Init' in value)
         self.assertFalse('Auth' in value)
         self.assertEqual(len(value['Stats'][0]), 7)
         self.assertTrue('item_name' in value['Stats'][0])
@@ -1150,15 +1150,15 @@ class TestStats(unittest.TestCase):
         self.assertEqual(
             send_command('show', 'Stats'),
             (0, stat.statistics_data))
-        # check statistics data of 'Boss'
-        boss = self.base.boss.server
+        # check statistics data of 'Init'
+        b10_init = self.base.b10_init.server
         self.assertEqual(
-            stat.statistics_data_bymid['Boss'][boss.cc_session.lname],
+            stat.statistics_data_bymid['Init'][b10_init.cc_session.lname],
             {'boot_time': self.const_datetime})
         self.assertEqual(
-            len(stat.statistics_data_bymid['Boss']), 1)
+            len(stat.statistics_data_bymid['Init']), 1)
         self.assertEqual(
-            stat.statistics_data['Boss'],
+            stat.statistics_data['Init'],
             {'boot_time': self.const_datetime})
         # check statistics data of each 'Auth' instances
         list_auth = ['', '2']
@@ -1219,17 +1219,17 @@ class TestStats(unittest.TestCase):
 
     def test_polling2(self):
         # set invalid statistics
-        boss = self.base.boss.server
-        boss.statistics_data = {'boot_time':1}
+        b10_init = self.base.b10_init.server
+        b10_init.statistics_data = {'boot_time':1}
         stats_server = ThreadingServerManager(MyStats)
         stat = stats_server.server
         stats_server.run()
         self.assertEqual(
             send_command('status', 'Stats'),
             (0, "Stats is up. (PID " + str(os.getpid()) + ")"))
-        # check default statistics data of 'Boss'
+        # check default statistics data of 'Init'
         self.assertEqual(
-            stat.statistics_data['Boss'],
+            stat.statistics_data['Init'],
             {'boot_time': self.const_default_datetime})
         stats_server.shutdown()
 

+ 8 - 8
src/bin/stats/tests/test_utils.py

@@ -140,11 +140,11 @@ class MockCfgmgr:
     def shutdown(self):
         self.cfgmgr.running = False
 
-class MockBoss:
+class MockInit:
     spec_str = """\
 {
   "module_spec": {
-    "module_name": "Boss",
+    "module_name": "Init",
     "module_description": "Mock Master process",
     "config_data": [
       {
@@ -210,7 +210,7 @@ class MockBoss:
       },
       {
         "command_name": "ping",
-        "command_description": "Ping the boss process",
+        "command_description": "Ping the b10-init process",
         "command_args": []
       },
       {
@@ -537,9 +537,9 @@ class BaseModules:
         # MockCfgmgr
         self.cfgmgr = ThreadingServerManager(MockCfgmgr)
         self.cfgmgr.run()
-        # MockBoss
-        self.boss = ThreadingServerManager(MockBoss)
-        self.boss.run()
+        # MockInit
+        self.b10_init = ThreadingServerManager(MockInit)
+        self.b10_init.run()
         # MockAuth
         self.auth = ThreadingServerManager(MockAuth)
         self.auth.run()
@@ -558,8 +558,8 @@ class BaseModules:
         # MockAuth
         self.auth2.shutdown(True)
         self.auth.shutdown(True)
-        # MockBoss
-        self.boss.shutdown(True)
+        # MockInit
+        self.b10_init.shutdown(True)
         # MockCfgmgr
         self.cfgmgr.shutdown(True)
         # remove the unused socket file

+ 1 - 1
src/bin/stats/tests/testdata/b10-config.db

@@ -1,5 +1,5 @@
 { "version": 2,
-  "Boss": {
+  "Init": {
     "components": {
       "b10-auth": {
         "kind": "needed",

+ 1 - 1
src/bin/tests/process_rename_test.py.in

@@ -42,7 +42,7 @@ class TestRename(unittest.TestCase):
 
         # Scripts named in this list are not expected to be renamed and
         # should be excluded from the scan.
-        EXCLUDED_SCRIPTS = ['isc-sysinfo']
+        EXCLUDED_SCRIPTS = ['isc-sysinfo', 'bind10']
 
         # Regexp to find all the *_SCRIPTS = something lines (except for
         # noinst_SCRIPTS, which are scripts for tests), including line

+ 4 - 4
src/bin/xfrin/b10-xfrin.xml

@@ -56,8 +56,8 @@
     <para>The <command>b10-xfrin</command> daemon provides the BIND 10
       incoming DNS zone transfer service.
       Normally it is started by the
-      <citerefentry><refentrytitle>bind10</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-      boss process.
+      <citerefentry><refentrytitle>b10-init</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+      process.
       When triggered it can request and receive a zone transfer and store
       the zone in a BIND 10 zone data source.
     </para>
@@ -180,8 +180,8 @@ in separate zonemgr process.
 
     <para>
       <command>shutdown</command> stops all incoming zone transfers
-      and exits <command>b10-xfrin</command>. (Note that the BIND 10
-      boss process will restart this service.)
+      and exits <command>b10-xfrin</command>. (Note that the
+      b10-init process will restart this service.)
     </para>
 <!-- TODO:
 add a usage example of xfrin -->

+ 3 - 3
src/bin/xfrout/b10-xfrout.xml

@@ -55,8 +55,8 @@
       outgoing DNS zone transfer service using AXFR or IXFR.
       It is also used to send outgoing NOTIFY messages.
       Normally it is started by the
-      <citerefentry><refentrytitle>bind10</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-      boss process.
+      <citerefentry><refentrytitle>b10-init</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+      process.
       When the <command>b10-auth</command> DNS server receives
       a transfer request, <command>b10-xfrout</command> sends the
       zone as found in the BIND 10 zone data store.
@@ -147,7 +147,7 @@
       and exits <command>b10-xfrout</command>.
       This has an optional <varname>pid</varname> argument to
       select the process ID to stop.
-      (Note that the BIND 10 boss process may restart this service
+      (Note that the BIND 10 b10-init process may restart this service
       if configured.)
     </para>
 

+ 4 - 4
src/bin/zonemgr/b10-zonemgr.xml

@@ -55,8 +55,8 @@
       as the BIND 10 secondary manager, keeps track of timers
       and other information necessary for BIND 10 to act as a DNS slave.
       Normally it is started by the
-      <citerefentry><refentrytitle>bind10</refentrytitle><manvolnum>8</manvolnum></citerefentry>
-      boss process.
+      <citerefentry><refentrytitle>b10-init</refentrytitle><manvolnum>8</manvolnum></citerefentry>
+      process.
     </para>
 
     <para>
@@ -74,7 +74,7 @@
 
 <!--
 
-            self._send_command(XFRIN_MODULE_NAME, ZONE_NOTIFY_COMMAND, param) 
+            self._send_command(XFRIN_MODULE_NAME, ZONE_NOTIFY_COMMAND, param)
             self._clear_zone_notifier_master(zone_name_class)
         # Send refresh command to xfrin module
         else:
@@ -188,7 +188,7 @@
       <command>shutdown</command> exits <command>b10-zonemgr</command>.
       This has an optional <varname>pid</varname> argument to
       select the process ID to stop.
-      (Note that the BIND 10 boss process may restart this service
+      (Note that the b10-init process may restart this service
       if configured.)
     </para>
 

+ 1 - 1
src/bin/zonemgr/zonemgr.py.in

@@ -625,7 +625,7 @@ class Zonemgr:
         ZONE_NOTIFY_COMMAND is issued by Auth process;
         ZONE_NEW_DATA_READY_CMD and ZONE_XFRIN_FAILED are issued by
         Xfrin process;
-        shutdown is issued by a user or Boss process. """
+        shutdown is issued by a user or Init process. """
         answer = create_answer(0)
         if command == ZONE_NOTIFY_COMMAND:
             """ Handle Auth notify command"""

+ 1 - 1
src/bin/zonemgr/zonemgr_messages.mes

@@ -69,7 +69,7 @@ new data.
 
 % ZONEMGR_RECEIVE_SHUTDOWN received SHUTDOWN command
 This is a debug message indicating that the zone manager has received
-a SHUTDOWN command over the command channel from the Boss process.
+a SHUTDOWN command over the command channel from the Init process.
 It will act on this command and shut down.
 
 % ZONEMGR_RECEIVE_UNKNOWN received unknown command '%1'

+ 3 - 3
src/lib/python/bind10_config.py.in

@@ -43,8 +43,8 @@ def reload():
     #  the system.
     # PLUGIN_PATHS: configuration modules that are not associated to specific
     #  process
-    # LIBEXECPATH: Paths to programs invoked by the boss process
-    #  The boss process (directly or via a helper module) uses this as
+    # LIBEXECPATH: Paths to programs invoked by the b10-init process
+    #  The b10-init process (directly or via a helper module) uses this as
     #  the prefererred PATH before starting a child process.
     #  When "FROM_SOURCE", it lists the directories where the programs are
     #  built so that when BIND 10 is experimentally started on the source
@@ -53,7 +53,7 @@ def reload():
     # B10_FROM_SOURCE_LOCALSTATEDIR is specifically intended to be used for
     # tests where we want to use various types of configuration within the test
     # environment.  (We may want to make it even more generic so that the path
-    # is passed from the boss process)
+    # is passed from the b10-init process)
     if "B10_FROM_SOURCE" in os.environ:
         if "B10_FROM_SOURCE_LOCALSTATEDIR" in os.environ:
             DATA_PATH = os.environ["B10_FROM_SOURCE_LOCALSTATEDIR"]

+ 30 - 27
src/lib/python/isc/bind10/component.py

@@ -28,12 +28,12 @@ configuration). This is yet to be designed.
 """
 
 import isc.log
-from isc.log_messages.bind10_messages import *
+from isc.log_messages.init_messages import *
 import time
 import os
 import signal
 
-logger = isc.log.Logger("boss")
+logger = isc.log.Logger("init")
 DBG_TRACE_DATA = 20
 DBG_TRACE_DETAILED = 80
 
@@ -96,13 +96,13 @@ class BaseComponent:
     that is already shutting down, impossible to stop, etc. We need to add more
     states in future to handle it properly.
     """
-    def __init__(self, boss, kind):
+    def __init__(self, b10_init, kind):
         """
         Creates the component in not running mode.
 
         The parameters are:
-        - `boss` the boss object to plug into. The component needs to plug
-          into it to know when it failed, etc.
+        - `b10_init` the b10_init object to plug into. The component needs
+           to plug into it to know when it failed, etc.
         - `kind` is the kind of component. It may be one of:
           * 'core' means the system can't run without it and it can't be
             safely restarted. If it does not start, the system is brought
@@ -127,7 +127,7 @@ class BaseComponent:
         Note that the __init__ method of child class should have these
         parameters:
 
-        __init__(self, process, boss, kind, address=None, params=None)
+        __init__(self, process, b10_init, kind, address=None, params=None)
 
         The extra parameters are:
         - `process` - which program should be started.
@@ -153,7 +153,7 @@ class BaseComponent:
             raise ValueError('Component kind can not be ' + kind)
         self.__state = STATE_STOPPED
         self._kind = kind
-        self._boss = boss
+        self._b10_init = b10_init
         self._original_start_time = None
 
     def start(self):
@@ -204,13 +204,14 @@ class BaseComponent:
 
     def failed(self, exit_code):
         """
-        Notify the component it crashed. This will be called from boss object.
+        Notify the component it crashed. This will be called from b10_init
+        object.
 
         If you try to call failed on a component that is not running,
         a ValueError is raised.
 
         If it is a core component or needed component and it was started only
-        recently, the component will become dead and will ask the boss to shut
+        recently, the component will become dead and will ask b10_init to shut
         down with error exit status. A dead component can't be started again.
 
         Otherwise the component will try to restart.
@@ -253,7 +254,7 @@ class BaseComponent:
              self._original_start_time):
             self.__state = STATE_DEAD
             logger.fatal(BIND10_COMPONENT_UNSATISFIED, self.name())
-            self._boss.component_shutdown(1)
+            self._b10_init.component_shutdown(1)
             return False
         # This means we want to restart
         else:
@@ -326,7 +327,7 @@ class BaseComponent:
         should be registered).
 
         You should register all the processes created by calling
-        self._boss.register_process.
+        self._b10_init.register_process.
         """
         pass
 
@@ -407,15 +408,15 @@ class Component(BaseComponent):
     directly. It is not recommended to override methods of this class
     on one-by-one basis.
     """
-    def __init__(self, process, boss, kind, address=None, params=None,
+    def __init__(self, process, b10_init, kind, address=None, params=None,
                  start_func=None):
         """
         Creates the component in not running mode.
 
         The parameters are:
         - `process` is the name of the process to start.
-        - `boss` the boss object to plug into. The component needs to plug
-          into it to know when it failed, etc.
+        - `b10_init` the b10-init object to plug into. The component needs to
+          plug into it to know when it failed, etc.
         - `kind` is the kind of component. Refer to the documentation of
           BaseComponent for details.
         - `address` is the address on message bus. It is used to ask it to
@@ -429,7 +430,7 @@ class Component(BaseComponent):
            There's a sensible default if not provided, which just launches
            the program without any special care.
         """
-        BaseComponent.__init__(self, boss, kind)
+        BaseComponent.__init__(self, b10_init, kind)
         self._process = process
         self._start_func = start_func
         self._address = address
@@ -443,25 +444,26 @@ class Component(BaseComponent):
         process and return the procinfo object describing the running process.
 
         If you don't provide the _start_func, the usual startup by calling
-        boss.start_simple is performed.
+        b10_init.start_simple is performed.
         """
         # This one is not tested. For one, it starts a real process
         # which is out of scope of unit tests, for another, it just
-        # delegates the starting to other function in boss (if a derived
+        # delegates the starting to other function in b10_init (if a derived
         # class does not provide an override function), which is tested
         # by use.
         if self._start_func is not None:
             procinfo = self._start_func()
         else:
             # TODO Handle params, etc
-            procinfo = self._boss.start_simple(self._process)
+            procinfo = self._b10_init.start_simple(self._process)
         self._procinfo = procinfo
-        self._boss.register_process(self.pid(), self)
+        self._b10_init.register_process(self.pid(), self)
 
     def _stop_internal(self):
-        self._boss.stop_process(self._process, self._address, self.pid())
+        self._b10_init.stop_process(self._process, self._address, self.pid())
         # TODO Some way to wait for the process that doesn't want to
-        # terminate and kill it would prove nice (or add it to boss somewhere?)
+        # terminate and kill it would prove nice (or add it to b10_init
+        # somewhere?)
 
     def name(self):
         """
@@ -498,7 +500,7 @@ class Configurator:
     b10-auth as core, it is safe to stop that one.
 
     The parameters are:
-    * `boss`: The boss we are managing for.
+    * `b10_init`: The b10-init we are managing for.
     * `specials`: Dict of specially started components. Each item is a class
       representing the component.
 
@@ -527,13 +529,14 @@ class Configurator:
       priority are started before the ones with lower priority. If it is
       not present, it defaults to 0.
     """
-    def __init__(self, boss, specials = {}):
+    def __init__(self, b10_init, specials = {}):
         """
         Initializes the configurator, but nothing is started yet.
 
-        The boss parameter is the boss object used to start and stop processes.
+        The b10_init parameter is the b10-init object used to start and stop
+        processes.
         """
-        self.__boss = boss
+        self.__b10_init = b10_init
         # These could be __private, but as we access them from within unittest,
         # it's more comfortable to have them just _protected.
 
@@ -551,7 +554,7 @@ class Configurator:
     def startup(self, configuration):
         """
         Starts the first set of processes. This configuration is expected
-        to be hardcoded from the boss itself to start the configuration
+        to be hardcoded from the b10-init itself to start the configuration
         manager and other similar things.
         """
         if self._running:
@@ -642,7 +645,7 @@ class Configurator:
                     # TODO: Better error handling
                     creator = self.__specials[component_config['special']]
                 component = creator(component_config.get('process', cname),
-                                    self.__boss, component_config['kind'],
+                                    self.__b10_init, component_config['kind'],
                                     component_config.get('address'),
                                     component_config.get('params'))
                 priority = component_config.get('priority', 0)

+ 3 - 3
src/lib/python/isc/bind10/sockcreator.py

@@ -20,10 +20,10 @@ import errno
 import copy
 import subprocess
 import copy
-from isc.log_messages.bind10_messages import *
+from isc.log_messages.init_messages import *
 from libutil_io_python import recv_fd
 
-logger = isc.log.Logger("boss")
+logger = isc.log.Logger("init")
 
 """
 Module that comunicates with the privileged socket creator (b10-sockcreator).
@@ -251,7 +251,7 @@ class Creator(Parser):
         """Function used before running a program that needs to run as a
         different user."""
         # Put us into a separate process group so we don't get
-        # SIGINT signals on Ctrl-C (the boss will shut everthing down by
+        # SIGINT signals on Ctrl-C (b10-init will shut everthing down by
         # other means).
         os.setpgrp()
 

+ 9 - 8
src/lib/python/isc/bind10/socket_cache.py

@@ -106,7 +106,8 @@ class Cache:
     This is the cache for sockets from socket creator. The purpose of cache
     is to hold the sockets that were requested, until they are no longer
     needed. One reason is, the socket is created before it is sent over the
-    unix domain socket in boss, so we need to keep it somewhere for a while.
+    unix domain socket in b10-init, so we need to keep it somewhere for a
+    while.
 
     The other reason is, a single socket might be requested multiple times.
     So we keep it here in case someone else might ask for it.
@@ -114,7 +115,7 @@ class Cache:
     Each socket kept here has a reference count and when it drops to zero,
     it is removed from cache and closed.
 
-    This is expected to be part of Boss, it is not a general utility class.
+    This is expected to be part of Init, it is not a general utility class.
 
     It is not expected to be subclassed. The methods and members are named
     as protected so tests are easier access into them.
@@ -175,7 +176,7 @@ class Cache:
           restrictions and of all copies of socket handed out are considered,
           so it can be raised even if you call it with share_mode 'ANY').
         - isc.bind10.sockcreator.CreatorError: fatal creator errors are
-          propagated. Thay should cause the boss to exit if ever encountered.
+          propagated. Thay should cause b10-init to exit if ever encountered.
 
         Note that it isn't guaranteed the tokens would be unique and they
         should be used as an opaque handle only.
@@ -220,11 +221,11 @@ class Cache:
         one returned from previous call from get_token. The token can be used
         only once to receive the socket.
 
-        The application is a token representing the application that requested
-        it. Currently, boss uses the file descriptor of connection from the
-        application, but anything which can be a key in a dict is OK from the
-        cache's point of view. You just need to use the same thing in
-        drop_application.
+        The application is a token representing the application that
+        requested it. Currently, b10-init uses the file descriptor of
+        connection from the application, but anything which can be a key in
+        a dict is OK from the cache's point of view. You just need to use
+        the same thing in drop_application.
 
         In case the token is considered invalid (it doesn't come from the
         get_token, it was already used, the socket wasn't picked up soon

+ 26 - 26
src/lib/python/isc/bind10/special_component.py

@@ -26,23 +26,23 @@ class SockCreator(BaseComponent):
 
     Note: _creator shouldn't be reset explicitly once created.  The
     underlying Popen object would then wait() the child process internally,
-    which breaks the assumption of the boss, who is expecting to see
+    which breaks the assumption of b10-init, who is expecting to see
     the process die in waitpid().
     """
-    def __init__(self, process, boss, kind, address=None, params=None):
-        BaseComponent.__init__(self, boss, kind)
+    def __init__(self, process, b10_init, kind, address=None, params=None):
+        BaseComponent.__init__(self, b10_init, kind)
         self.__creator = None
 
     def _start_internal(self):
-        self._boss.curproc = 'b10-sockcreator'
+        self._b10_init.curproc = 'b10-sockcreator'
         self.__creator = isc.bind10.sockcreator.Creator(LIBEXECPATH + ':' +
                                                         os.environ['PATH'])
-        self._boss.register_process(self.pid(), self)
-        self._boss.set_creator(self.__creator)
-        self._boss.log_started(self.pid())
+        self._b10_init.register_process(self.pid(), self)
+        self._b10_init.set_creator(self.__creator)
+        self._b10_init.log_started(self.pid())
 
         # We are now ready for switching user.
-        self._boss.change_user()
+        self._b10_init.change_user()
 
     def _stop_internal(self):
         self.__creator.terminate()
@@ -64,12 +64,12 @@ class SockCreator(BaseComponent):
 
 class Msgq(Component):
     """
-    The message queue. Starting is passed to boss, stopping is not supported
-    and we leave the boss kill it by signal.
+    The message queue. Starting is passed to b10-init, stopping is not
+    supported and we leave b10-init kill it by signal.
     """
-    def __init__(self, process, boss, kind, address=None, params=None):
-        Component.__init__(self, process, boss, kind, None, None,
-                           boss.start_msgq)
+    def __init__(self, process, b10_init, kind, address=None, params=None):
+        Component.__init__(self, process, b10_init, kind, None, None,
+                           b10_init.start_msgq)
 
     def _stop_internal(self):
         """
@@ -78,7 +78,7 @@ class Msgq(Component):
         But as it is stateless, it's OK to kill it.
 
         So we disable this method (as the only time it could be called is
-        during shutdown) and wait for the boss to kill it in the next shutdown
+        during shutdown) and wait for b10-init to kill it in the next shutdown
         step.
 
         This actually breaks the recommendation at Component we shouldn't
@@ -89,24 +89,24 @@ class Msgq(Component):
         pass
 
 class CfgMgr(Component):
-    def __init__(self, process, boss, kind, address=None, params=None):
-        Component.__init__(self, process, boss, kind, 'ConfigManager',
-                           None, boss.start_cfgmgr)
+    def __init__(self, process, b10_init, kind, address=None, params=None):
+        Component.__init__(self, process, b10_init, kind, 'ConfigManager',
+                           None, b10_init.start_cfgmgr)
 
 class Auth(Component):
-    def __init__(self, process, boss, kind, address=None, params=None):
-        Component.__init__(self, process, boss, kind, 'Auth', None,
-                           boss.start_auth)
+    def __init__(self, process, b10_init, kind, address=None, params=None):
+        Component.__init__(self, process, b10_init, kind, 'Auth', None,
+                           b10_init.start_auth)
 
 class Resolver(Component):
-    def __init__(self, process, boss, kind, address=None, params=None):
-        Component.__init__(self, process, boss, kind, 'Resolver', None,
-                           boss.start_resolver)
+    def __init__(self, process, b10_init, kind, address=None, params=None):
+        Component.__init__(self, process, b10_init, kind, 'Resolver', None,
+                           b10_init.start_resolver)
 
 class CmdCtl(Component):
-    def __init__(self, process, boss, kind, address=None, params=None):
-        Component.__init__(self, process, boss, kind, 'Cmdctl', None,
-                           boss.start_cmdctl)
+    def __init__(self, process, b10_init, kind, address=None, params=None):
+        Component.__init__(self, process, b10_init, kind, 'Cmdctl', None,
+                           b10_init.start_cmdctl)
 def get_specials():
     """
     List of specially started components. Each one should be the class than can

+ 20 - 19
src/lib/python/isc/bind10/tests/component_test.py

@@ -31,9 +31,9 @@ class TestError(Exception):
     """
     pass
 
-class BossUtils:
+class InitUtils:
     """
-    A class that brings some utilities for pretending we're Boss.
+    A class that brings some utilities for pretending we're Init.
     This is expected to be inherited by the testcases themselves.
     """
     def setUp(self):
@@ -70,7 +70,7 @@ class BossUtils:
         isc.bind10.component.time.time = lambda: tm + 30
 
     # Few functions that pretend to start something. Part of pretending of
-    # being boss.
+    # being b10-init.
     def start_msgq(self):
         pass
 
@@ -86,7 +86,7 @@ class BossUtils:
     def start_cmdctl(self):
         pass
 
-class ComponentTests(BossUtils, unittest.TestCase):
+class ComponentTests(InitUtils, unittest.TestCase):
     """
     Tests for the bind10.component.Component class
     """
@@ -94,7 +94,7 @@ class ComponentTests(BossUtils, unittest.TestCase):
         """
         Pretend a newly started system.
         """
-        BossUtils.setUp(self)
+        InitUtils.setUp(self)
         self._shutdown = False
         self._exitcode = None
         self.__start_called = False
@@ -103,7 +103,7 @@ class ComponentTests(BossUtils, unittest.TestCase):
         self.__registered_processes = {}
         self.__stop_process_params = None
         self.__start_simple_params = None
-        # Pretending to be boss
+        # Pretending to be b10-init
         self.__change_user_called = False
 
     def change_user(self):
@@ -149,7 +149,7 @@ class ComponentTests(BossUtils, unittest.TestCase):
         its behaviour.
 
         The process used is some nonsense, as this isn't used in this
-        kind of tests and we pretend to be the boss.
+        kind of tests and we pretend to be the b10-init.
         """
         component = Component('No process', self, kind, 'homeless', [])
         component._start_internal = self.__start
@@ -176,7 +176,7 @@ class ComponentTests(BossUtils, unittest.TestCase):
         Test the correct data are stored inside the component.
         """
         component = self.__create_component('core')
-        self.assertEqual(self, component._boss)
+        self.assertEqual(self, component._b10_init)
         self.assertEqual("No process", component._process)
         self.assertEqual(None, component._start_func)
         self.assertEqual("homeless", component._address)
@@ -539,7 +539,7 @@ class ComponentTests(BossUtils, unittest.TestCase):
 
     def register_process(self, pid, process):
         """
-        Part of pretending to be a boss
+        Part of pretending to be a b10-init
         """
         self.__registered_processes[pid] = process
 
@@ -570,13 +570,13 @@ class ComponentTests(BossUtils, unittest.TestCase):
 
     def stop_process(self, process, address, pid):
         """
-        Part of pretending to be boss.
+        Part of pretending to be b10-init.
         """
         self.__stop_process_params = (process, address, pid)
 
     def start_simple(self, process):
         """
-        Part of pretending to be boss.
+        Part of pretending to be b10-init.
         """
         self.__start_simple_params = process
 
@@ -632,14 +632,14 @@ class ComponentTests(BossUtils, unittest.TestCase):
 
     def set_creator(self, creator):
         """
-        Part of faking being the boss. Check the creator (faked as well)
+        Part of faking being the b10-init. Check the creator (faked as well)
         is passed here.
         """
         self.assertTrue(isinstance(creator, self.FakeCreator))
 
     def log_started(self, pid):
         """
-        Part of faking the boss. Check the pid is the one of the fake creator.
+        Part of faking the b10-init. Check the pid is the one of the fake creator.
         """
         self.assertEqual(42, pid)
 
@@ -706,13 +706,13 @@ class FailComponent(BaseComponent):
     """
     A mock component that fails whenever it is started.
     """
-    def __init__(self, name, boss, kind, address=None, params=None):
-        BaseComponent.__init__(self, boss, kind)
+    def __init__(self, name, b10_init, kind, address=None, params=None):
+        BaseComponent.__init__(self, b10_init, kind)
 
     def _start_internal(self):
         raise TestError("test error")
 
-class ConfiguratorTest(BossUtils, unittest.TestCase):
+class ConfiguratorTest(InitUtils, unittest.TestCase):
     """
     Tests for the configurator.
     """
@@ -720,7 +720,7 @@ class ConfiguratorTest(BossUtils, unittest.TestCase):
         """
         Prepare some test data for the tests.
         """
-        BossUtils.setUp(self)
+        InitUtils.setUp(self)
         self.log = []
         # The core "hardcoded" configuration
         self.__core = {
@@ -755,11 +755,12 @@ class ConfiguratorTest(BossUtils, unittest.TestCase):
         self.__core_log = self.__core_log_create + self.__core_log_start
         self.__specials = { 'test': self.__component_test }
 
-    def __component_test(self, process, boss, kind, address=None, params=None):
+    def __component_test(self, process, b10_init, kind, address=None,
+                         params=None):
         """
         Create a test component. It will log events to us.
         """
-        self.assertEqual(self, boss)
+        self.assertEqual(self, b10_init)
         return TestComponent(self, process, kind, address, params)
 
     def test_init(self):

+ 61 - 19
src/lib/python/isc/config/cfgmgr.py

@@ -68,6 +68,62 @@ class ConfigManagerData:
             self.db_filename = data_path + os.sep + file_name
             self.data_path = data_path
 
+    def check_for_updates(file_config):
+        """
+        Given the parsed JSON data from the config file,
+        check whether it needs updating due to version changes.
+        Return the data with updates (or the original data if no
+        updates were necessary).
+        Even though it is at this moment not technically necessary, this
+        function makes and returns a copy of the given data.
+        """
+        config = copy.deepcopy(file_config)
+        if 'version' in config:
+            data_version = config['version']
+        else:
+            # If it is not present, assume latest or earliest?
+            data_version = 1
+
+        # For efficiency, if up-to-date, return now
+        if data_version == config_data.BIND10_CONFIG_DATA_VERSION:
+            return config
+
+        # Don't know what to do if it is more recent
+        if data_version > config_data.BIND10_CONFIG_DATA_VERSION:
+            raise ConfigManagerDataReadError(
+                      "Cannot load configuration file: version "
+                      "%d not yet supported" % config['version'])
+
+        # At some point we might give up supporting older versions
+        if data_version < 1:
+            raise ConfigManagerDataReadError(
+                      "Cannot load configuration file: version "
+                      "%d no longer supported" % config['version'])
+
+        # Ok, so we have a still-supported older version. Apply all
+        # updates
+        new_data_version = data_version
+        if new_data_version == 1:
+            # only format change, no other changes necessary
+            new_data_version = 2
+        if new_data_version == 2:
+            # 'Boss' got changed to 'Init'; If for some reason both are
+            # present, simply ignore the old one
+            if 'Boss' in config:
+                if not 'Init' in config:
+                    config['Init'] = config['Boss']
+                    del config['Boss']
+                else:
+                    # This should not happen, but we don't want to overwrite
+                    # any config in this case, so warn about it
+                    logger.warn(CFGMGR_CONFIG_UPDATE_BOSS_AND_INIT_FOUND)
+            new_data_version = 3
+
+        config['version'] = new_data_version
+        logger.info(CFGMGR_AUTOMATIC_CONFIG_DATABASE_UPDATE, data_version,
+                    new_data_version)
+        return config
+
     def read_from_file(data_path, file_name):
         """Read the current configuration found in the file file_name.
            If file_name is absolute, data_path is ignored. Otherwise
@@ -90,21 +146,7 @@ class ConfigManagerData:
             # If possible, we automatically convert to the new
             # scheme and update the configuration
             # If not, we raise an exception
-            if 'version' in file_config:
-                if file_config['version'] == config_data.BIND10_CONFIG_DATA_VERSION:
-                    config.data = file_config
-                elif file_config['version'] == 1:
-                    # only format change, no other changes necessary
-                    file_config['version'] = 2
-                    logger.info(CFGMGR_AUTOMATIC_CONFIG_DATABASE_UPDATE, 1, 2)
-                    config.data = file_config
-                else:
-                    if config_data.BIND10_CONFIG_DATA_VERSION > file_config['version']:
-                        raise ConfigManagerDataReadError("Cannot load configuration file: version %d no longer supported" % file_config['version'])
-                    else:
-                        raise ConfigManagerDataReadError("Cannot load configuration file: version %d not yet supported" % file_config['version'])
-            else:
-                raise ConfigManagerDataReadError("No version information in configuration file " + config.db_filename)
+            config.data = ConfigManagerData.check_for_updates(file_config)
         except IOError as ioe:
             # if IOError is 'no such file or directory', then continue
             # (raise empty), otherwise fail (raise error)
@@ -210,7 +252,7 @@ class ConfigManager:
         else:
             self.cc = isc.cc.Session()
         self.cc.group_subscribe("ConfigManager")
-        self.cc.group_subscribe("Boss", "ConfigManager")
+        self.cc.group_subscribe("Init", "ConfigManager")
         self.running = False
         # As a core module, CfgMgr is different than other modules,
         # as it does not use a ModuleCCSession, and hence needs
@@ -232,10 +274,10 @@ class ConfigManager:
             # handler, so make it use defaults (and flush any buffered logs)
             ccsession.default_logconfig_handler({}, self.log_config_data)
 
-    def notify_boss(self):
-        """Notifies the Boss module that the Config Manager is running"""
+    def notify_b10_init(self):
+        """Notifies the Init module that the Config Manager is running"""
         # TODO: Use a real, broadcast notification here.
-        self.cc.group_sendmsg({"running": "ConfigManager"}, "Boss")
+        self.cc.group_sendmsg({"running": "ConfigManager"}, "Init")
 
     def set_module_spec(self, spec):
         """Adds a ModuleSpec"""

+ 10 - 0
src/lib/python/isc/config/cfgmgr_messages.mes

@@ -41,6 +41,16 @@ system. The most likely cause is that msgq is not running.
 The configuration manager is starting, reading and saving the configuration
 settings to the shown file.
 
+% CFGMGR_CONFIG_UPDATE_BOSS_AND_INIT_FOUND Configuration found for both 'Boss' and 'Init', ignoring 'Boss'
+In the process of updating the configuration from version 2 to version 3,
+the configuration manager has found that there are existing configurations
+for both the old value 'Boss' and the new value 'Init'. This should in
+theory not happen, as in older versions 'Init' does not exist, and in newer
+versions 'Boss' does not exist. The configuration manager will continue
+with the update process, leaving the values for both as they are, so as not
+to overwrite any settings. However, the values for 'Boss' are ignored by
+BIND 10, and it is probably wise to check the configuration file manually.
+
 % CFGMGR_DATA_READ_ERROR error reading configuration database from disk: %1
 There was a problem reading the persistent configuration data as stored
 on disk. The file may be corrupted, or it is of a version from where

+ 1 - 1
src/lib/python/isc/config/config_data.py

@@ -27,7 +27,7 @@ import copy
 
 class ConfigDataError(Exception): pass
 
-BIND10_CONFIG_DATA_VERSION = 2
+BIND10_CONFIG_DATA_VERSION = 3
 
 # Helper functions
 def spec_part_is_list(spec_part):

+ 49 - 5
src/lib/python/isc/config/tests/cfgmgr_test.py

@@ -49,6 +49,49 @@ class TestConfigManagerData(unittest.TestCase):
         self.assertEqual(self.config_manager_data.db_filename,
                          self.writable_data_path + os.sep + "b10-config.db")
 
+    def test_check_for_updates_up_to_date(self):
+        # This should automatically give an up-to-date version
+        file_config = ConfigManagerData.read_from_file(
+                        self.writable_data_path, "b10-config.db").data
+        updated_config = ConfigManagerData.check_for_updates(file_config)
+        self.assertEqual(file_config, updated_config)
+
+    def test_check_for_updates_from_1(self):
+        config = { "version": 1,
+                   "foo": "bar",
+                   "something": [ 1, 2, 3 ] }
+        updated = ConfigManagerData.check_for_updates(config)
+        config['version'] = config_data.BIND10_CONFIG_DATA_VERSION
+        self.assertEqual(config, updated)
+
+    def test_check_for_updates_from_2(self):
+        # No 'Boss' present, no change (except version)
+        config = { "version": 2,
+                   "foo": "bar",
+                   "something": [ 1, 2, 3 ] }
+        updated = ConfigManagerData.check_for_updates(config)
+        config['version'] = config_data.BIND10_CONFIG_DATA_VERSION
+        self.assertEqual(config, updated)
+
+        # With Boss, should be changed to 'Init'
+        config = { "version": 2,
+                   "Boss": { "some config": 1 },
+                   "something": [ 1, 2, 3 ] }
+        updated = ConfigManagerData.check_for_updates(config)
+        config = { "version": config_data.BIND10_CONFIG_DATA_VERSION,
+                   "Init": { "some config": 1 },
+                   "something": [ 1, 2, 3 ] }
+        self.assertEqual(config, updated)
+
+        # With Boss AND Init, no change
+        config = { "version": 2,
+                   "Boss": { "some config": 1 },
+                   "Init": { "some other config": 1 },
+                   "something": [ 1, 2, 3 ] }
+        updated = ConfigManagerData.check_for_updates(config)
+        config['version'] = config_data.BIND10_CONFIG_DATA_VERSION
+        self.assertEqual(config, updated)
+
     def test_read_from_file(self):
         ConfigManagerData.read_from_file(self.writable_data_path, "b10-config.db")
         self.assertRaises(ConfigManagerDataEmpty,
@@ -174,12 +217,12 @@ class TestConfigManager(unittest.TestCase):
         self.assertEqual(self.cm.data_path, self.writable_data_path)
         self.assertIsNotNone(self.cm.config)
         self.assertTrue(self.fake_session.has_subscription("ConfigManager"))
-        self.assertTrue(self.fake_session.has_subscription("Boss", "ConfigManager"))
+        self.assertTrue(self.fake_session.has_subscription("Init", "ConfigManager"))
         self.assertFalse(self.cm.running)
 
-    def test_notify_boss(self):
-        self.cm.notify_boss()
-        msg = self.fake_session.get_message("Boss", None)
+    def test_notify_b10_init(self):
+        self.cm.notify_b10_init()
+        msg = self.fake_session.get_message("Init", None)
         self.assertTrue(msg)
         # this one is actually wrong, but 'current status quo'
         self.assertEqual(msg, {"running": "ConfigManager"})
@@ -539,7 +582,8 @@ class TestConfigManager(unittest.TestCase):
     def test_set_config_all(self):
         my_ok_answer = { 'result': [ 0 ] }
 
-        self.assertEqual({"version": 2}, self.cm.config.data)
+        self.assertEqual({"version": config_data.BIND10_CONFIG_DATA_VERSION},
+                         self.cm.config.data)
 
         self.fake_session.group_sendmsg(my_ok_answer, "ConfigManager")
         self.cm.handle_msg(ccsession.create_command(

+ 2 - 2
src/lib/python/isc/log_messages/Makefile.am

@@ -1,7 +1,7 @@
 SUBDIRS = work
 
 EXTRA_DIST = __init__.py
-EXTRA_DIST += bind10_messages.py
+EXTRA_DIST += init_messages.py
 EXTRA_DIST += cmdctl_messages.py
 EXTRA_DIST += ddns_messages.py
 EXTRA_DIST += stats_messages.py
@@ -20,7 +20,7 @@ EXTRA_DIST += dbutil_messages.py
 EXTRA_DIST += msgq_messages.py
 
 CLEANFILES = __init__.pyc
-CLEANFILES += bind10_messages.pyc
+CLEANFILES += init_messages.pyc
 CLEANFILES += cmdctl_messages.pyc
 CLEANFILES += ddns_messages.pyc
 CLEANFILES += stats_messages.pyc

+ 0 - 1
src/lib/python/isc/log_messages/bind10_messages.py

@@ -1 +0,0 @@
-from work.bind10_messages import *

+ 1 - 0
src/lib/python/isc/log_messages/init_messages.py

@@ -0,0 +1 @@
+from work.init_messages import *

+ 1 - 1
src/lib/server_common/portconfig.cc

@@ -152,7 +152,7 @@ installListenAddresses(const AddressList& new_addresses,
         throw;
     } catch (const exception& e) {
         // Any other kind of exception is fatal. It might mean we are in
-        // inconsistent state with the boss/socket creator, so we abort
+        // inconsistent state with the b10-init/socket creator, so we abort
         // to make sure it doesn't last.
         LOG_FATAL(logger, SRVCOMM_EXCEPTION_ALLOC).arg(e.what());
         abort();

+ 4 - 3
src/lib/server_common/portconfig.h

@@ -92,8 +92,9 @@ parseAddresses(isc::data::ConstElementPtr addresses,
 /// but removes all the sockets it listened on. One of the exceptions is
 /// propagated.
 ///
-/// The ports are requested from the socket creator through boss. Therefore
-/// you need to initialize the SocketRequestor before using this function.
+/// The ports are requested from the socket creator through b10-init.
+/// Therefore you need to initialize the SocketRequestor before using this
+/// function.
 ///
 /// \param new_addresses are the addresses you want to listen on.
 /// \param address_store is the place you store your current addresses. It is
@@ -107,7 +108,7 @@ parseAddresses(isc::data::ConstElementPtr addresses,
 ///
 /// \throw asiolink::IOError when initialization or closing of socket fails.
 /// \throw isc::server_common::SocketRequestor::Socket error when the
-///     boss/socket creator doesn't want to give us the socket.
+///     b10-init/socket creator doesn't want to give us the socket.
 /// \throw std::bad_alloc when allocation fails.
 /// \throw isc::InvalidOperation when the function is called and the
 ///     SocketRequestor isn't initialized yet.

+ 18 - 18
src/lib/server_common/socket_request.cc

@@ -34,21 +34,21 @@ namespace server_common {
 namespace {
 SocketRequestor* requestor(NULL);
 
-// Before the boss process calls send_fd, it first sends this
+// Before the b10-init process calls send_fd, it first sends this
 // string to indicate success, followed by the file descriptor
 const std::string& CREATOR_SOCKET_OK() {
     static const std::string str("1\n");
     return (str);
 }
 
-// Before the boss process calls send_fd, it sends this
+// Before the b10-init process calls send_fd, it sends this
 // string to indicate failure. It will not send a file descriptor.
 const std::string& CREATOR_SOCKET_UNAVAILABLE() {
     static const std::string str("0\n");
     return (str);
 }
 
-// The name of the ccsession command to request a socket from boss
+// The name of the ccsession command to request a socket from b10-init
 // (the actual format of command and response are hardcoded in their
 // respective methods)
 const std::string& REQUEST_SOCKET_COMMAND() {
@@ -56,7 +56,7 @@ const std::string& REQUEST_SOCKET_COMMAND() {
     return (str);
 }
 
-// The name of the ccsession command to tell boss we no longer need
+// The name of the ccsession command to tell b10-init we no longer need
 // a socket (the actual format of command and response are hardcoded
 // in their respective methods)
 const std::string& RELEASE_SOCKET_COMMAND() {
@@ -69,7 +69,7 @@ const size_t SOCKET_ERROR_CODE = 2;
 const size_t SHARE_ERROR_CODE = 3;
 
 // A helper converter from numeric protocol ID to the corresponding string.
-// used both for generating a message for the boss process and for logging.
+// used both for generating a message for the b10-init process and for logging.
 inline const char*
 protocolString(SocketRequestor::Protocol protocol) {
     switch (protocol) {
@@ -84,7 +84,7 @@ protocolString(SocketRequestor::Protocol protocol) {
 
 // Creates the cc session message to request a socket.
 // The actual command format is hardcoded, and should match
-// the format as read in bind10_src.py.in
+// the format as read in b10-init.py.in
 isc::data::ConstElementPtr
 createRequestSocketMessage(SocketRequestor::Protocol protocol,
                            const std::string& address, uint16_t port,
@@ -125,7 +125,7 @@ createReleaseSocketMessage(const std::string& token) {
     return (isc::config::createCommand(RELEASE_SOCKET_COMMAND(), release));
 }
 
-// Checks and parses the response receive from Boss
+// Checks and parses the response receive from Init
 // If successful, token and path will be set to the values found in the
 // answer.
 // If the response was an error response, or does not contain the
@@ -158,7 +158,7 @@ readRequestSocketAnswer(isc::data::ConstElementPtr recv_msg,
     path = answer->get("path")->stringValue();
 }
 
-// Connect to the domain socket that has been received from Boss.
+// Connect to the domain socket that has been received from Init.
 // (i.e. the one that is used to pass created sockets over).
 //
 // This should only be called if the socket had not been connected to
@@ -211,14 +211,14 @@ createFdShareSocket(const std::string& path) {
 // \return the socket fd that has been read
 int
 getSocketFd(const std::string& token, int sock_pass_fd) {
-    // Tell the boss the socket token.
+    // Tell b10-init the socket token.
     const std::string token_data = token + "\n";
     if (!isc::util::io::write_data(sock_pass_fd, token_data.c_str(),
                                    token_data.size())) {
         isc_throw(SocketRequestor::SocketError, "Error writing socket token");
     }
 
-    // Boss first sends some data to signal that getting the socket
+    // Init first sends some data to signal that getting the socket
     // from its cache succeeded
     char status[3];        // We need a space for trailing \0, hence 3
     memset(status, 0, 3);
@@ -226,7 +226,7 @@ getSocketFd(const std::string& token, int sock_pass_fd) {
         isc_throw(SocketRequestor::SocketError,
                   "Error reading status code while requesting socket");
     }
-    // Actual status value hardcoded by boss atm.
+    // Actual status value hardcoded by b10-init atm.
     if (CREATOR_SOCKET_UNAVAILABLE() == status) {
         isc_throw(SocketRequestor::SocketError,
                   "CREATOR_SOCKET_UNAVAILABLE returned");
@@ -258,7 +258,7 @@ getSocketFd(const std::string& token, int sock_pass_fd) {
 }
 
 // This implementation class for SocketRequestor uses
-// a CC session for communication with the boss process,
+// a CC session for communication with the b10-init process,
 // and fd_share to read out the socket(s).
 // Since we only use a reference to the session, it must never
 // be closed during the lifetime of this class
@@ -300,10 +300,10 @@ public:
                                        share_name.empty() ? app_name_ :
                                        share_name);
 
-        // Send it to boss
-        const int seq = session_.group_sendmsg(request_msg, "Boss");
+        // Send it to b10-init
+        const int seq = session_.group_sendmsg(request_msg, "Init");
 
-        // Get the answer from the boss.
+        // Get the answer from b10-init.
         // Just do a blocking read, we can't really do much anyway
         isc::data::ConstElementPtr env, recv_msg;
         if (!session_.group_recvmsg(env, recv_msg, false, seq)) {
@@ -330,12 +330,12 @@ public:
         const isc::data::ConstElementPtr release_msg =
             createReleaseSocketMessage(token);
 
-        // Send it to boss
-        const int seq = session_.group_sendmsg(release_msg, "Boss");
+        // Send it to b10-init
+        const int seq = session_.group_sendmsg(release_msg, "Init");
         LOG_DEBUG(logger, DBGLVL_TRACE_DETAIL, SOCKETREQUESTOR_RELEASESOCKET).
             arg(token);
 
-        // Get the answer from the boss.
+        // Get the answer from b10-init.
         // Just do a blocking read, we can't really do much anyway
         isc::data::ConstElementPtr env, recv_msg;
         if (!session_.group_recvmsg(env, recv_msg, false, seq)) {

+ 2 - 2
src/lib/server_common/tests/portconfig_unittest.cc

@@ -330,8 +330,8 @@ TEST_F(InstallListenAddressesDeathTest, inconsistent) {
     }
 }
 
-// If we are unable to tell the boss we closed a socket, we abort, as we are
-// not consistent with the boss most probably.
+// If we are unable to tell the b10-init we closed a socket, we abort, as we
+// are not consistent with b10-init most probably.
 TEST_F(InstallListenAddressesDeathTest, cantClose) {
     if (!isc::util::unittests::runningOnValgrind()) {
         installListenAddresses(valid_, store_, dnss_);

+ 4 - 4
src/lib/server_common/tests/socket_requestor_test.cc

@@ -76,7 +76,7 @@ TEST(SocketRequestorAccess, initialized) {
     initTestSocketRequestor(NULL);
 }
 
-// This class contains a fake (module)ccsession to emulate answers from Boss
+// This class contains a fake (module)ccsession to emulate answers from Init
 class SocketRequestorTest : public ::testing::Test {
 public:
     SocketRequestorTest() : session(ElementPtr(new ListElement),
@@ -100,7 +100,7 @@ public:
     }
 
     // Creates a valid socket request answer, as it would be sent by
-    // Boss. 'valid' in terms of format, not values
+    // Init. 'valid' in terms of format, not values
     void
     addAnswer(const std::string& token, const std::string& path) {
         ElementPtr answer_part = Element::createMap();
@@ -141,7 +141,7 @@ createExpectedRequest(const std::string& address,
 
     // create the envelope
     const ElementPtr packet = Element::createList();
-    packet->add(Element::create("Boss"));
+    packet->add(Element::create("Init"));
     packet->add(Element::create("*"));
     packet->add(createCommand("get_socket", command_args));
     packet->add(Element::create(-1));
@@ -282,7 +282,7 @@ createExpectedRelease(const std::string& token) {
 
     // create the envelope
     const ElementPtr packet = Element::createList();
-    packet->add(Element::create("Boss"));
+    packet->add(Element::create("Init"));
     packet->add(Element::create("*"));
     packet->add(createCommand("drop_socket", command_args));
     packet->add(Element::create(-1));

+ 2 - 2
tests/lettuce/configurations/auth/auth_badzone.config.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [{
             "severity": "DEBUG",
@@ -29,7 +29,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-cmdctl": { "special": "cmdctl", "kind": "needed" }

+ 2 - 2
tests/lettuce/configurations/auth/auth_basic.config.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -13,7 +13,7 @@
             "address": "127.0.0.1"
         } ]
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-cmdctl": { "special": "cmdctl", "kind": "needed" }

+ 2 - 2
tests/lettuce/configurations/bindctl/bindctl.config.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -17,7 +17,7 @@
     "data_sources": {
         "classes": {}
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-cmdctl": { "special": "cmdctl", "kind": "needed" }
         }

+ 2 - 2
tests/lettuce/configurations/bindctl_commands.config.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -23,7 +23,7 @@
             "address": "127.0.0.1"
         } ]
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "dispensable", "special": "auth" },
             "b10-xfrin": { "address": "Xfrin", "kind": "dispensable" },

+ 2 - 2
tests/lettuce/configurations/ddns/ddns.config.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [
             {
@@ -39,7 +39,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-xfrout": {
                 "kind": "dispensable",

+ 2 - 2
tests/lettuce/configurations/ddns/noddns.config.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [
             {
@@ -35,7 +35,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-xfrout": {"kind": "dispensable"},
             "b10-auth": {"kind": "needed", "special": "auth"},

+ 1 - 1
tests/lettuce/configurations/default.config

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,

+ 2 - 2
tests/lettuce/configurations/example.org.config.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -26,7 +26,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-cmdctl": { "special": "cmdctl", "kind": "needed" }

+ 2 - 2
tests/lettuce/configurations/example.org.inmem.config

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [{
             "severity": "DEBUG",
@@ -26,7 +26,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-cmdctl": { "special": "cmdctl", "kind": "needed" }

+ 2 - 2
tests/lettuce/configurations/example2.org.config

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "severity": "DEBUG",
@@ -27,7 +27,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-cmdctl": { "special": "cmdctl", "kind": "needed" }

+ 2 - 2
tests/lettuce/configurations/inmemory_over_sqlite3/secondary.conf

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -29,7 +29,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-xfrin": { "address": "Xfrin", "kind": "dispensable" },

+ 2 - 2
tests/lettuce/configurations/ixfr-out/testset1-config.db

@@ -9,7 +9,7 @@
             }
         ]
     },
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers":
             [
@@ -51,7 +51,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-xfrin": { "address": "Xfrin", "kind": "dispensable" },

+ 2 - 2
tests/lettuce/configurations/multi_instance/multi_auth.config.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -24,7 +24,7 @@
             }]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth-2": {"kind": "dispensable", "special": "auth"},
             "b10-auth": {"kind": "dispensable", "special": "auth"},

+ 2 - 2
tests/lettuce/configurations/no_db_file.config

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "severity": "DEBUG",
@@ -27,7 +27,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-cmdctl": { "special": "cmdctl", "kind": "needed" }

+ 2 - 2
tests/lettuce/configurations/nsec3/nsec3_auth.config

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [
             {
@@ -27,7 +27,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": {"kind": "needed", "special": "auth"},
             "b10-cmdctl": {"kind": "needed", "special": "cmdctl"}

+ 31 - 1
tests/lettuce/configurations/resolver/resolver_basic.config.orig

@@ -1 +1,31 @@
-{"version": 2, "Logging": {"loggers": [{"severity": "DEBUG", "name": "*", "debuglevel": 99}]}, "Resolver": {"query_acl": [{"action": "REJECT", "from": "127.0.0.1"}], "listen_on": [{"port": 47806, "address": "127.0.0.1"}]}, "Boss": {"components": {"b10-resolver": {"kind": "needed"}, "b10-cmdctl": {"kind": "needed", "special": "cmdctl"}}}}
+{
+    "version": 3,
+    "Logging": {
+        "loggers": [ {
+            "severity": "DEBUG",
+            "name": "*",
+            "debuglevel": 99
+        } ]
+    },
+    "Resolver": {
+        "query_acl": [ {
+            "action": "REJECT",
+            "from": "127.0.0.1"
+        } ],
+        "listen_on": [ {
+            "port": 47806,
+            "address": "127.0.0.1"
+        } ]
+    },
+    "Init": {
+        "components": {
+            "b10-resolver": {
+                "kind": "needed"
+            },
+            "b10-cmdctl": {
+                "kind": "needed",
+                "special": "cmdctl"
+            }
+        }
+    }
+}

+ 2 - 2
tests/lettuce/configurations/xfrin/inmem_slave.conf

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -30,7 +30,7 @@
             ]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-xfrin": { "address": "Xfrin", "kind": "dispensable" },

+ 2 - 2
tests/lettuce/configurations/xfrin/retransfer_master.conf.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -36,7 +36,7 @@
     "Stats": {
         "poll-interval": 1
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-xfrout": { "address": "Xfrout", "kind": "dispensable" },

+ 2 - 2
tests/lettuce/configurations/xfrin/retransfer_master_nons.conf.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -36,7 +36,7 @@
     "Stats": {
         "poll-interval": 1
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-xfrout": { "address": "Xfrout", "kind": "dispensable" },

+ 2 - 2
tests/lettuce/configurations/xfrin/retransfer_slave.conf.orig

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -24,7 +24,7 @@
             }]
         }
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-xfrin": { "address": "Xfrin", "kind": "dispensable" },

+ 2 - 2
tests/lettuce/configurations/xfrin/retransfer_slave_notify.conf

@@ -1,5 +1,5 @@
 {
-    "version": 2,
+    "version": 3,
     "Logging": {
         "loggers": [ {
             "debuglevel": 99,
@@ -37,7 +37,7 @@
             "class": "IN"
         } ]
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": { "kind": "needed", "special": "auth" },
             "b10-xfrin": { "address": "Xfrin", "kind": "dispensable" },

+ 3 - 3
tests/lettuce/data/commands/bad_command

@@ -1,8 +1,8 @@
 !echo shouldshow
 # just add something so the test can verify it's reverted
-config add /Boss/components b10-auth
-config set /Boss/components/b10-auth/kind needed
-config set /Boss/components/b10-auth/special auth
+config add /Init/components b10-auth
+config set /Init/components/b10-auth/kind needed
+config set /Init/components/b10-auth/special auth
 bad command
 # this should not be reached
 !echo shouldnotshow

+ 11 - 11
tests/lettuce/features/bindctl_commands.feature

@@ -7,7 +7,7 @@ Feature: control with bindctl
         # a number of modules. It then removes all non-essential modules,
         # and checks whether they do disappear from the list of running
         # modules (note that it 'misuses' the help command for this,
-        # there is a Boss command 'show_processes' but it's output is
+        # there is a Init command 'show_processes' but it's output is
         # currently less standardized than 'help')
         Given I have bind10 running with configuration bindctl_commands.config
         And wait for bind10 stderr message BIND10_STARTED_CC
@@ -19,7 +19,7 @@ Feature: control with bindctl
         And wait for bind10 stderr message STATS_STARTING
         And wait for bind10 stderr message STATSHTTPD_STARTED
 
-        Then remove bind10 configuration Boss/components/NOSUCHMODULE
+        Then remove bind10 configuration Init/components/NOSUCHMODULE
         last bindctl output should contain Error
 
         bind10 module Xfrout should be running
@@ -30,29 +30,29 @@ Feature: control with bindctl
         bind10 module StatsHttpd should be running
         bind10 module Resolver should not be running
 
-        Then remove bind10 configuration Boss/components value b10-xfrout
+        Then remove bind10 configuration Init/components value b10-xfrout
         And wait for new bind10 stderr message BIND10_PROCESS_ENDED
         last bindctl output should not contain Error
 
         # assuming it won't error for further modules (if it does, the final
         # 'should not be running' tests would fail anyway)
-        Then remove bind10 configuration Boss/components value b10-stats-httpd
+        Then remove bind10 configuration Init/components value b10-stats-httpd
         And wait for new bind10 stderr message BIND10_PROCESS_ENDED
         last bindctl output should not contain Error
 
-        Then remove bind10 configuration Boss/components value b10-stats
+        Then remove bind10 configuration Init/components value b10-stats
         And wait for new bind10 stderr message BIND10_PROCESS_ENDED
         last bindctl output should not contain Error
 
-        Then remove bind10 configuration Boss/components value b10-zonemgr
+        Then remove bind10 configuration Init/components value b10-zonemgr
         And wait for new bind10 stderr message BIND10_PROCESS_ENDED
         last bindctl output should not contain Error
 
-        Then remove bind10 configuration Boss/components value b10-xfrin
+        Then remove bind10 configuration Init/components value b10-xfrin
         And wait for new bind10 stderr message BIND10_PROCESS_ENDED
         last bindctl output should not contain Error
 
-        Then remove bind10 configuration Boss/components value b10-auth
+        Then remove bind10 configuration Init/components value b10-auth
         And wait for new bind10 stderr message BIND10_PROCESS_ENDED
         last bindctl output should not contain Error
 
@@ -103,7 +103,7 @@ Feature: control with bindctl
         last bindctl output should not contain shouldnotshow
         # This would fail if the entire list was passed, or the configuration
         # was committed
-        send bind10 the command config show Boss/components
+        send bind10 the command config show Init/components
         last bindctl output should not contain b10-auth
 
         # nested_command contains another execute script
@@ -124,8 +124,8 @@ Feature: control with bindctl
 
         When I send bind10 the command execute init_authoritative_server show
         # just test some parts of the output
-        last bindctl output should contain /Boss/components/b10-auth/special
-        last bindctl output should contain /Boss/components/b10-zonemgr/kind
+        last bindctl output should contain /Init/components/b10-auth/special
+        last bindctl output should contain /Init/components/b10-zonemgr/kind
         last bindctl output should contain Please
 
         # nothing should have been changed

+ 2 - 2
tests/lettuce/features/ddns_system.feature

@@ -48,7 +48,7 @@ Feature: DDNS System
         And wait for new bind10 stderr message DDNS_STOPPED
 
         # Test 7
-        # BoB should restart it
+        # Init should restart it
         And wait for new bind10 stderr message DDNS_STARTED
 
         # Test 8
@@ -65,7 +65,7 @@ Feature: DDNS System
         # Test 9
         When I send bind10 the command Auth shutdown
         And wait for new bind10 stderr message AUTH_SHUTDOWN
-        # BoB should restart it automatically
+        # Init should restart it automatically
         And wait for new bind10 stderr message AUTH_SERVER_STARTED
 
         # Test 10

+ 1 - 1
tests/lettuce/features/default.feature

@@ -8,7 +8,7 @@ Feature: default bind10 config
     And wait for bind10 stderr message STATS_STARTING
 
     # These should be running
-    bind10 module Boss should be running
+    bind10 module Init should be running
     And bind10 module Logging should be running
     And bind10 module Stats should be running
 

+ 5 - 5
tests/lettuce/features/multi_instance.feature

@@ -34,7 +34,7 @@ Feature: Multiple instances
         If I remember the pid of process b10-auth
         And remember the pid of process b10-auth-2
 
-        When I remove bind10 configuration Boss/components value b10-auth-2
+        When I remove bind10 configuration Init/components value b10-auth-2
         And wait for new bind10 stderr message BIND10_PROCESS_ENDED
 
         Then the pid of process b10-auth should not have changed
@@ -42,9 +42,9 @@ Feature: Multiple instances
 
         When I send bind10 the following commands
         """
-        config add Boss/components b10-auth-2
-        config set Boss/components/b10-auth-2/special auth
-        config set Boss/components/b10-auth-2/kind needed
+        config add Init/components b10-auth-2
+        config set Init/components/b10-auth-2/special auth
+        config set Init/components/b10-auth-2/kind needed
         config commit
         """
         And wait for new bind10 stderr message AUTH_SERVER_STARTED
@@ -53,7 +53,7 @@ Feature: Multiple instances
         Then the pid of process b10-auth should not have changed
         A query for example.com should have rcode REFUSED
 
-        When I remove bind10 configuration Boss/components value b10-auth
+        When I remove bind10 configuration Init/components value b10-auth
         And wait for new bind10 stderr message BIND10_PROCESS_ENDED
         Then the pid of process b10-auth-2 should not have changed
         A query for example.com should have rcode REFUSED

+ 10 - 10
tests/lettuce/features/terrain/bind10_control.py

@@ -202,28 +202,28 @@ def parse_bindctl_output_as_data_structure():
                       "parseable data structure: '" + output + "': " + str(ve)
 
 def find_process_pid(step, process_name):
-    """Helper function to request the running processes from Boss, and
+    """Helper function to request the running processes from Init, and
        return the pid of the process with the given process_name.
-       Fails with an assert if the response from boss is not valid JSON,
+       Fails with an assert if the response from b10-init is not valid JSON,
        or if the process with the given name is not found.
     """
     # show_processes output is a list of lists, where the inner lists
     # are of the form [ pid, "name" ]
     # Not checking data form; errors will show anyway (if these turn
     # out to be too vague, we can change this)
-    step.given('send bind10 the command Boss show_processes')
+    step.given('send bind10 the command Init show_processes')
     running_processes = parse_bindctl_output_as_data_structure()
 
     for process in running_processes:
         if process[1] == process_name:
             return process[0]
     assert False, "Process named " + process_name +\
-                  " not found in output of Boss show_processes";
+                  " not found in output of Init show_processes";
 
 @step("remember the pid of process ([\S]+)")
 def remember_pid(step, process_name):
     """Stores the PID of the process with the given name as returned by
-       Boss show_processes command.
+       Init show_processes command.
        Fails if the process with the given name does not appear to exist.
        Stores the component_name->pid value in the dict world.process_pids.
        This should only be used by the related step
@@ -239,7 +239,7 @@ def remember_pid(step, process_name):
 @step('pid of process ([\S]+) should not have changed')
 def check_pid(step, process_name):
     """Checks the PID of the process with the given name as returned by
-       Boss show_processes command.
+       Init show_processes command.
        Fails if the process with the given name does not appear to exist.
        Fails if the process with the given name exists, but has a different
        pid than it had when the step 'remember the pid of process' was
@@ -343,9 +343,9 @@ def configure_ddns_on(step):
     step.behave_as("""
     When I send bind10 the following commands
         \"\"\"
-        config add Boss/components b10-ddns
-        config set Boss/components/b10-ddns/kind dispensable
-        config set Boss/components/b10-ddns/address DDNS
+        config add Init/components b10-ddns
+        config set Init/components/b10-ddns/kind dispensable
+        config set Init/components/b10-ddns/address DDNS
         config commit
         \"\"\"
     """)
@@ -358,7 +358,7 @@ def configure_ddns_off(step):
     step.behave_as("""
     When I send bind10 the following commands
         \"\"\"
-        config remove Boss/components b10-ddns
+        config remove Init/components b10-ddns
         config commit
         \"\"\"
     """)

+ 8 - 8
tests/system/bindctl/tests.sh

@@ -38,8 +38,8 @@ if [ $status != 0 ]; then echo "I:failed"; fi
 n=`expr $n + 1`
 
 echo "I:Starting b10-auth and checking that it works ($n)"
-echo 'config add Boss/components b10-auth
-config set Boss/components/b10-auth { "special": "auth", "kind": "needed" }
+echo 'config add Init/components b10-auth
+config set Init/components/b10-auth { "special": "auth", "kind": "needed" }
 config commit
 quit
 ' | $RUN_BINDCTL \
@@ -68,7 +68,7 @@ if [ $status != 0 ]; then echo "I:failed"; fi
 n=`expr $n + 1`
 
 echo "I:Stopping b10-auth and checking that ($n)"
-echo 'config remove Boss/components b10-auth
+echo 'config remove Init/components b10-auth
 config commit
 quit
 ' | $RUN_BINDCTL \
@@ -79,8 +79,8 @@ if [ $status != 0 ]; then echo "I:failed"; fi
 n=`expr $n + 1`
 
 echo "I:Restarting b10-auth and checking that ($n)"
-echo 'config add Boss/components b10-auth
-config set Boss/components/b10-auth { "special": "auth", "kind": "needed" }
+echo 'config add Init/components b10-auth
+config set Init/components/b10-auth { "special": "auth", "kind": "needed" }
 config commit
 quit
 ' | $RUN_BINDCTL \
@@ -143,8 +143,8 @@ n=`expr $n + 1`
 echo "I:Starting more b10-auths and checking that ($n)"
 for i in 2 3
 do
-    echo 'config add Boss/components b10-auth-'$i'
-config set Boss/components/b10-auth-'$i' { "special": "auth", "kind": "needed" }
+    echo 'config add Init/components b10-auth-'$i'
+config set Init/components/b10-auth-'$i' { "special": "auth", "kind": "needed" }
 config commit
 quit
 ' | $RUN_BINDCTL \
@@ -180,7 +180,7 @@ n=`expr $n + 1`
 echo "I:Stopping extra b10-auths and checking that ($n)"
 for i in 3 2
 do
-    echo 'config remove Boss/components b10-auth-'$i'
+    echo 'config remove Init/components b10-auth-'$i'
 config commit
 quit
 ' | $RUN_BINDCTL \

+ 1 - 1
tests/system/glue/nsx1/b10-config.db.in

@@ -23,7 +23,7 @@
         }
      ]
  },
- "Boss": {
+ "Init": {
    "components": {
      "b10-auth": {"kind": "needed", "special": "auth" },
      "b10-xfrin": { "address": "Xfrin", "kind": "dispensable" },

+ 1 - 1
tests/system/ixfr/b10-config.db.in

@@ -38,7 +38,7 @@
             "class": "IN"
         }]
     },
-    "Boss": {
+    "Init": {
         "components": {
             "b10-auth": {"kind": "needed", "special": "auth" },
             "b10-xfrin": { "address": "Xfrin", "kind": "dispensable" },