42 lines
1 KiB
Python
42 lines
1 KiB
Python
|
|
import http.server
|
||
|
|
import json
|
||
|
|
|
||
|
|
import disk
|
||
|
|
|
||
|
|
class RequestHandler(http.server.BaseHTTPRequestHandler):
|
||
|
|
protocol_version = 'HTTP/1.1'
|
||
|
|
timeout = 10
|
||
|
|
|
||
|
|
def do_DELETE(self):
|
||
|
|
try:
|
||
|
|
disk.delete_disk(self.body())
|
||
|
|
|
||
|
|
except Exception as error:
|
||
|
|
self.log_error("Disk deletion failed: %s", error)
|
||
|
|
self.send_error(500)
|
||
|
|
return
|
||
|
|
|
||
|
|
self.send_success()
|
||
|
|
|
||
|
|
def do_POST(self):
|
||
|
|
try:
|
||
|
|
disk.create_disk(self.body())
|
||
|
|
|
||
|
|
except Exception as error:
|
||
|
|
self.log_error("Disk creation failed: %s", error)
|
||
|
|
self.send_error(500)
|
||
|
|
return
|
||
|
|
|
||
|
|
self.send_success()
|
||
|
|
|
||
|
|
def body(self):
|
||
|
|
content_length = int(self.headers.get('Content-Length', 0))
|
||
|
|
return json.loads(self.rfile.read(content_length))
|
||
|
|
|
||
|
|
def send_success(self):
|
||
|
|
self.close_connection = True
|
||
|
|
self.send_response(200)
|
||
|
|
self.send_header('Content-Length', '0')
|
||
|
|
self.send_header('Connection', 'close')
|
||
|
|
self.end_headers()
|