Esempio n. 1
0
    def run(self, serverState, request, response):
        conf = ServerConf()
        sentConnectRequests = conf.getSentNodeConnectRequests()
        node = json.loads(request.getParam('connectRequest'),
            object_hook=json_serializer.fromJson)
        if(sentConnectRequests.exists(node.getId())):
            nodeToAdd = sentConnectRequests.get(node.getId())
            conf.addNode(Node(node.server_id,
                node.getClientSecurePort(),
                node.getServerSecurePort(),
                node    .getQualifiedName(),nodeToAdd.getHostname()))
            #conf.addNode(nodeToAdd)
            openssl = OpenSSL(conf)
            openssl.addCa(node.key)
            sentConnectRequests.removeNode(node.getId())
            conf.set('sent_node_connect_requests', sentConnectRequests)
            # need to send back a status in the data notifying ok
            response.add('Connection to node %s established'%node.toString())

            log.info("Node connection accepted")
            #add it to the node list
        else:
            response.add('No previous node request sent for host %s' %node
            .toString())

            log.info("Node connection not accepted")
Esempio n. 2
0
    def run(self, serverState, request, response):
        #get the connection params for this node
        newParams =json.loads(request.getParam("connectionParams"))
        conf = ServerConf()
        nodes = conf.getNodes()
        if nodes.exists(newParams['serverId']):
            node = nodes.get(newParams['serverId'])
            node.setHostname(newParams['hostname'])
            node.setServerSecurePort(newParams['server_secure_port'])
            node.setClientSecurePort(newParams['client_secure_port'])
            node.setQualifiedName(newParams['fqdn'])

            #Needed so that we write changes to conf file
            conf.removeNode(node.server_id)
            conf.addNode(node)

            #update the network topology
            ServerToServerMessage.getNetworkTopology(resetCache=True)


            response.add("Updated connection parameters")
            log.info("Updated connection params for %s"%node.toString())

        else:
            response.add("Requested update for node %s but this node  " \
                              "is not a neigbouring node "%newParams[
                                                           'serverId'],
                                                           status="ERROR")
            log.error("Failed updating connection params for %s"%newParams['serverId'])
Esempio n. 3
0
    def grant(key): #key is server-id
        conf = ServerConf()
        nodeConnectRequests = conf.getNodeConnectRequests()

        if nodeConnectRequests.exists(key):
            nodeToAdd = nodeConnectRequests.get(key) #this returns a nodeConnectRequest object

            serv = RawServerMessage(nodeToAdd.getHostname(),
                nodeToAdd.getClientSecurePort())

            #letting the requesting node know that it is accepted
            #also sending this servers connection parameters
            resp = serv.addNodeAccepted()

            conf.addNode(Node(nodeToAdd.server_id,
                nodeToAdd.getClientSecurePort(),
                nodeToAdd.getServerSecurePort(),
                nodeToAdd.getQualifiedName(),nodeToAdd.getHostname()))

            #trust the key
            openssl = OpenSSL(conf)
            openssl.addCa(nodeToAdd.key)

            nodeConnectRequests.removeNode(nodeToAdd.getId())
            conf.set('node_connect_requests', nodeConnectRequests)
            return True
        else:
            return False
Esempio n. 4
0
    def run(self, serverState, request, response):
        conf = ServerConf()
        sentConnectRequests = conf.getSentNodeConnectRequests()
        node = json.loads(request.getParam('connectRequest'),
                          object_hook=json_serializer.fromJson)
        if (sentConnectRequests.exists(node.getId())):
            nodeToAdd = sentConnectRequests.get(node.getId())
            conf.addNode(
                Node(node.server_id, node.getClientSecurePort(),
                     node.getServerSecurePort(), node.getQualifiedName(),
                     nodeToAdd.getHostname()))
            #conf.addNode(nodeToAdd)
            openssl = OpenSSL(conf)
            openssl.addCa(node.key)
            sentConnectRequests.removeNode(node.getId())
            conf.set('sent_node_connect_requests', sentConnectRequests)
            # need to send back a status in the data notifying ok
            response.add('Connection to node %s established' % node.toString())

            log.info("Node connection accepted")
            #add it to the node list
        else:
            response.add('No previous node request sent for host %s' %
                         node.toString())

            log.info("Node connection not accepted")
Esempio n. 5
0
    def grant(key):  #key is server-id
        conf = ServerConf()
        nodeConnectRequests = conf.getNodeConnectRequests()

        if nodeConnectRequests.exists(key):
            nodeToAdd = nodeConnectRequests.get(
                key)  #this returns a nodeConnectRequest object

            serv = RawServerMessage(nodeToAdd.getHostname(),
                                    nodeToAdd.getClientSecurePort())

            #letting the requesting node know that it is accepted
            #also sending this servers connection parameters
            resp = serv.addNodeAccepted()

            conf.addNode(
                Node(nodeToAdd.server_id, nodeToAdd.getClientSecurePort(),
                     nodeToAdd.getServerSecurePort(),
                     nodeToAdd.getQualifiedName(), nodeToAdd.getHostname()))

            #trust the key
            openssl = OpenSSL(conf)
            openssl.addCa(nodeToAdd.key)

            nodeConnectRequests.removeNode(nodeToAdd.getId())
            conf.set('node_connect_requests', nodeConnectRequests)
            return True
        else:
            return False
Esempio n. 6
0
    def run(self, serverState, request, response):
        #get the connection params for this node
        newParams = json.loads(request.getParam("connectionParams"))
        conf = ServerConf()
        nodes = conf.getNodes()
        if nodes.exists(newParams['serverId']):
            node = nodes.get(newParams['serverId'])
            node.setHostname(newParams['hostname'])
            node.setServerSecurePort(newParams['server_secure_port'])
            node.setClientSecurePort(newParams['client_secure_port'])
            node.setQualifiedName(newParams['fqdn'])

            #Needed so that we write changes to conf file
            conf.removeNode(node.server_id)
            conf.addNode(node)

            #update the network topology
            ServerToServerMessage.getNetworkTopology(resetCache=True)

            response.add("Updated connection parameters")
            log.info("Updated connection params for %s" % node.toString())

        else:
            response.add("Requested update for node %s but this node  " \
                              "is not a neigbouring node "%newParams[
                                                           'serverId'],
                                                           status="ERROR")
            log.error("Failed updating connection params for %s" %
                      newParams['serverId'])
Esempio n. 7
0
 def testAddNodes(self):
     conf = ServerConf(confdir=self.confDir)
     conf.addNode('localhost1')
     conf.addNode('localhost2')
     
     nodes = conf.getNodes()
     self.assertEquals(nodes.size(),2)
     
     self.assertTrue(nodes.exists("localhost1","13807"))
     self.assertTrue(nodes.exists("localhost2","13807") )
Esempio n. 8
0
    def testAddNodes(self):
        conf = ServerConf(confdir=self.confDir)
        conf.addNode('localhost1')
        conf.addNode('localhost2')

        nodes = conf.getNodes()
        self.assertEquals(nodes.size(), 2)

        self.assertTrue(nodes.exists("localhost1", "13807"))
        self.assertTrue(nodes.exists("localhost2", "13807"))