rhnsd internals

Alan Milligan alan at balclutha.org
Mon May 2 14:49:56 UTC 2005


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

I'm attempting to figure out how rhnsd works and am having some rather
fundamental issues I'd appreciate explanations for.  I'm specifically
talking about the queue.get() and queue.submit() XML-RPC requests in
rhn_check.  From looking at code, this process looks esoteric (but
possibly very cunning) to say the least.

Firstly, this seems to work like a queue whereby each system, identified
by ids may have a list of action objects awaiting retrieval, based upon
uptime timestamps.

I'm trying to visualise what these queue 'actions' may look like.
Obviously, there isn't one waiting for each known system, this must be
calculated in a generalised fashion.  How does one then know when each
'action' has served it's purpose and can be removed from the queue?

I'm also trying to figure out the format these actions are transmitted
to the rhnsd client.  It appears to be unmarshallable as a consequent
XML-RPC call for the client to make.  I see that each action is
dynamically constructing a functor in /usr/share/rhn/actions.  But am a
bit baffled as to how its all supposed to work, parameters instantiated
and passed into the methods.  An example of actual action responses sent
to the client would go a long way to clarifying this for me.

Also, it would appear the rhnsd client continues polling for actions
until it receives an empty dict.  Perhaps the explanation of what
constitutes an action will prove that this is eminently sensible behaviour.

TIA, Alan

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFCdj4UCfroLk4EZpkRAn33AJ9z6abFqKbNJnqWyCj6V9LoaZ6/5QCeMh4S
aSe03b31wVPdQmXIRkglyUQ=
=DD72
-----END PGP SIGNATURE-----




More information about the devel mailing list