def instantiationFailed(reason): reason.trap(InstantiationError) failed=reason.value.value.keys() log.warn("Can't connect to", ", ".join(failed)) # Delete failed nodes from cluster list running=self.getNodesList() for name in failed: running.remove(name) # Re-instanciate cluster without nodes in error d=XenCluster.getDeferInstance(running) d.addCallbacks(startRecover) return d
def instantiationFailed(reason): reason.trap(InstantiationError) failed = reason.value.value.keys() log.warn("Can't connect to", ", ".join(failed)) # Delete failed nodes from cluster list running = self.getNodesList() for name in failed: running.remove(name) # Re-instanciate cluster without nodes in error d = XenCluster.getDeferInstance(running) d.addCallbacks(startRecover) return d
def getCluster(result): d = XenCluster.getDeferInstance(result) d.addCallback(doClusterUpdate) return d
def getCluster(result): d=XenCluster.getDeferInstance(result) d.addCallback(doClusterUpdate) return d
d=XenCluster.getDeferInstance(running) d.addCallbacks(startRecover) return d def startRecover(result): ds=list() for name in netFailed|diskFailed: bothFailed=name in netFailed and name in diskFailed d=threads.deferToThread(result.recover, name, self.status[name]['vms'], not bothFailed) d.addCallback(recoverSucceeded, name) ds.append(d) dl=defer.DeferredList(ds, consumeErrors=1) dl.addCallback(recoverEnded) return dl # Usecase #4: Start recovery of failed nodes if len(netFailed)>0 or len(diskFailed)>0: self.state=MasterService.ST_RECOVERY log.info("Starting recovery process...") d=XenCluster.getDeferInstance(self.getNodesList()) d.addCallbacks(startRecover, instantiationFailed) d.addErrback(recoverFailed) d.addErrback(log.err) # vim: ts=4:sw=4:ai
d = XenCluster.getDeferInstance(running) d.addCallbacks(startRecover) return d def startRecover(result): ds = list() for name in netFailed | diskFailed: bothFailed = name in netFailed and name in diskFailed d = threads.deferToThread(result.recover, name, self.status[name]['vms'], not bothFailed) d.addCallback(recoverSucceeded, name) ds.append(d) dl = defer.DeferredList(ds, consumeErrors=1) dl.addCallback(recoverEnded) return dl # Usecase #4: Start recovery of failed nodes if len(netFailed) > 0 or len(diskFailed) > 0: self.state = MasterService.ST_RECOVERY log.info("Starting recovery process...") d = XenCluster.getDeferInstance(self.getNodesList()) d.addCallbacks(startRecover, instantiationFailed) d.addErrback(recoverFailed) d.addErrback(log.err) # vim: ts=4:sw=4:ai