Example #1
0
        def eventBeatWorker(self,lbPort,eventPort,services,index):
            server = services.getServer(lbPort,index)
	    socket = SocketConnection()
	    try:
	    	#socket.connect(server.getIp(),int(eventPort),30)
	    	socket.connect(server.getIp(),int(eventPort),int(sdnlb_conf.iperf_tout)*3)
                if (sdnlb_conf.algo =="cpu"):
		        cmd = "iperf"
			args = []
                elif (sdnlb_conf.algo == "connections"):
		        cmd = "netstat"
			args = [server.getPort()]

		msg = JsonMessage.genCmdReqMessage(cmd,args)
		socket.send(msg)
	    	msg = socket.receive()
                #DEBUG
                print "HB msg recv:",msg
                #FINDEBUG
	    	
	    	if msg != '':
	    		(msgtype, data) = JsonMessage.parse_json(msg)
			
			if (msgtype == msgTypes['cmd_ans']):
				if (data['cmd'] == "iperf"):
					port = int(data['args'])
					time.sleep(4) # wait for iperf to start running	
					cmd = 'iperf3 -c %s -t %d -p %d -J'%(server.getIp(),int(sdnlb_conf.iperf_tout),int(port))

	                                p = Popen(cmd, shell=True, stdin=PIPE, stdout=PIPE, stderr=STDOUT, close_fds=True)
	                                output = p.stdout.read()
			                json_msg = JsonMessage.parse_iperf_json(output)
					if (json_msg['end']['cpu_utilization_percent']['remote_system'] != None):
						#cpu_load = json_msg['end']['cpu_utilization_percent']['remote_system']
						cpu_load = json_msg['end']['cpu_utilization_percent']['remote_total']
						#DEBUG
                                                print "CPU_LOAD:",cpu_load
						#FINDEBUG
						server.setCpu(float(cpu_load))

				elif (data['cmd'] == "netstat"):
					connections = int(data['args'])
					server.setConnections(int(connections))
					#DEBUG
                                        print "EB CONNS:",connections
					#FINDEBUG

                                    

            except Exception,e:
	    	# cannot connect with server
                #print "Exception"
	    	#print e
	    	#print "STATUS DOWN"
                server.setStatus(False)
Example #2
0
	def heartBeat(self):
		for service in self.services.getServices():
			index = 0
			lbPort = service.getLbPort()
			for server in service.getServers():

				socket = SocketConnection()

				try:
					socket.connect(server.getIp(),server.getPort())
					print "STATUS OK"
					server.setStatus(True)
				except Exception,e:
					# cannot connect with server
					#print e
					#print "STATUS DOWN"
					server.setStatus(False)
				finally:
					socket.close()