示例#1
0
	def start_all_agents_thread(self):
		logger.info("Launching Hestia's agents")

		for agent in self.config.get_agents():
			agent.start_command_thread()

		logger.info("Hestia's agents launched")

		self.agents_threads_are_started = True
示例#2
0
    def stop_all_agents_thread(self):
        logger.info("Stoping Hestia's agents")

        for agent in self.config.get_agents():
            agent.stop_command_thread()

        logger.info("Hestia's agents stopped")

        self.agents_threads_are_started = False
示例#3
0
	def stop_all_agents_thread(self):
		logger.info("Stoping Hestia's agents")

		for agent in self.config.get_agents():
			agent.stop_command_thread()

		logger.info("Hestia's agents stopped")

		self.agents_threads_are_started = False
示例#4
0
    def start_all_agents_thread(self):
        logger.info("Launching Hestia's agents")

        for agent in self.config.get_agents():
            agent.start_command_thread()

        logger.info("Hestia's agents launched")

        self.agents_threads_are_started = True
示例#5
0
	def configuration_error_handler(self):
		self.config.start_reconection()
		self.stop_all_agents_thread()
		logger.error("Connection failed !")

		while (self.config.have_to_be_waited()):
			logger.info("Connection lost Hestia is trying to reconnect")
			self.delay()

		if not self.config.can_run():
			self.server_is_running = False
示例#6
0
    def configuration_error_handler(self):
        self.config.start_reconection()
        self.stop_all_agents_thread()
        logger.error("Connection failed !")

        while (self.config.have_to_be_waited()):
            logger.info("Connection lost Hestia is trying to reconnect")
            self.delay()

        if not self.config.can_run():
            self.server_is_running = False
	def set_up_databases(self):
		agents_in_db_list = self.board_model.get_list_agents(self.configuration.board['name'])

		for db_agent in agents_in_db_list:
			agent_find = False
			for config_file_agent in self.configuration.agents_datas:
				if config_file_agent["name"] == db_agent:
					agent_find = True

			if not agent_find:
				logger.info(db_agent + " not found removing from database")
				self.board_model.remove_agent_data(self.configuration.board['name'], db_agent)
示例#8
0
    def set_up_databases(self):
        agents_in_db_list = self.board_model.get_list_agents(
            self.configuration.board['name'])

        for db_agent in agents_in_db_list:
            agent_find = False
            for config_file_agent in self.configuration.agents_datas:
                if config_file_agent["name"] == db_agent:
                    agent_find = True

            if not agent_find:
                logger.info(db_agent + " not found removing from database")
                self.board_model.remove_agent_data(
                    self.configuration.board['name'], db_agent)
示例#9
0
    def try_to_reconnect(self):
        number_of_reconnection_attempt = 6
        delay = 10

        for i in range(0, number_of_reconnection_attempt):
            if self.server_can_run:
                self.is_trying_to_reconected = False
                pass

            try:
                self.server_can_run = self.all_ressources_are_available()
            except:
                self.is_trying_to_reconected = True

            if not self.server_can_run:
                logger.error("Reconnection failed !")
                time.sleep(delay)
            else:
                logger.info("Hestia is coming back !")
	def try_to_reconnect(self):
		number_of_reconnection_attempt = 6
		delay = 10

		for i in range(0, number_of_reconnection_attempt):
			if self.server_can_run:
				self.is_trying_to_reconected = False
				pass

			try:
				self.server_can_run = self.all_ressources_are_available()
			except:
				self.is_trying_to_reconected = True

			if not self.server_can_run:
				logger.error("Reconnection failed !")
				time.sleep(delay)
			else:
				logger.info("Hestia is coming back !")
示例#11
0
	def run(self):
		logger.info("Hestia is running !")

		while self.server_is_running:
			if not self.agents_threads_are_started:
				self.start_all_agents_thread()

			try:
				if self.config.all_ressources_are_available():
					self.delay()
				else:
					self.configuration_error_handler()
			except KeyboardInterrupt:
				self.server_is_running = False
			except:
				logger.error("[CRITICAL ERROR] ")
				self.server_is_running = False

		logger.info("Hestia is quitting !")

		sys.exit(0)
示例#12
0
    def run(self):
        logger.info("Hestia is running !")

        while self.server_is_running:
            if not self.agents_threads_are_started:
                self.start_all_agents_thread()

            try:
                if self.config.all_ressources_are_available():
                    self.delay()
                else:
                    self.configuration_error_handler()
            except KeyboardInterrupt:
                self.server_is_running = False
            except:
                logger.error("[CRITICAL ERROR] ")
                self.server_is_running = False

        logger.info("Hestia is quitting !")

        sys.exit(0)
示例#13
0
    def init_attr(self, json_configuration_file):
        self.configuration = configuration_loader(json_configuration_file)

        if self.configuration.is_loaded:
            logger.info("Initialize communication with Hestia city")
            self.board_model = board_model(self.configuration.mongo_datas)
            logger.info("Communication with Hestia city established")
            self.set_up_databases()

            logger.info("Initialisation of the Hestia agent's")
            self.agents = []
            self.initialize_agents()
            logger.info("Hestia agent's ready")
            self.server_can_run = True
	def init_attr(self, json_configuration_file):
		self.configuration =  configuration_loader(json_configuration_file)

		if self.configuration.is_loaded:
			logger.info("Initialize communication with Hestia city")
			self.board_model = board_model(self.configuration.mongo_datas)
			logger.info("Communication with Hestia city established")
			self.set_up_databases()

			logger.info("Initialisation of the Hestia agent's")
			self.agents = []
			self.initialize_agents()
			logger.info("Hestia agent's ready")
			self.server_can_run = True
示例#15
0
from src.server.server.server_core import server_core
from src.commons.utils.logger import logger

import sys

if __name__ == "__main__":
	args = sys.argv[1:]

	#try:
	if len(args) >= 2:
		logger.set_level(args[1])
	elif len(args) <= 0:
		logger.error("[MAIN] Please add configuration file path to launch command parameters")

	logger.info("Hello !")
	server = server_core(args[0])

	#start all the threads
	server.run()

	logger.info("Bye !")
	#except:
	#	logger.error("[CRITICAL_ERROR] Hestia is stoping !]")
	#	exit(1)

	exit(0)
示例#16
0
from src.server.server.server_core import server_core
from src.commons.utils.logger import logger

import sys

if __name__ == "__main__":
    args = sys.argv[1:]

    #try:
    if len(args) >= 2:
        logger.set_level(args[1])
    elif len(args) <= 0:
        logger.error(
            "[MAIN] Please add configuration file path to launch command parameters"
        )

    logger.info("Hello !")
    server = server_core(args[0])

    #start all the threads
    server.run()

    logger.info("Bye !")
    #except:
    #	logger.error("[CRITICAL_ERROR] Hestia is stoping !]")
    #	exit(1)

    exit(0)