mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 17:51:53 +00:00
Flock: First try on CLI module, now sending just the down command
This commit is contained in:
parent
5aaa8ea226
commit
c87ff6088a
@ -9,10 +9,24 @@ import sys
|
|||||||
|
|
||||||
sys.path.insert(0, "/home/maria/flock")
|
sys.path.insert(0, "/home/maria/flock")
|
||||||
|
|
||||||
import flock.Hypervisor as Hypervisor
|
from flock.Hypervisor import Hypervisor
|
||||||
|
|
||||||
|
sys.path.insert(0, str(pathlib.Path(__file__).parent.parent / "lib"))
|
||||||
|
|
||||||
|
from BIRD.CLI import CLI, Transport
|
||||||
|
|
||||||
|
os.chdir(pathlib.Path(__file__).parent)
|
||||||
|
|
||||||
|
class MinimalistTransport(Transport):
|
||||||
|
def __init__(self, socket, machine):
|
||||||
|
self.sock = socket
|
||||||
|
self.machine = machine
|
||||||
|
|
||||||
|
async def send_cmd(self, *args):
|
||||||
|
return await self.sock.send_cmd("run_in", self.machine, "./birdc", "-l", *args)
|
||||||
|
|
||||||
async def main():
|
async def main():
|
||||||
h = Hypervisor.Hypervisor("bgp-secondary")
|
h = Hypervisor("bgp-secondary")
|
||||||
await h.prepare()
|
await h.prepare()
|
||||||
os.symlink(pathlib.Path("bgp-secondary.log").absolute(), h.basedir / "flock.log")
|
os.symlink(pathlib.Path("bgp-secondary.log").absolute(), h.basedir / "flock.log")
|
||||||
await h.start()
|
await h.start()
|
||||||
@ -77,21 +91,46 @@ async def main():
|
|||||||
for where in ("src", "dest")
|
for where in ("src", "dest")
|
||||||
]))
|
]))
|
||||||
|
|
||||||
|
await asyncio.sleep(5)
|
||||||
|
|
||||||
"""
|
src_cli = CLI(MinimalistTransport(h.control_socket, "src"))
|
||||||
print(await asyncio.gather(
|
dest_cli = CLI(MinimalistTransport(h.control_socket, "dest"))
|
||||||
h.control_socket.send_cmd("run_in", "src", "ip", "a"),
|
|
||||||
h.control_socket.send_cmd("run_in", "dest", "ip", "a"),
|
|
||||||
))
|
|
||||||
"""
|
|
||||||
await asyncio.sleep(30)
|
|
||||||
|
|
||||||
print(await asyncio.gather(*[
|
print(await asyncio.gather(*[
|
||||||
h.control_socket.send_cmd("run_in", where, "./birdc", "-l", "down")
|
h.control_socket.send_cmd("run_in", where, "./birdc", "-l", "show", "route", "table", "all")
|
||||||
for where in ("src", "dest")
|
for where in ("src", "dest")
|
||||||
]))
|
]))
|
||||||
|
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
|
|
||||||
|
for p in ("p170", "p180", "p190", "p200"):
|
||||||
|
print(await h.control_socket.send_cmd("run_in", "src", "./birdc", "-l", "enable", p))
|
||||||
|
await asyncio.sleep(1)
|
||||||
|
|
||||||
|
shr = await asyncio.gather(*[
|
||||||
|
h.control_socket.send_cmd("run_in", where, "./birdc", "-l", "show", "route", "table", "all")
|
||||||
|
for where in ("src", "dest")
|
||||||
|
])
|
||||||
|
|
||||||
|
print(shr[0]["out"].decode(), shr[1]["out"].decode())
|
||||||
|
|
||||||
|
await asyncio.sleep(1)
|
||||||
|
|
||||||
|
print(await asyncio.gather(*[
|
||||||
|
h.control_socket.send_cmd("run_in", where, "./birdc", "-l", "show", "route", "table", "all")
|
||||||
|
for where in ("src", "dest")
|
||||||
|
]))
|
||||||
|
|
||||||
|
print(await asyncio.gather(*[
|
||||||
|
c.down()
|
||||||
|
for c in (src_cli, dest_cli)
|
||||||
|
]))
|
||||||
|
|
||||||
|
await asyncio.sleep(5)
|
||||||
|
for q in (dest, src):
|
||||||
|
for f in ("bird", "birdc", "bird.conf", "bird.log"):
|
||||||
|
(q["workdir"] / f).unlink()
|
||||||
|
|
||||||
await h.control_socket.send_cmd("stop", True)
|
await h.control_socket.send_cmd("stop", True)
|
||||||
|
|
||||||
assert(__name__ == "__main__")
|
assert(__name__ == "__main__")
|
||||||
|
9
flock/lib/BIRD/CLI.py
Normal file
9
flock/lib/BIRD/CLI.py
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
class Transport:
|
||||||
|
pass
|
||||||
|
|
||||||
|
class CLI:
|
||||||
|
def __init__(self, transport: Transport):
|
||||||
|
self.transport = transport
|
||||||
|
|
||||||
|
async def down(self):
|
||||||
|
return await self.transport.send_cmd("down")
|
1
flock/lib/BIRD/__init__.py
Normal file
1
flock/lib/BIRD/__init__.py
Normal file
@ -0,0 +1 @@
|
|||||||
|
print("imported", __file__)
|
Loading…
Reference in New Issue
Block a user