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
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
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
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")