Exemplo n.º 1
0
 def get(self, node_uuid=None):
     if not node_uuid:
         node = Node.get_by(uuid=Node.me().uuid)
     else:
         node = Node.get_by(uuid=node_uuid)
     if not node:
         raise tornado.web.HTTPError(404)
     self.write({'node': node.to_dict()})
Exemplo n.º 2
0
 def test_register_node(self):
     data = {'uuid': "a-unique-id", 'port': 8001}
     eq_(Node.get_by(uuid=data['uuid']), None)
     self.http_client.fetch(HTTPRequest(
         self.get_url('/nodes'), 'POST', body=json.dumps(data)), self.stop)
     response = self.wait()
     eq_(response.code, 200)
     ok_(Node.get_by(uuid=data['uuid']))
Exemplo n.º 3
0
 def get(self, node_uuid=None):
     if not node_uuid:
         node = Node.get_by(uuid=Node.me().uuid)
     else:
         node = Node.get_by(uuid=node_uuid)
     if not node:
         raise tornado.web.HTTPError(404)
     self.write({'node': node.to_dict()})
Exemplo n.º 4
0
 def test_register_node(self):
     data = {'uuid': "a-unique-id", 'port': 8001}
     eq_(Node.get_by(uuid=data['uuid']), None)
     self.http_client.fetch(
         HTTPRequest(self.get_url('/nodes'), 'POST', body=json.dumps(data)),
         self.stop)
     response = self.wait()
     eq_(response.code, 200)
     ok_(Node.get_by(uuid=data['uuid']))
Exemplo n.º 5
0
 def test_get_nodes(self):
     [NodeFactory() for _ in range(3)]
     response = self.fetch('/nodes')
     eq_(response.code, 200)
     result = json.loads(response.body)
     ok_('nodes' in result)
     for node in result['nodes']:
         ok_(Node.get_by(uuid=node['uuid']))
Exemplo n.º 6
0
 def test_get_nodes(self):
     [NodeFactory() for _ in range(3)]
     response = self.fetch('/nodes')
     eq_(response.code, 200)
     result = json.loads(response.body)
     ok_('nodes' in result)
     for node in result['nodes']:
         ok_(Node.get_by(uuid=node['uuid']))
Exemplo n.º 7
0
    def delete(self, node_uuid=None):
        """Remove the requesting node from the list of known nodes,
        unregistering the from the network.
        """

        if not node_uuid or node_uuid == Node.me().uuid:
            log.info("Shutting down because of request from %s",
                    self.request.remote_ip)
            tornado.ioloop.IOLoop.instance().stop()
            return

        node = Node.get_by(uuid=node_uuid)
        if node:
            closest_supernode = Node.closest_supernode()
            if closest_supernode and node != closest_supernode:
                log.info("Notifying closest supernode %s that %s was deleted",
                        closest_supernode, node)
                NodesAPI(closest_supernode.absolute_url()).unregister(node)
            if node == Node.me().primary_supernode and self.application.node:
                self.application.node.bootstrap()
            node.delete()
Exemplo n.º 8
0
    def delete(self, node_uuid=None):
        """Remove the requesting node from the list of known nodes,
        unregistering the from the network.
        """

        if not node_uuid or node_uuid == Node.me().uuid:
            log.info("Shutting down because of request from %s",
                     self.request.remote_ip)
            tornado.ioloop.IOLoop.instance().stop()
            return

        node = Node.get_by(uuid=node_uuid)
        if node:
            closest_supernode = Node.closest_supernode()
            if closest_supernode and node != closest_supernode:
                log.info("Notifying closest supernode %s that %s was deleted",
                         closest_supernode, node)
                NodesAPI(closest_supernode.absolute_url()).unregister(node)
            if node == Node.me().primary_supernode and self.application.node:
                self.application.node.bootstrap()
            node.delete()