From mboxrd@z Thu Jan 1 00:00:00 1970 From: Charles Duffy Subject: xenstore watches not firing for external-to-xend code using xen.xend.xenstore classes Date: Thu, 09 Feb 2006 10:35:50 -0600 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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. Thanks! --------- #!/usr/bin/env python from xen.xend.xenstore.xstransact import xstransact from xen.xend.xenstore.xswatch import xswatch from pprint import pprint import time, logging logging.basicConfig(level=logging.DEBUG) TROOT = '/tool/watchdog' class XenWatchdog: def __init__(self): 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 ])