Esempio n. 1
0
    def _execute(self):
        # calling the clients now
        self.test_result.startTestRun()

        cb = ioloop.PeriodicCallback(self.refresh, 100, self.loop)
        cb.start()
        try:
            client = Client(self.args['broker'])
            logger.debug('Calling the broker...')
            client.run(self.args)
            logger.debug('Waiting for results')
            self.loop.start()
        finally:
            # end..
            cb.stop()
            self.test_result.stopTestRun()
            self.context.destroy()
            self.flush()
Esempio n. 2
0
    def health_check(self):
        client = Client(self.broker, timeout_max_overflow=20.)
        ping = client.ping()
        total_agents = len(ping['agents'])
        if total_agents == 0:
            msg = 'No agents currently registered.'
            return False, msg, 0

        runs = client.list_runs().items()
        busy_agents = sum([len(agents) for run_id, agents in runs])
        avail = total_agents - busy_agents
        if avail == 0:
            # no agents are available.
            msg = 'All agents are busy.'
            return False, msg, 0

        args = {'fqn': 'loads.examples.test_blog.TestWebSite.test_health',
                'hits': '1',
                'agents': avail,
                'users': '1',
                'detach': True}

        client.run(args)
        return True, 'Health check launched', avail