async def test_get_apps_stats_with_data(self): """ Prepara um ElasticSearch com alguns dados e faz o cálculo agregado do uso de CPU e RAM """ app_stats_datapoints = get_fixture( f"agents/ead07ffb-5a61-42c9-9386-21b680597e6c-S0/app_stats.json") app = MesosApp(id="infra/asgard/api") await self._load_app_stats_into_storage(self.INDEX_NAME, self.utc_now, app_stats_datapoints) backend = MarathonAppsBackend() user = User(**USER_WITH_MULTIPLE_ACCOUNTS_DICT) account = Account(**ACCOUNT_DEV_DICT) async with Elasticsearch([settings.STATS_API_URL]) as es: raw = await es.search(index=self.INDEX_NAME) cpu_pcts = [ hit["_source"]["cpu_pct"] for hit in raw["hits"]["hits"] ] mem_pcts = [ hit["_source"]["mem_pct"] for hit in raw["hits"]["hits"] ] self.assertEqual(5, len(cpu_pcts)) self.assertEqual(5, len(mem_pcts)) app_stats = await backend.get_app_stats(app, user, account) self.assertEqual( AppStats(cpu_pct="0.25", ram_pct="15.05", cpu_thr_pct="1.00"), app_stats, )
async def setUp(self): self.user = User(**USER_WITH_MULTIPLE_ACCOUNTS_DICT) self.account = Account(**ACCOUNT_DEV_DICT) self.account.owner = "asgard" self.account_dev = Account(**ACCOUNT_DEV_DICT) self.mesos_backend = MesosOrchestrator(MesosAgentsBackend(), MarathonAppsBackend())
async def setUp(self): await super(AgentsServiceTest, self).setUp() self.mesos_orchestrator = MesosOrchestrator( agents_backend=MesosAgentsBackend(), apps_backend=MarathonAppsBackend(), ) self.user = User(**USER_WITH_MULTIPLE_ACCOUNTS_DICT) self.account = Account(**ACCOUNT_DEV_DICT) self.agents_service = AgentsService()
async def test_get_apps_stats_no_data(self): """ Prepara um ElasticSearch com alguns dados e faz o cálculo agregado do uso de CPU e RAM """ app_stats_datapoints = get_fixture( f"agents/ead07ffb-5a61-42c9-9386-21b680597e6c-S0/app_stats.json") app = MesosApp(id="infra/app-does-not-exist") await self._load_app_stats_into_storage(self.INDEX_NAME, self.utc_now, app_stats_datapoints) backend = MarathonAppsBackend() user = User(**USER_WITH_MULTIPLE_ACCOUNTS_DICT) account = Account(**ACCOUNT_DEV_DICT) app_stats = await backend.get_app_stats(app, user, account) self.assertEqual(AppStats(cpu_pct="0", ram_pct="0", cpu_thr_pct="0"), app_stats)
async def setUp(self): self.user = User(**USER_WITH_MULTIPLE_ACCOUNTS_DICT) self.account = Account(**ACCOUNT_DEV_DICT) self.apps_backend = MarathonAppsBackend()
from asgard.backends.marathon.impl import MarathonAppsBackend from asgard.backends.mesos.impl import MesosOrchestrator, MesosAgentsBackend mesos = MesosOrchestrator(MesosAgentsBackend(), MarathonAppsBackend())