dns manager draft

This commit is contained in:
stubbfel
2015-04-01 01:25:04 +02:00
parent 89bb462f75
commit 150788e11e
9 changed files with 61 additions and 36 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 3e6d00b9f3

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

@@ -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

@@ -1,27 +0,0 @@
__author__ = 'dev'
import socket
def resolve(name):
if name == "mpapp.nobies.in":
return "172.16.45.84"
else :
# you ought to add some basic checking of name here
return socket.gethostbyname(name)
host = ''
port = 50000
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
while 1:
client, address = s.accept()
data = client.recv(size).decode("utf8")
if data:
bits = data.split(":")
if bits[0] == 'h':
client.send(bytes(resolve(bits[1]), "utf8"))
client.close()

View File

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

View File

@@ -1,17 +1,12 @@
from fake_services.service.fake_server_manager import FakeServerManager
__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
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.assertEqual(True, False)
if __name__ == '__main__':
unittest.main()