Пример #1
0
def create_service(reactor, options):
    """Based on options provided by the user create a service that
    will provide whatever it is that Nesoi do.
    """
    service = MultiService()

    listen_address = options['listen-address']

    storage = shelve.open(options['data-file'], writeback=True)
    cluster_node = ClusterNode(reactor, storage)
    service.addService(cluster_node)

    model = ResourceModel(reactor, cluster_node.keystore)

    gossiper = Gossiper(reactor, cluster_node, listen_address)
    if options['seed']:
        gossiper.seed([options['seed']])

    service.addService(UDPServer(int(options['listen-port']), gossiper,
        interface=listen_address))

    router = rest.Router()
    router.addController('app', api.ApplicationCollectionResource(model))
    router.addController('app/{appname}/web-hooks', api.WebhookCollectionResource(model, 'appname', 'app'))
    router.addController('app/{appname}/web-hooks/{hookname}', api.WebhookResource(model, 'appname', 'app'))
    router.addController('app/{appname}', api.ApplicationResource(model))
    router.addController('srv', api.ServiceCollectionResource(model))
    router.addController('srv/{srvname}', api.ServiceHostCollectionResource(model))
    router.addController('srv/{srvname}/web-hooks', api.WebhookCollectionResource(model, 'srvname', 'service'))
    router.addController('srv/{srvname}/web-hooks/{hookname}', api.WebhookResource(model, 'srvname', 'service'))
    router.addController('srv/{srvname}/{hostname}', api.ServiceHostResource(model))

    service.addService(TCPServer(int(options['listen-port']), Site(router),
        interface=listen_address))

    #gossiper.set(cluster_node.election.PRIO_KEY, 0)
    #cluster_node.keystore.load_from(storage)

    return service
Пример #2
0
            self._election_timeout.cancel()
        self._election_timeout = reactor.callLater(5, self._vote)

    def peer_dead(self, peer):
        print self.name, "thinks", peer.name, "is dead"
        self._start_election()

    def peer_stable(self, peer):
        print "stable", peer


members = []

for i in range(0, CNT):
    participant = Participant('127.0.0.1:%d' % (9000 + i))
    gossiper = Gossiper(reactor, participant, '127.0.0.1')
    gossiper.set('/leader-election/priority', i)
    p = reactor.listenUDP(9000 + i, gossiper)
    members.append((gossiper, p, participant))

for i in range(1, CNT):
    members[i][0].seed(['127.0.0.1:9000'])

seed = members[0][0]


def prop_test():
    print "START PROP TEST"
    print reactor.seconds()
    seed.set('x', 'value')
Пример #3
0
            self._election_timeout.cancel()
        self._election_timeout = reactor.callLater(5, self._vote)

    def peer_dead(self, peer):
        print self.name, "thinks", peer, "is dead"
        self._start_election()

    def peer_stable(self, peer):
        print "stable", peer


members = []

for i in range(0, CNT):
    participant = Participant('127.0.0.1:%d' % (9000+i))
    gossiper = Gossiper(reactor, '127.0.0.1:%d' % (9000+i), participant)
    gossiper.set_local_state('/leader-election/priority', i)
    p = reactor.listenUDP(9000+i, gossiper)
    members.append((gossiper, p, participant))

for i in range(1, CNT):
    members[i][0].handle_new_peers(['127.0.0.1:9000'])

seed = members[0][0]

def prop_test():
    print "START PROP TEST"
    print reactor.seconds()
    seed.set_local_state('x', 'value')

pending = []
Пример #4
0
            self._election_timeout.cancel()
        self._election_timeout = reactor.callLater(5, self._vote)

    def peer_dead(self, peer):
        print self.name, "thinks", peer.name, "is dead"
        self._start_election()

    def peer_stable(self, peer):
        print "stable", peer


members = []

for i in range(0, CNT):
    participant = Participant('127.0.0.1:%d' % (9000+i))
    gossiper = Gossiper(reactor, participant, '127.0.0.1')
    gossiper.set('/leader-election/priority', i)
    p = reactor.listenUDP(9000+i, gossiper)
    members.append((gossiper, p, participant))

for i in range(1, CNT):
    members[i][0].seed(['127.0.0.1:9000'])

seed = members[0][0]

def prop_test():
    print "START PROP TEST"
    print reactor.seconds()
    seed.set('x', 'value')

pending = []