2025-06-17 16:50:54 -04:00
|
|
|
"""Create a cluster."""
|
|
|
|
|
|
2025-06-18 16:15:53 -04:00
|
|
|
from aiohttp import ClientSession
|
2025-06-17 16:50:54 -04:00
|
|
|
from release_tests.support.mttserver import MTTServer
|
|
|
|
|
from release_tests.support.translate import Translate
|
|
|
|
|
|
2025-06-17 16:56:04 -04:00
|
|
|
|
|
|
|
|
class Cluster:
|
2025-06-17 16:50:54 -04:00
|
|
|
"""cluster of MoreThanText."""
|
|
|
|
|
|
2025-06-18 16:15:53 -04:00
|
|
|
def __init__(self, num=2, transurl=None, transreplies=None):
|
2025-06-17 16:50:54 -04:00
|
|
|
"""initialization"""
|
2025-06-18 16:15:53 -04:00
|
|
|
self.translate = Translate(url=transurl, replies=transreplies)
|
|
|
|
|
self.session = None
|
2025-06-17 16:50:54 -04:00
|
|
|
self.servers = []
|
|
|
|
|
for _ in range(num):
|
|
|
|
|
self.servers.append(MTTServer())
|
|
|
|
|
|
|
|
|
|
async def start(self):
|
|
|
|
|
"""Start the cluster."""
|
|
|
|
|
await self.translate.start()
|
|
|
|
|
for server in self.servers:
|
|
|
|
|
await server.start()
|
2025-06-18 16:15:53 -04:00
|
|
|
self.session = ClientSession()
|
2025-06-17 16:50:54 -04:00
|
|
|
|
|
|
|
|
async def stop(self):
|
|
|
|
|
"""Stops cluster."""
|
2025-06-18 16:15:53 -04:00
|
|
|
await self.session.close()
|
2025-06-17 16:50:54 -04:00
|
|
|
await self.translate.stop()
|
|
|
|
|
for server in self.servers:
|
|
|
|
|
await server.stop()
|
2025-06-18 16:15:53 -04:00
|
|
|
|
|
|
|
|
async def get(self, url):
|
|
|
|
|
"""get from each server in the cluster."""
|
|
|
|
|
replies = []
|
|
|
|
|
for server in self.servers:
|
|
|
|
|
async with self.session.get(f"{server.baseurl}{url}") as resp:
|
|
|
|
|
replies.append(resp)
|
|
|
|
|
return replies
|