def main(): xs.watch("@introduceDomain", "reload") xs.watch("@releaseDomain", "reload") setup_watches() while True: (path, token) = xs.read_watch() if token == "reload": setup_watches() else: if path.endswith("/state"): handle_vbd_state(path)
def main(): xs.watch('@introduceDomain', 'reload') xs.watch('@releaseDomain', 'reload') setup_watches() while True: (path, token) = xs.read_watch() if token == 'reload': setup_watches() else: if path.endswith('/state'): handle_vbd_state(path)
def setup_watches(): global domain_list new_domain_list = xs.ls("", "/local/domain") for dom in new_domain_list: if dom not in domain_list: print "Adding: %s" % dom xs.watch("/local/domain/%s/backend/vbd" % dom, int(dom)) for dom in domain_list: if dom not in new_domain_list: print "Removing: %s" % dom xs.unwatch("/local/domain/%s/backend/vbd" % dom, int(dom)) domain_list = new_domain_list
def setup_watches(): global domain_list new_domain_list = xs.ls('', '/local/domain') for dom in new_domain_list: if dom not in domain_list: print "Adding: %s" % dom xs.watch('/local/domain/%s/backend/vbd' % dom, int(dom)) for dom in domain_list: if dom not in new_domain_list: print "Removing: %s" % dom xs.unwatch('/local/domain/%s/backend/vbd' % dom, int(dom)) domain_list = new_domain_list
def main(): xs = xen.lowlevel.xs.xs() suppress = set() xs.watch('/local/domain', '') for path, token in iter(xs.read_watch, None): if path in suppress: suppress.remove(path) continue if path.endswith('/state') and 'backend' in path: print('got watch {}'.format(path)) while True: t = xs.transaction_start() state = xs.read(t, path) print('writing or not {} to {}'.format(state, path)) if state is None: break xs.write(t, path, state) if xs.transaction_end(t, 0): break suppress.add(path)