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,
        )
예제 #2
0
    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())
예제 #3
0
 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()
예제 #6
0
from asgard.backends.marathon.impl import MarathonAppsBackend
from asgard.backends.mesos.impl import MesosOrchestrator, MesosAgentsBackend

mesos = MesosOrchestrator(MesosAgentsBackend(), MarathonAppsBackend())