9163d8bcbc
Callback plugins were transferred from validations-common repository to validations-libs. Necessary adjustments were made to the module structure, requierements, as well as installation and documentation generator config. Associated tests were moved as well, with removal of superfluous inheritance and imports included. Demonstration http server module for communication with `http_json` callback was moved with directory structure preserved. Signed-off-by: Jiri Podivin <jpodivin@redhat.com> Change-Id: I31768375430a2f29da71aae8f3db3882c373ced5
55 lines
1.8 KiB
Python
55 lines
1.8 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
import logging
|
|
|
|
|
|
class SimpleHandler(BaseHTTPRequestHandler):
|
|
def _set_headers(self):
|
|
self.send_response(200)
|
|
self.send_header('Content-type', 'text/html')
|
|
self.end_headers()
|
|
|
|
def do_GET(self):
|
|
logging.info("Received GET request:\n"
|
|
"Headers: {}\n".format(str(self.headers)))
|
|
self._set_headers()
|
|
self.wfile.write("GET request: {}".format(self.path).encode('utf-8'))
|
|
|
|
def do_POST(self):
|
|
content_length = int(self.headers['Content-Length'])
|
|
data = self.rfile.read(content_length)
|
|
logging.info("Received POST request:\n"
|
|
"Headers: {}\n"
|
|
"Body: \n{}\n".format(self.headers, data.decode('utf-8')))
|
|
self._set_headers()
|
|
self.wfile.write("POST request: {}".format(self.path).encode('utf-8'))
|
|
|
|
|
|
def run(host='localhost', port=8989):
|
|
logging.basicConfig(level=logging.INFO)
|
|
http_server = HTTPServer((host, port), SimpleHandler)
|
|
logging.info("Starting http server...\n")
|
|
try:
|
|
http_server.serve_forever()
|
|
except KeyboardInterrupt:
|
|
pass
|
|
http_server.server_close()
|
|
logging.info('Stopping http server...\n')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
run()
|