Example #1
0
    def __init__(self):
        self.role = MasterService.RL_ALONE  # Current role of this node
        self.state = MasterService.ST_NORMAL  # Current cluster error status
        self.master = None  # Name of the active master
        self.masterLastSeen = 0  # Timestamp for master failover
        self.status = dict()  # Whole cluster status
        self.localNode = Node(DNSCache.getInstance().name)
        self.disk = DiskHeartbeat()
        self.s_slaveHb = SlaveHearbeatService(self)
        self.s_masterHb = MasterHeartbeatService(self)
        self.s_rpc = RPCService(self)

        # Watchdogs for failover
        self.l_slaveDog = task.LoopingCall(self.checkMasterHeartbeat)
        self.l_masterDog = task.LoopingCall(self.checkSlaveHeartbeats)

        # Election Stuff
        self.ballotBox = None  # All received votes
        self.currentElection = None  # Election name, none if no pending election
        self.f_tally = None  # IDelayedCall used to trigger countVotes()
        self.lastTallyDate = 0  # Timestamp for debbuging elections
        self.panicRequested = False  # True if panic is requested during election
Example #2
0
#!/usr/bin/env python

import logging
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
import handlers

from rpc import RPCService
from namespaces import *

RPCService([("info", info.InfoNamespace), ("person", person.PersonNamespace),
            ("session", session.SessionNamespace)])

application = webapp.WSGIApplication(
    [('/', handlers.MainHandler), ('/test', handlers.RPCFormHandler),
     (r'/rpc/([a-zA-Z]+)/([a-zA-Z]+)', handlers.RPCHandler)],
    debug=True)


def main():
    util.run_wsgi_app(application)


if __name__ == '__main__':
    main()