def init (self, net=None, url=None): Master.init (self) if net: peer= None finished= self._terminate while not finished: peer= self.discover (net) finished= self._terminate or peer if peer: self.gossip (peer) self.propalate () return True else: return False if url: key= self.getNavelKey (url) peer= self._peers.getNavel (url, key) self.gossip (peer) self.propalate () return True return False
def init(self, net=None, url=None): Master.init(self) if net: peer = None finished = self._terminate while not finished: peer = self.discover(net) finished = self._terminate or peer if peer: self.gossip(peer) self.propalate() return True else: return False if url: key = self.getNavelKey(url) peer = self._peers.getNavel(url, key) self.gossip(peer) self.propalate() return True return False
def periodic(self): # this one should shout its keys Master.periodic(self) if not self._terminate: # can't do it otherwise # self.sync () pass else: self.debug(1, 'you might be pregnant...')
def periodic (self): # this one should shout its keys Master.periodic (self) if not self._terminate: # can't do it otherwise # self.sync () pass else: self.debug (1, 'you might be pregnant...')
def __init__(self, url, column=0, path='data', space=None, fileName=None): Master.__init__(self, None, url, column, fileName=fileName) self._data = ViceData(self, "%s/data" % (path)) self._handles = {} self._serverType = ViceServer self._size = space # stat self.blocks = None self.fblocks = None self.ufiles = None self.initStat() self.setUrl(url)
def __init__ (self, url, column=0, path='data', space=None, fileName=None): Master.__init__ (self, None, url, column, fileName=fileName) self._data= ViceData (self, "%s/data" % (path)) self._handles= {} self._serverType= ViceServer self._size= space # stat self.blocks= None self.fblocks= None self.ufiles= None self.initStat () self.setUrl (url)
def __init__ (self, url=None, net=None, fileName=None): # Fuse.__init__ (self) Master.__init__ (self, fileName=fileName) self.debug (1, 'v: logging in %s' % fileName) self.inodes= {} self.policy= policies.WeightedUniform () navel= None if url: key= self.getNavelKey (url) navel= self._peers.getNavel (url, key) else: while not navel: navel= self.discover (net) self.gossip (navel)
def periodic (self): self.debug (1, 'periodic') Master.periodic (self) if not self._terminate: # we migh been asked to finish right now. self.stabilize () if random (10)==1: peer= self._peers.getRandomNavel () # don't gossip w/ myself! if not peer==self._self: self.gossip (peer) self.debug (1, "%s <-- %d --> %s" % (self._pred and self._pred.key () or None, self.key (), self._succ and self._succ.key () or None)) else: self.debug (1, 'you might be pregnant...')
def init (self, net=None): Master.init (self) self._data= UmbData (self._key, self._key) self._self= self._peers.getNavel (self._url, self._key, Normal) if net: # create a challenger for new nodes and such self._chal= Challenger (self) self._chal.start () # find a ring and join it or create a new one self.debug (1, 'ping') peer= self.discover (net, self._self) if peer==None: self.debug (1, "gave up! noone's here!") self.createRing () else: self.join (peer)
def __init__ (self, url=None, column=0, fileName=None): # take care of repeated keys! key= random (maxIno) Master.__init__ (self, url, key, column, fileName=fileName) self._succ= None self._pred= None # thread support # RLock's; just in case self._succLock= RLock () self._predLock= RLock () self._serverType= NavelServer self._chal= None self._self= None self._prevSucc= None self._prevPred= None
def stop(self): self.sync() Master.stop(self)
def stop (self): self.sync () Master.stop (self)
def stop (self): self.debug (1, "join'ing challenger...") self._chal.join () Master.stop (self)