def addNodeAccepted(self): conf = ServerConf() inf = open(conf.getCACertFile(), "r") key = inf.read() #only sending fqdn the requesting should already know the unqualified # hostname node = NodeConnectRequest(conf.getServerId(), conf.getClientSecurePort(), conf.getServerSecurePort(), key, conf.getFqdn(), None) cmdstring = 'node-connection-accepted' fields = [] input = Input('cmd', cmdstring) input2 = Input( 'connectRequest', json.dumps(node, default=json_serializer.toJson, indent=4)) fields.append(input) fields.append(input2) fields.append(Input('version', "1")) # this goes over client secure port , and we don't want the server to use # cookies response = self.postRequest(ServerRequest.prepareRequest(fields), require_certificate_authentication=False, disable_cookies=True) return response
def addNodeAccepted(self): conf = ServerConf() inf = open(conf.getCACertFile(), "r") key = inf.read() #only sending fqdn the requesting should already know the unqualified # hostname node = NodeConnectRequest(conf.getServerId(), conf.getClientSecurePort(), conf.getServerSecurePort(), key, conf.getFqdn(), None) cmdstring ='node-connection-accepted' fields = [] input=Input('cmd',cmdstring) input2=Input('connectRequest', json.dumps(node,default=json_serializer.toJson,indent=4)) fields.append(input) fields.append(input2) fields.append(Input('version', "1")) # this goes over client secure port , and we don't want the server to use # cookies response= self.postRequest(ServerRequest.prepareRequest(fields), require_certificate_authentication=False, disable_cookies=True) return response
def sendAddNodeRequest(self, host): """ """ conf = ServerConf() cmdstring = 'connect-server-request' fields = [] input = Input('cmd', cmdstring) inf = open(conf.getCACertFile(), "r") key = inf.read() nodeConnectRequest = NodeConnectRequest(conf.getServerId(), conf.getClientSecurePort(), conf.getServerSecurePort(), key, conf.getFqdn(), conf.getHostName()) input2 = Input( 'nodeConnectRequest', json.dumps(nodeConnectRequest, default=json_serializer.toJson, indent=4)) input3 = Input('unqalifiedDomainName', host) fields.append(input) fields.append(input2) fields.append(input3) fields.append(Input('version', "1")) # this goes over the client Secure Port, and we don't want the server to use # cookies response = self.postRequest(ServerRequest.prepareRequest(fields), require_certificate_authentication=False, disable_cookies=True) return response
def run(self, serverState, request, response): conf = ServerConf() info = dict() info['fqdn'] = conf.getFqdn() info['version'] = __version__ try: conf.getServerId() info['serverId'] = conf.getServerId() info['server_secure_port'] = conf.getServerSecurePort() info['client_secure_port'] = conf.getClientSecurePort() except ServerIdNotFoundException as e: info['serverId'] = "ERROR: %s"%e.str response.add("",info)
def run(self, serverState, request, response): conf = ServerConf() info = dict() info['fqdn'] = conf.getFqdn() info['version'] = __version__ try: conf.getServerId() info['serverId'] = conf.getServerId() info['server_secure_port'] = conf.getServerSecurePort() info['client_secure_port'] = conf.getClientSecurePort() except ServerIdNotFoundException as e: info['serverId'] = "ERROR: %s" % e.str response.add("", info)
def updateConnectionParameters(self): cmdstring = "connection-parameter-update" fields = [] input = Input("cmd", cmdstring) fields.append(input) # prepare the connection params conf = ServerConf() connectionParams = dict() connectionParams["serverId"] = conf.getServerId() connectionParams["hostname"] = conf.getHostName() connectionParams["fqdn"] = conf.getFqdn() connectionParams["client_secure_port"] = conf.getClientSecurePort() connectionParams["server_secure_port"] = conf.getServerSecurePort() input2 = Input( "connectionParams", json.dumps(connectionParams, default=json_serializer.toJson, indent=4) ) # a json structure that needs to be dumped fields.append(input2) log.info("updating") self.broadcastToNeighboursOnly(fields, [])
def setupClient(self): ''' Creates a connection bundle for the Client and worker @returns ConnectionBundle ''' connectionBundle = ConnectionBundle(create=True, fqdn=self.cn) serverConf = ServerConf() #generate random ascii string randstring = ''.join( random.choice(string.ascii_uppercase + string.digits) for x in range(6)) tempDir = "%s/tmp/%s" % (self.conf.getConfDir(), randstring) privKeyFile = "%s/priv.pem" % tempDir pubKeyFile = "%s/pub.pem" % tempDir certReqConfigFile = "%s/cert_req.txt" % tempDir certFile = "%s/cert.pem" % tempDir os.makedirs(tempDir) #we create a temp dir for intermediate files self._generateKeyPair(privKeyFile=privKeyFile, pubKeyFile=pubKeyFile) self._generateCertReqConf( distinguished_cn="%s_%s" % (connectionBundle.CN_ID, self.cn), certReqConfigFile=certReqConfigFile) self._generateCert(privKeyFile, certFile, certReqConfigFile) #now we need to read everything in to the connection bundle connectionBundle.setPrivateKey(open(privKeyFile, 'r').read()) connectionBundle.setPublicKey(open(pubKeyFile, 'r').read()) connectionBundle.setCert(open(certFile, 'r').read()) connectionBundle.setCaCert(open(self.conf.getCACertFile(), "r").read()) shutil.rmtree(tempDir) connectionBundle.setClientSecurePort( serverConf.getClientSecurePort()) connectionBundle.setServerSecurePort( serverConf.getServerSecurePort()) connectionBundle.setHostname(ServerConf().getHostName()) return connectionBundle
def sendAddNodeRequest(self,host): """ """ conf = ServerConf() cmdstring ='connect-server-request' fields = [] input=Input('cmd',cmdstring) inf = open(conf.getCACertFile(), "r") key = inf.read() nodeConnectRequest = NodeConnectRequest(conf.getServerId() ,conf.getClientSecurePort() ,conf.getServerSecurePort() ,key ,conf.getFqdn() ,conf.getHostName()) input2=Input('nodeConnectRequest', json.dumps(nodeConnectRequest, default=json_serializer.toJson, indent=4)) input3=Input('unqalifiedDomainName',host) fields.append(input) fields.append(input2) fields.append(input3) fields.append(Input('version', "1")) # this goes over the client Secure Port, and we don't want the server to use # cookies response= self.postRequest(ServerRequest.prepareRequest(fields), require_certificate_authentication=False, disable_cookies=True) return response