mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-23 02:01:55 +00:00
51 lines
1.3 KiB
Python
51 lines
1.3 KiB
Python
|
import asyncio
|
||
|
import os
|
||
|
import pathlib
|
||
|
import sys
|
||
|
|
||
|
sys.path.insert(0, "/home/maria/flock")
|
||
|
|
||
|
from flock.Hypervisor import Hypervisor
|
||
|
from flock.Machine import Machine
|
||
|
|
||
|
class Test:
|
||
|
machines_start = {}
|
||
|
|
||
|
def __init__(self, name):
|
||
|
self.name = name
|
||
|
self.hypervisor = Hypervisor(name)
|
||
|
self._started = asyncio.Future()
|
||
|
self._starting = False
|
||
|
|
||
|
async def hcom(self, *args):
|
||
|
if self._started.done():
|
||
|
return await self.hypervisor.control_socket.send_cmd(*args)
|
||
|
|
||
|
if self._starting:
|
||
|
await self._started
|
||
|
else:
|
||
|
self._starting = True
|
||
|
await self.hypervisor.prepare()
|
||
|
os.symlink(pathlib.Path("bgp-secondary.log").absolute(), self.hypervisor.basedir / "flock.log")
|
||
|
await self.hypervisor.start()
|
||
|
|
||
|
self._started.set_result(True)
|
||
|
self._starting = False
|
||
|
|
||
|
return await self.hypervisor.control_socket.send_cmd_early(*args)
|
||
|
|
||
|
async def machines(self, *names):
|
||
|
info = await asyncio.gather(*[
|
||
|
self.hcom("machine", name, { "type": "minimalist" })
|
||
|
for name in names
|
||
|
])
|
||
|
|
||
|
return [
|
||
|
Machine.new(
|
||
|
name=n,
|
||
|
hypervisor=self.hypervisor,
|
||
|
**i
|
||
|
) for n,i in zip(names, info)
|
||
|
]
|
||
|
|