summaryrefslogtreecommitdiffstats
path: root/doc/development/core.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/development/core.txt')
-rw-r--r--doc/development/core.txt29
1 files changed, 22 insertions, 7 deletions
diff --git a/doc/development/core.txt b/doc/development/core.txt
index 145be3338..3607533ea 100644
--- a/doc/development/core.txt
+++ b/doc/development/core.txt
@@ -20,23 +20,26 @@ written to take advantage of other technologies, e.g., `Tornado
A core implementation needs to:
-* Override :func:`Bcfg2.Server.Core.Core._daemonize` to handle
+* Override :func:`Bcfg2.Server.Core.BaseCore._daemonize` to handle
daemonization, writing the PID file, and dropping privileges.
-* Override :func:`Bcfg2.Server.Core.Core._run` to handle server
+* Override :func:`Bcfg2.Server.Core.BaseCore._run` to handle server
startup.
-* Override :func:`Bcfg2.Server.Core.Core._block` to run the blocking
- server loop.
-* Call :func:`Bcfg2.Server.Core.Core.shutdown` on orderly shutdown.
+* Override :func:`Bcfg2.Server.Core.BaseCore._block` to run the
+ blocking server loop.
+* Call :func:`Bcfg2.Server.Core.BaseCore.shutdown` on orderly
+ shutdown.
Nearly all XML-RPC handling is delegated entirely to the core
implementation. It needs to:
-* Call :func:`Bcfg2.Server.Core.Core.authenticate` to authenticate
+* Call :func:`Bcfg2.Server.Core.BaseCore.authenticate` to authenticate
clients.
* Handle :exc:`xmlrpclib.Fault` exceptions raised by the exposed
XML-RPC methods as appropriate.
* Dispatch XML-RPC method invocations to the appropriate method,
- including Plugin RMI.
+ including Plugin RMI. The client address pair (a tuple of remote IP
+ address and remote hostname) must be prepended to the argument list
+ passed to built-in methods (i.e., not to plugin RMI).
Additionally, running and configuring the server is delegated to the
core. It needs to honor the configuration options that influence how
@@ -54,8 +57,20 @@ Core Implementations
Builtin Core
------------
+The builtin server core consists of the core implementation
+(:class:`Bcfg2.Server.BuiltinCore.Core`) and the XML-RPC server
+implementation (:mod:`Bcfg2.SSLServer`).
+
+Core
+~~~~
+
.. automodule:: Bcfg2.Server.BuiltinCore
+XML-RPC Server
+~~~~~~~~~~~~~~
+
+.. automodule:: Bcfg2.SSLServer
+
CherryPy Core
-------------