summaryrefslogtreecommitdiffstats
path: root/doc/development
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-10-15 09:10:10 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-10-15 09:10:21 -0400
commit69faac9ae1d4498b4791af40a8e6bb877b82da77 (patch)
tree32b2f9e69edf1db568ae803b923a3b372798c50e /doc/development
parentaf4158afe15a3dc2ce1d98b80836e130b00eac81 (diff)
downloadbcfg2-69faac9ae1d4498b4791af40a8e6bb877b82da77.tar.gz
bcfg2-69faac9ae1d4498b4791af40a8e6bb877b82da77.tar.bz2
bcfg2-69faac9ae1d4498b4791af40a8e6bb877b82da77.zip
documented core implementations
Diffstat (limited to 'doc/development')
-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
-------------