Exemplo n.º 1
0
def traceroute():
    json_request = request.json
    bu.put_log_entry(json_request)
    try:
        command, host = hu.read_json_request(json_request)
    except:
        return hu.pack_json_response("Usage: /traceroute <host>", "red")
    lines, return_code = bu.get_command_output(['traceroute', host])
    color = hu.get_message_color(return_code)
    answer = hu.pack_json_response("<code>"+lines+"</code>", color)
    return answer
Exemplo n.º 2
0
def ping():
	json_request = request.json
	bu.put_log_entry(json_request)
	try:
		command = hu.read_json_request(json_request)
		host = command[1]
		count = command[2] if (len(command) > 2) else '4'
	except:
		return hu.pack_json_response("Usage: /ping <host> [count]", "red")
	lines, return_code = bu.get_command_output(['ping', '-c', count, host])
	color = hu.get_message_color(return_code)
	answer = hu.pack_json_response("<code>"+lines+"</code>", color)
	return answer
Exemplo n.º 3
0
def hello(): # example structure
	json_request = request.json # get request in JSON
	bu.put_log_entry(json_request) # log the request
	command, username = hu.read_json_request(json_request) # unpack it
	message = "hi " + username # process it
	answer = hu.pack_json_response(message) # repack it
	return answer # answer it
Exemplo n.º 4
0
def widepages():
	json_request = request.json
	bu.put_log_entry(json_request)
	try:
		command = hu.read_json_request(json_request)
		wanted = ' '.join(command[1:])
	except:
		return hu.pack_json_response("Usage: /widepages <user>", "red")
	try:
		results = wl.run_query(wanted)
		if(len(results) == 0):
			return hu.pack_json_response("Sorry, no such entry", "red")
		elif(len(results) > 1):
			answer = "There's more than one result, please narrow your search:<ul>"
			for result in results:
				answer += "<li>" + result[1]['cn'][0] + "</li>"
			answer += "</ol>"
			return hu.pack_json_response(answer, "yellow")
		else:
			result = results[0][1] # first and only one
			cn = wl.get_item('cn', result)
			mail = wl.get_item('mail', result)
			telephone = wl.get_item('telephoneNumber', result)
			mobile = wl.get_item('mobile', result)
			altmail = wl.get_item('othermailbox', result)
			extension = wl.get_item('pager', result)
			raw_image = wl.get_item('jpegPhoto', result)
			if(raw_image != "none"):
				img_file = wl.save_user_image(raw_image)
			else:
				img_file = "none.png"
			# why does json output break if I break the lines with \ ?
			# also, don't use "none" but avoid having showing the item if it's really
			# not available...
                        base_url = config.get('core', 'base_url')+":"+config.get('core', 'port')
			answer = "<img src='"+base_url+"/ldapimg/{0}'><br><b>Name:</b> {1}<br><b>Mail:</b> <a href='mailto:{2}'>{2}</a><br><b>Alt. mail:</b> <a href='mailto:{3}'>{3}</a><br><b>Phone:</b> {4}<br><b>Mobile:</b> {5}<br><b>Ext.:</b> {6}".format(img_file, cn, mail, altmail, telephone, mobile, extension)
			return hu.pack_json_response(answer)
	except Exception, error:
		return hu.pack_json_response("Module 'wideldap' faulted:" +str(error), "red")