http://www.redhat.com/spacewalk/documentation/python-doc/
Python Backend ArchitectureIf you examine the backend source code comprising all of Spacewalk you will see it split up into 2 major areas:
This is the set of client side libraries that run on the managed system. The client code periodically checks in with the server which sends instructions to the client to execute. Examples: rhn_check, rhn_register, yum-rhn-plugin, rhnmd.
Python Server backend code:This is the server side code that exposes an XMLRPC interface which the clients interact with. It encapsulates a good portion of RHN Satellite's business rules and validation. In order to service up this XMLRPC interface a hand coded python object mapping of RHN's database schema was developed.
SPACEWALK SERVER BACKEND ARCHITECTURE
======================================
_____________
_________ ________________ | FILESYSTEM |----------|
| | | APACHE |-------->|____________| |
| CLIENT |----->| + | ________ ______v_____
| | | SERVER | | | | SATELLITE | CHANNEL
|_________| | BACKEND |-------->| DB |-------->| EXPORTER |----> DUMPS
^ | + | |_______| |___________|
| rhn-check | XMLRPC | ^ ^
| | HANDLERS | | | ____________
| |________________| | |-----------| SAT-SYNC |---> HOSTED
__________ ____|__________ |___________|
| OSAD |------------- jabber ------------->| OSA |
|_________| |DISPATCHER |
|_____________|
This handler provides capability for rhnpush client to push the package information and associate it with the db and the filesystem.
This handler provides calls for rhn-applet tool for polling package information.
These handlers are used by config management client to communicate with the server in managing config files and channels.
This handler is mainly internal to the satellite itself and essentially used by satellite sync.
This handler is mainly responsible for providing capability for registation, scheduled actions, package updates and proxy functionality. Tools using this handler are registration client, up2date, rhn_check and proxy.
This is used for package information uploads and other additional capabilities can be added here
Installing Backend Server Code:Deploying the python backend on your local workstation could be useful if you wanna test/work on the code locally.
$ yum install httpd (or whatever you do)
$ yum install rhnlib
or build it from source : $ cd <git checkout>/client/rhel/rhnlib $ sudo make install -f Makefile.rhnlib
$ cd <git checkout>/backend
$ sudo make install -f Makefile.backend
for i in /etc/httpd/conf/rhn/*.conf; do sed -i 's/\"/default/' $i; done;
In /etc/rhn/rhn.conf: default_db = rhnsat/rhnsat@rhnsat (or whatever db you want)
encrypted_passwords = 1
$ service httpd start
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4