Beispiel #1
0
def ping_rasps_in_stack(nstack):
    print("------------------------------------")
    print("---- Ping command in process... ----")
    print("------------------------------------")
    tmp = 0
    for key in global_settings.rasps:
        if global_settings.rasps[key]._stack == nstack:
            ip = global_settings.rasps[key]._ip
            id = global_settings.rasps[key]._id
            print("ip, id rasp:", ip, id)
            try:
                # bash ping command from master to pis
                sh.ping(ip, "-c 2", _out="/dev/null")
                global_settings.rasps[id]._Rstatus = "okStatus"
                print(ip, " is up")
                date = datetime.datetime.now()
                date = date.strftime("%d/%m/%Y")
                rasps_handler.update_rasp_by_id(id, "ping", date, 200)
                tmp = tmp + 1
            except sh.ErrorReturnCode_1:
                print("no response from", ip)
                global_settings.rasps[id]._Rstatus = "koStatus"
    if tmp == 0:
        global_settings.stacks[nstack]._Sstatus = "koStatus"
    else:
        if tmp < int(configRack["rack"]["pi_stack"]):
            print("Warning")
            global_settings.stacks[nstack]._Sstatus = "warningStatus"
        else:
            global_settings.stacks[nstack]._Sstatus = "okStatus"
    return
Beispiel #2
0
def ping_rasps_in_stack(nstack):
    print('------------------------------------')
    print("---- Ping command in process... ----")
    print('------------------------------------')
    tmp = 0
    for key in global_settings.rasps:
        if global_settings.rasps[key]._stack == nstack:
            ip = global_settings.rasps[key]._ip
            id = global_settings.rasps[key]._id
            print("ip, id rasp:", ip, id)
            try:
                #bash ping command from master to pis
                sh.ping(ip, "-c 2", _out="/dev/null")
                global_settings.rasps[id]._Rstatus = "okStatus"
                print(ip, " is up")
                date = datetime.datetime.now()
                date = date.strftime('%d/%m/%Y')
                rasps_handler.update_rasp_by_id(id, "ping", date, 200)
                tmp = tmp + 1
            except sh.ErrorReturnCode_1:
                print("no response from", ip)
                global_settings.rasps[id]._Rstatus = "koStatus"
    if tmp == 0:
        global_settings.stacks[nstack]._Sstatus = "koStatus"
    else:
        if tmp < int(configRack['rack']['pi_stack']):
            print("Warning")
            global_settings.stacks[nstack]._Sstatus = "warningStatus"
        else:
            global_settings.stacks[nstack]._Sstatus = "okStatus"
    return
Beispiel #3
0
 def post(self):
     requestAction = self.request.body
     strRequestAction = requestAction.decode("utf-8")
     jsonRequestAction = json.loads(strRequestAction)
     stack_id = int(jsonRequestAction["id"])
     if jsonRequestAction["action"] == "ping":
         print("-----------Pinging stack-----------")
         id_str = jsonRequestAction["id"]
         stacks_handler.ping_rasps_in_stack(id_str)
     elif jsonRequestAction["action"] == "shutdown":
         stack_power.powerup_stack(stack_id)
     elif jsonRequestAction["action"] == "reboot":
         stack_power.powerdown_stack(stack_id)
         time.sleep(1)
         stack_power.powerup_stack(stack_id)
     else:
         tmp = "rasps:" + jsonRequestAction["action"]
         MESSAGE = bytes(tmp, 'utf-8')
         print(stacks_handler.get_rasps_from_stack(stack_id))
         rid = stacks_handler.get_rasps_from_stack(stack_id)
         for id in rid:
             str_id = str(id)
             rasp = global_settings.rasps[str_id]
             IP = rasp._ip
             print("ip", IP)
             udpsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
             udpsock.setblocking(False)
             s = UDPStream(udpsock)
             udpsock.sendto(MESSAGE, (IP, PORT))
             dataObject = yield tornado.gen.Task(s.read_chunk)
             code_status = dataObject[1]["code"]
             data = dataObject[1]["data"]
             rasps_handler.update_rasp_by_id(str_id,
                                             jsonRequestAction["action"],
                                             data, code_status)
             ip = dataObject[1]["ip"]
             print("DATA:", data)
             print("CODE:", code_status)
             print("IP:", ip)
Beispiel #4
0
 def post(self):
     requestAction = self.request.body
     strRequestAction = requestAction.decode("utf-8")
     jsonRequestAction = json.loads(strRequestAction)
     slave_id = str(jsonRequestAction["id"])
     print(global_settings.rasps)
     rasp = global_settings.rasps[slave_id]
     IP = rasp._ip
     if jsonRequestAction["action"] == "ping":
         #Variable provisoire en attendant le mapping
         response = os.system(config['rasps']['Ping'] + ' ' + IP +
                              "> /dev/null 2>&1")
         if response == 0:
             date = datetime.datetime.now()
             date = date.strftime('%d/%m/%Y')
             print(rasp._id)
             rasps_handler.update_rasp_by_id(slave_id, "ping", date, 200)
             self.respond(date, 200)
         else:
             self.respond(IP + " is down", 404)
     else:
         MESSAGE = " "
         tmp = "rasps:" + jsonRequestAction["action"]
         MESSAGE = bytes(tmp, 'utf-8')
         udpsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
         udpsock.setblocking(False)
         s = UDPStream(udpsock)
         udpsock.sendto(MESSAGE, (IP, PORT))
         dataObject = yield tornado.gen.Task(s.read_chunk)
         code_status = dataObject[1]["code"]
         data = dataObject[1]["data"]
         rasps_handler.update_rasp_by_id(slave_id,
                                         jsonRequestAction["action"], data,
                                         code_status)
         ip = dataObject[1]["ip"]
         print("DATA:", data)
         print("CODE:", code_status)
         print("IP:", ip)
         self.respond(data, code_status)
Beispiel #5
0
 def post(self):
         requestAction = self.request.body
         strRequestAction = requestAction.decode("utf-8")
         jsonRequestAction = json.loads(strRequestAction)
         stack_id = int(jsonRequestAction["id"])
         if jsonRequestAction["action"] == "ping":
                 print("-----------Pinging stack-----------")
                 id_str = jsonRequestAction["id"]
                 stacks_handler.ping_rasps_in_stack(id_str)
         elif jsonRequestAction["action"] == "shutdown":
                 stack_power.powerup_stack(stack_id)
         elif jsonRequestAction["action"] == "reboot":
                 stack_power.powerdown_stack(stack_id)
                 time.sleep(1)
                 stack_power.powerup_stack(stack_id)       
         else:
                 tmp = "rasps:"+jsonRequestAction["action"]
                 MESSAGE = bytes(tmp,'utf-8')
                 print(stacks_handler.get_rasps_from_stack(stack_id))
                 rid = stacks_handler.get_rasps_from_stack(stack_id)
                 for id in rid:
                        str_id = str(id)
                        rasp = global_settings.rasps[str_id]
                        IP = rasp._ip
                        print("ip", IP)
                        udpsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
                        udpsock.setblocking(False)
                        s = UDPStream(udpsock)
                        udpsock.sendto(MESSAGE,(IP, PORT))
                        dataObject = yield tornado.gen.Task( s.read_chunk )
                        code_status = dataObject[1]["code"]
                        data = dataObject[1]["data"]
                        rasps_handler.update_rasp_by_id(str_id,jsonRequestAction["action"],data,code_status)
                        ip = dataObject[1]["ip"]
                        print("DATA:", data)
                        print("CODE:", code_status)
                        print("IP:", ip) 
Beispiel #6
0
	def post(self):
		requestAction = self.request.body
		strRequestAction = requestAction.decode("utf-8")
		jsonRequestAction = json.loads(strRequestAction)
		slave_id = str(jsonRequestAction["id"])
		print(global_settings.rasps)
		rasp = global_settings.rasps[slave_id]
		IP = rasp._ip
		if jsonRequestAction["action"] == "ping":
			#Variable provisoire en attendant le mapping
			response = os.system( config['rasps']['Ping'] +' '+ IP + "> /dev/null 2>&1")
			if response == 0:
				date = datetime.datetime.now()
				date = date.strftime('%d/%m/%Y')
				print(rasp._id)
				rasps_handler.update_rasp_by_id(slave_id,"ping",date,200)
				self.respond(date , 200)
			else:
				self.respond(IP + " is down", 404)
		else:
			MESSAGE = " "
			tmp = "rasps:"+jsonRequestAction["action"]
			MESSAGE = bytes(tmp,'utf-8')
			udpsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
			udpsock.setblocking(False)
			s = UDPStream(udpsock)
			udpsock.sendto(MESSAGE,(IP, PORT))
			dataObject = yield tornado.gen.Task( s.read_chunk )
			code_status = dataObject[1]["code"]
			data = dataObject[1]["data"]
			rasps_handler.update_rasp_by_id(slave_id,jsonRequestAction["action"],data,code_status)
			ip = dataObject[1]["ip"]
			print("DATA:", data)
			print("CODE:", code_status)
			print("IP:", ip)
			self.respond(data, code_status)