30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
import http.server
|
|
import socketserver
|
|
import urllib.parse
|
|
from datetime import datetime
|
|
|
|
PORT = 8000
|
|
|
|
class CustomHandler(http.server.SimpleHTTPRequestHandler):
|
|
def do_POST(self):
|
|
content_length = int(self.headers.get('Content-Length', 0))
|
|
post_data = self.rfile.read(content_length).decode('utf-8')
|
|
parsed = urllib.parse.parse_qs(post_data)
|
|
msg = parsed.get('msg', [''])[0]
|
|
|
|
if msg:
|
|
with open('sql-install-telemetry.log', 'a') as f:
|
|
f.write(f"[{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}] {msg}\n")
|
|
# Print to standard output so I can read it with command_status
|
|
print(f"DB01 TELEMETRY: {msg}", flush=True)
|
|
|
|
self.send_response(200)
|
|
self.send_header('Content-type', 'text/plain')
|
|
self.end_headers()
|
|
self.wfile.write(b"OK")
|
|
|
|
socketserver.TCPServer.allow_reuse_address = True
|
|
with socketserver.TCPServer(("", PORT), CustomHandler) as httpd:
|
|
print(f"Logging server listening intensely on port {PORT}...", flush=True)
|
|
httpd.serve_forever()
|