I'm trying to write a simple xenstore-based watchdog, as discussed
previously on this list (quite some time ago -- it got pushed to the
back of my priority list for a bit).
In any event, I'm trying to use the below code to test the ability of a
program external to xend to place watches on xenstore. However, the
callbacks aren't firing except on initial startup, either when I use
xenstore-write to update /tool/watchdog/test or when I start or shutdown
domains (to invoke the @introduceDomain or @releaseDomain triggers).
Obviously I'm missing something here. If this is a simple error on my
part, or if I'm expecting behaviour that wasn't designed for, I'd
appreciate a pointer or two.
from xen.xend.xenstore.xstransact import xstransact
from xen.xend.xenstore.xswatch import xswatch
from pprint import pprint
import time, logging
TROOT = '/tool/watchdog'
xswatch('@releaseDomain', self.callback, 'releaseDomain')
xswatch('@introduceDomain', self.callback, 'introduceDomain')
xswatch('%(TROOT)s/test' % locals(), self.callback, 'test')
def callback(self, *args, **kwargs):
pprint([ 'onReleaseDomain', args, kwargs ])
Xen-devel mailing list