Hello spacewalkers,

recently I started discovering the spacewalk virtualization mechanism
(rhnVirtualization.py, poller.py etc.) and there is a couple of things
that aren't entirely clear to me. I'm sure some of them must have been
thought through by the spacewalk team in the past and can be answered
in seconds :) I'd be grateful for any help here.

1, No cleaning of the virtual machines that are no more reported by
the poller:
Currently the code flags non-existent machines as 'stopped'. This can
fill the 'rhnVirtualInstance' table pretty quickly with "dead" virtual
guest instances in the stopped state.

The comment in 'poll_state' method in 'poller.py' explains there is no
such thing as 'stopped' state. But libvirt can list out the stopped (aka
'defined') persistent domains [1]. Is there some reason why the
automatic cleanup of such domains could not be implemented in the

(Softer solution would be to introduce a new state (e.g. 'deleted') and
flag the dead virtual instances with it in case they aren't reported
anymore. This would at least enable easier clean-up of them (basically
something similar we do for inactive systems). I wonder if there is some
fundamental problem that would prevent implementing this... I believe
this should be pretty safe, do you agree?).

2, Purpose of the system.deleteGuestProfiles API endpoint:
Apparently it serves for deleting unregistered guest virtual instances.
IIUC this could be related to my previous question - it could serve for
cleaning dead guest virtual instances, but this is just my speculation.

Our traces lead to RFE [2] which is a clone of a private RFE [3]. Could
you please take a quick peek and clarify this one? What was the reason
for implementing it?

Any help is appreciated.


Spacewalk-devel mailing list

Reply via email to