dns manager draft
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -109,3 +109,5 @@ docs/_build/
|
||||
target/
|
||||
|
||||
|
||||
|
||||
virtenv
|
||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "3rdLib/fakedns"]
|
||||
path = 3rdLib/fakedns
|
||||
url = git@github.com:pathes/fakedns.git
|
||||
1
3rdLib/fakedns
Submodule
1
3rdLib/fakedns
Submodule
Submodule 3rdLib/fakedns added at 3e6d00b9f3
6
example/qemu.sh
Normal file
6
example/qemu.sh
Normal 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
|
||||
14
src/fake_services/service/fake_server_manager.py
Normal file
14
src/fake_services/service/fake_server_manager.py
Normal 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()
|
||||
@@ -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()
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
18
test/service/networkservice/test_dns_manager.py
Normal file
18
test/service/networkservice/test_dns_manager.py
Normal 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()
|
||||
Reference in New Issue
Block a user