Finish dns

This commit is contained in:
stubbfel
2015-04-01 21:11:19 +02:00
12 changed files with 66 additions and 13 deletions

2
.gitignore vendored
View File

@@ -109,3 +109,5 @@ docs/_build/
target/
virtenv

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "3rdLib/fakedns"]
path = 3rdLib/fakedns
url = git@github.com:pathes/fakedns.git

1
3rdLib/fakedns Submodule

Submodule 3rdLib/fakedns added at 76675b94ce

View File

@@ -3,7 +3,9 @@ setup.py
src/__init__.py
src/fake_services/__init__.py
src/fake_services/service/__init__.py
src/fake_services/service/fake_server_manager.py
src/fake_services/service/networkservice/__init__.py
src/fake_services/service/networkservice/fake_dns_server_manager.py
src/fake_services/service/webservice/__init__.py
src/fake_services/service/webservice/fake_http_request_handler.py
src/fake_services/service/webservice/fake_web_server.py

6
example/qemu.sh Normal file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
sudo ip addr add 172.20.0.1/16 dev br0
sudo ip link set br0 up
sudo dnsmasq --interface=br0 --bind-interfaces --dhcp-range=172.20.0.2,172.20.255.254
sudo modprobe virtio
qemu-system-i386 -m 512 -enable-kvm -net nic -net bridge,br=br0 ~/Downloads/FakeServices32B.i686-0.1.2.qcow2

View File

@@ -1,6 +1,7 @@
#!/usr/bin/env python3
__author__ = 'dev'
from fake_services.service.webservice.fake_web_server_manager import FakeWebServerManager
from fake_services.service.networkservice.fake_dns_server_manager import FakeDnsServerManager
config = {
"/test":
@@ -30,12 +31,15 @@ config = {
"/test4":
[
{
"host_pattern": "0.0.0.0:8080",
"response_content_path": "request/test.xml"
}
]
}
dns = FakeDnsServerManager()
dns.start_server()
server = FakeWebServerManager(server_port=8080, requests_config=config)
server.start_server()
#server.stop_server()

View File

@@ -12,3 +12,4 @@ setup(
author_email='stubbfel@gmail.com',
description='Helps to create many services on one maschine. Its manage IP-Addesses and response with static content of certain requests'
)

View File

@@ -0,0 +1,14 @@
__author__ = 'dev'
import threading
class FakeServerManager:
def __init__(self, server_class, request_handler_class, server_port, **kwargs):
self.server = server_class(('', server_port), request_handler_class, kwargs)
def start_server(self):
threading.Thread(target=self.server.serve_forever).start()
def stop_server(self):
self.server.shutdown()

View File

@@ -0,0 +1,12 @@
__author__ = 'dev'
from socketserver import ThreadingUDPServer
from fakedns import DNSHandler
from fake_services.service.fake_server_manager import FakeServerManager
DEFAULT_DNS_PORT = 53
class FakeDnsServerManager(FakeServerManager):
def __init__(self, server_port=DEFAULT_DNS_PORT):
super().__init__(ThreadingUDPServer, DNSHandler, server_port, **{"bind_and_activate": True})

View File

@@ -1,13 +1,10 @@
__author__ = 'dev'
import os
import re
import urllib.parse
from http.server import SimpleHTTPRequestHandler
HEADERS_HOST_PARAMETER_KEY_NAME = "Host"
REQUEST_LINE_ENCODING = "iso-8859-1"
RESPONSE_PATH_PARAMETER_KEY_NAME = "rpath"
HOST_PATTERN_KEY_NAME = "host_pattern"
RESPONSE_CONTENT_PATH_KEY_NAME = "response_content_path"

View File

@@ -1,17 +1,10 @@
__author__ = 'dev'
import threading
from fake_services.service.webservice.fake_http_request_handler import FakeHTTPRequestHandler
from fake_services.service.webservice.fake_web_server import FakeWebServer
from fake_services.service.fake_server_manager import FakeServerManager
class FakeWebServerManager:
class FakeWebServerManager(FakeServerManager):
def __init__(self, server_port, requests_config=None):
self.server = FakeWebServer(('', server_port), FakeHTTPRequestHandler, requests_config)
def start_server(self):
threading.Thread(target=self.server.serve_forever).start()
def stop_server(self):
self.server.shutdown()
super().__init__(FakeWebServer, FakeHTTPRequestHandler, server_port, **requests_config)

View File

@@ -0,0 +1,18 @@
from fake_services.service.networkservice.fake_dns_server_manager import FakeDnsServerManager
__author__ = 'dev'
import unittest
class TestFakeDns(unittest.TestCase):
def test_dns_server_start_stop(self):
manager = FakeDnsServerManager(8080)
manager.start_server()
manager.stop_server()
self.assertTrue(True)
if __name__ == '__main__':
unittest.main()