Beispiel #1
0
def receive_guest_usage(usage):

	#print 'Listener '+str(usage)
	try:
		#Activity Log
		vmlistener_log = open('/var/lib/virtdc/logs/activity_logs/vmlistener.log', 'a+')
		usage = usage.strip()
		guest_usage = usage.split('|')
		vmid = guest_usage[0].strip() if len(guest_usage[0].strip()) != 0 else 0
		cpu_usage = guest_usage[1].strip() if len(guest_usage[1].strip()) != 0 else 0
		os_mem_usage = guest_usage[2].strip() if len(guest_usage[2].strip()) != 0 else 0
		task_mem_usage = guest_usage[3].strip() if len(guest_usage[3].strip()) != 0 else 0
		io_usage = guest_usage[4].strip() if len(guest_usage[4].strip()) != 0 else 0


		path = '/var/lib/virtdc/vmonere/monitor_logs/'+vmid+'.log'
		file= open(path, 'a+')
		usage= str(datetime.datetime.now()) +' \t|\t '+ vmid+' \t|\t '+ str(cpu_usage) + '\t|\t' + str(os_mem_usage) + '\t|\t' + str(task_mem_usage) + '\t|\t' + str(io_usage)
		file.write(usage+'\n')
		file.close()


		#To report current usage to the placement manager
		report_usage_to_placement_manager(vmid, cpu_usage, task_mem_usage, io_usage)

	except Exception as e:
		vmlistener_log.write(str(datetime.datetime.now()) +' :: vmonere listener :: '+vmid+' :: error in listener / reporting to manager \n')
		vmlistener_log.write(str(e) + '\n')
		pass
Beispiel #2
0
def receive_guest_usage(usage):

    #print 'Listener '+str(usage)
    try:
        #Activity Log
        vmlistener_log = open(
            '/var/lib/virtdc/logs/activity_logs/vmlistener.log', 'a+')
        usage = usage.strip()
        guest_usage = usage.split('|')
        vmid = guest_usage[0].strip() if len(
            guest_usage[0].strip()) != 0 else 0
        cpu_usage = guest_usage[1].strip() if len(
            guest_usage[1].strip()) != 0 else 0
        os_mem_usage = guest_usage[2].strip() if len(
            guest_usage[2].strip()) != 0 else 0
        task_mem_usage = guest_usage[3].strip() if len(
            guest_usage[3].strip()) != 0 else 0
        io_usage = guest_usage[4].strip() if len(
            guest_usage[4].strip()) != 0 else 0

        path = '/var/lib/virtdc/vmonere/monitor_logs/' + vmid + '.log'
        file = open(path, 'a+')
        usage = str(
            datetime.datetime.now()) + ' \t|\t ' + vmid + ' \t|\t ' + str(
                cpu_usage) + '\t|\t' + str(os_mem_usage) + '\t|\t' + str(
                    task_mem_usage) + '\t|\t' + str(io_usage)
        file.write(usage + '\n')
        file.close()

        #To report current usage to the placement manager
        report_usage_to_placement_manager(vmid, cpu_usage, task_mem_usage,
                                          io_usage)

    except Exception as e:
        vmlistener_log.write(
            str(datetime.datetime.now()) + ' :: vmonere listener :: ' + vmid +
            ' :: error in listener / reporting to manager \n')
        vmlistener_log.write(str(e) + '\n')
        pass
Beispiel #3
0
def start_server():

    domain_dict = {
    }  #Maintain the dictionary to count the domain report frequency. It will be helpful to report usage to placement manager

    s = socket.socket()  # Create a socket object
    host = socket.gethostname()  # Get local machine name
    port = 12345  # Reserve a port for your service.
    s.bind((host, port))  # Bind to the port

    s.listen(15)  # Now wait for client connection.

    while True:
        c, addr = s.accept()  # Establish connection with client.
        #print 'Got connection from', addr
        #c.send('Thank you for connecting')

        usage = c.recv(1024)

        try:
            #Activity Log
            vmlistener_log = open(
                '/var/lib/virtdc/logs/activity_logs/vmlistener.log', 'a+')
            usage = usage.strip()
            guest_usage = usage.split('|')
            vmid = guest_usage[0].strip() if len(
                guest_usage[0].strip()) != 0 else 0
            cpu_usage = guest_usage[1].strip() if len(
                guest_usage[1].strip()) != 0 else 0
            os_mem_usage = guest_usage[2].strip() if len(
                guest_usage[2].strip()) != 0 else 0
            task_mem_usage = guest_usage[3].strip() if len(
                guest_usage[3].strip()) != 0 else 0
            io_usage = guest_usage[4].strip() if len(
                guest_usage[4].strip()) != 0 else 0

            path = '/var/lib/virtdc/vmonere/monitor_logs/domain/' + vmid + '.log'
            file = open(path, 'a+')
            time_now = str(datetime.datetime.now())
            usage = time_now + ' \t|\t ' + vmid + ' \t|\t ' + str(
                cpu_usage) + '\t|\t' + str(task_mem_usage) + '\t|\t' + str(
                    io_usage) + '\t|\t' + str(os_mem_usage)
            file.write(usage + '\n')
            file.close()

            report_usage_to_placement_manager(
                vmid, cpu_usage, task_mem_usage, io_usage
            )  # Report the usage every 30 seconds [6 * 5s interval]
            '''
            #To log usage in json file
            log_usage_json(vmid, time_now, cpu_usage, task_mem_usage, io_usage)
            '''

            #To report current usage to the placement manager
            domain_reported_count = domain_dict[vmid]
            if domain_reported_count is None:
                domain_dict[vmid] = 1
            elif (domain_reported_count >= 6):
                report_usage_to_placement_manager(
                    vmid, cpu_usage, task_mem_usage, io_usage
                )  # Report the usage every 30 seconds [6 * 5s interval]
                domain_dict[vmid] = 0
            else:
                domain_dict[vmid] = (domain_reported_count + 1)

        except Exception as e:
            vmlistener_log.write(
                str(datetime.datetime.now()) + ' :: vmonere listener :: ' +
                vmid + ' :: error in listener / reporting to manager \n')
            vmlistener_log.write(str(e) + '\n')
            pass

        #print usage

        c.close()  # Close the connection
def start_server():

	domain_dict = {}			#Maintain the dictionary to count the domain report frequency. It will be helpful to report usage to placement manager

	   
	s = socket.socket()			# Create a socket object
	host = socket.gethostname()		# Get local machine name
	port = 12345				# Reserve a port for your service.
	s.bind((host, port))        		# Bind to the port

	s.listen(15)                 		# Now wait for client connection.


	while True:
		c, addr = s.accept()		# Establish connection with client.
		#print 'Got connection from', addr
		#c.send('Thank you for connecting')
		
		usage = c.recv(1024)

		try:
			#Activity Log
			vmlistener_log = open('/var/lib/virtdc/logs/activity_logs/vmlistener.log', 'a+')
			usage = usage.strip()
			guest_usage = usage.split('|')
			vmid = guest_usage[0].strip() if len(guest_usage[0].strip()) != 0 else 0
			cpu_usage = guest_usage[1].strip() if len(guest_usage[1].strip()) != 0 else 0
			os_mem_usage = guest_usage[2].strip() if len(guest_usage[2].strip()) != 0 else 0
			task_mem_usage = guest_usage[3].strip() if len(guest_usage[3].strip()) != 0 else 0
			io_usage = guest_usage[4].strip() if len(guest_usage[4].strip()) != 0 else 0


			path = '/var/lib/virtdc/vmonere/monitor_logs/domain/'+vmid+'.log'
			file= open(path, 'a+')
            		time_now = str(datetime.datetime.now())
			usage=  time_now +' \t|\t '+ vmid+' \t|\t '+ str(cpu_usage) +  '\t|\t' + str(task_mem_usage) + '\t|\t' + str(io_usage) + '\t|\t' + str(os_mem_usage) 
			file.write(usage+'\n')
			file.close()

			report_usage_to_placement_manager(vmid, cpu_usage, task_mem_usage, io_usage)		# Report the usage every 30 seconds [6 * 5s interval]

			'''
            #To log usage in json file
            log_usage_json(vmid, time_now, cpu_usage, task_mem_usage, io_usage)
            '''
                
			#To report current usage to the placement manager
			domain_reported_count = domain_dict[vmid]
			if domain_reported_count is None:
				domain_dict[vmid] = 1
			elif (domain_reported_count >= 6):
				report_usage_to_placement_manager(vmid, cpu_usage, task_mem_usage, io_usage)		# Report the usage every 30 seconds [6 * 5s interval]
				domain_dict[vmid] = 0
			else:
				domain_dict[vmid] = (domain_reported_count + 1)
			


		except Exception as e:
			vmlistener_log.write(str(datetime.datetime.now()) +' :: vmonere listener :: '+vmid+' :: error in listener / reporting to manager \n')
			vmlistener_log.write(str(e) + '\n')
			pass

		#print usage

		c.close()                # Close the connection