Пример #1
0
 def init_plugin_manager():
     """ docstring"""
     plugin_manager = PluginManagerFactory.get_instance()
     Scope.get_instance().set_plugin_manager(plugin_manager)
     # order changed, problem?
     plugin_manager.load_plugins()
     return plugin_manager
Пример #2
0
    def execute_win_command(filePath,
                            parameters=None,
                            shell=True,
                            result=True):

        try:
            Scope.get_instance().get_logger().debug('Executing command: ' +
                                                    str(filePath))
            process = subprocess.Popen([
                r'powershell.exe', '-ExecutionPolicy', 'Unrestricted',
                filePath, parameters
            ],
                                       stderr=subprocess.PIPE,
                                       stdout=subprocess.PIPE)

            Scope.get_instance().get_logger().debug('Executing command: ' +
                                                    str(filePath))

            if result is True:
                result_code = process.wait()
                p_out = process.stdout.read().decode("unicode_escape")
                p_err = process.stderr.read().decode("unicode_escape")

                return result_code, p_out, p_err
            else:
                return None, None, None
        except Exception as e:
            return 1, 'Could not execute command: {0}. Error Message: {1}'.format(
                filePath, str(e)), ''
Пример #3
0
    def show_message(username, display, message='', title=''):
        ask_path = Util.get_ask_path_file() + 'confirm.py'
        Scope.get_instance().get_logger().debug(
            'DISPLAYYYY --------->>>>>>>>: ' + str(display))
        if display is None:
            display_number = Util.get_username_display()
        else:
            display_number = display
        try:
            if Util.get_desktop_env() == "gnome":
                display_number = Util.get_username_display_gnome(username)
            if username is not None:
                command = 'su - {0} -c \'python3 {1} \"{2}\" \"{3}\" \"{4}\"\''.format(
                    username, ask_path, message, title, display_number)
                result_code, p_out, p_err = Util.execute(command)

                if p_out.strip() == 'Y':
                    return True
                elif p_out.strip() == 'N':
                    return False
                else:
                    return None
            else:
                return None
        except Exception as e:
            print("Error when showing message " + str(e))
            return None
Пример #4
0
 def init_config_manager(config_file_path, configfile_folder_path):
     """ docstring"""
     config_manager = ConfigManager(config_file_path,
                                    configfile_folder_path)
     config = config_manager.read()
     Scope.get_instance().set_configuration_manager(config)
     return config
Пример #5
0
 def init_ahenk_db():
     """ docstring"""
     db_service = AhenkDbService()
     db_service.connect()
     db_service.initialize_table()
     Scope.get_instance().set_sb_service(db_service)
     return db_service
Пример #6
0
 def init_plugin_manager():
     """ docstring"""
     plugin_manager = PluginManagerFactory.get_instance()
     Scope.get_instance().set_plugin_manager(plugin_manager)
     # order changed, problem?
     plugin_manager.load_plugins()
     return plugin_manager
Пример #7
0
 def init_ahenk_db():
     """ docstring"""
     db_service = AhenkDbService()
     db_service.connect()
     db_service.initialize_table()
     Scope.get_instance().set_sb_service(db_service)
     return db_service
Пример #8
0
 def init_logger():
     """ docstring"""
     print('init logger...')
     logger = Logger()
     logger.info('Log was set')
     Scope.get_instance().set_logger(logger)
     return logger
Пример #9
0
 def init_message_response_queue():
     """ docstring"""
     response_queue = queue.Queue()
     message_response_queue = MessageResponseQueue(response_queue)
     message_response_queue.setDaemon(True)
     message_response_queue.start()
     Scope.get_instance().set_response_queue(response_queue)
     return response_queue
Пример #10
0
 def get_username():
     user_name = Scope.get_instance().get_db_service().select_one_result(
         'session', 'username', " 1=1 order by id desc ")
     domain = Scope.get_instance().get_db_service().select_one_result(
         'session', 'domain', " 1=1 order by id desc ")
     if domain:
         user_name = "{0}\\{1}".format(domain, user_name)
     return user_name
Пример #11
0
 def get_as_user():
     as_user = Scope.get_instance().get_db_service().select_one_result(
         'session', 'username', " 1=1 order by id desc ")
     domain = Scope.get_instance().get_db_service().select_one_result(
         'session', 'domain', " 1=1 order by id desc ")
     if domain:
         as_user = "******".format(domain, as_user)
     return as_user
Пример #12
0
 def init_message_response_queue():
     """ docstring"""
     response_queue = queue.Queue()
     message_response_queue = MessageResponseQueue(response_queue)
     message_response_queue.setDaemon(True)
     message_response_queue.start()
     Scope.get_instance().set_response_queue(response_queue)
     return response_queue
Пример #13
0
 def init_scheduler():
     """ docstring"""
     scheduler_ins = SchedulerFactory.get_intstance()
     scheduler_ins.initialize()
     Scope.get_instance().set_scheduler(scheduler_ins)
     sc_thread = threading.Thread(target=scheduler_ins.run)
     sc_thread.setDaemon(True)
     sc_thread.start()
     return scheduler_ins
Пример #14
0
 def init_scheduler():
     """ docstring"""
     scheduler_ins = SchedulerFactory.get_intstance()
     scheduler_ins.initialize()
     Scope.get_instance().set_scheduler(scheduler_ins)
     sc_thread = threading.Thread(target=scheduler_ins.run)
     sc_thread.setDaemon(True)
     sc_thread.start()
     return scheduler_ins
Пример #15
0
    def plugin_installation_failure(self, plugin_name, plugin_version):

        self.logger.warning('{0} plugin installation failure '.format(plugin_name))

        if plugin_name in self.plugin_manager.delayed_profiles.keys():
            profile = self.plugin_manager.delayed_profiles[plugin_name]
            self.logger.warning('An error message sending with related profile properties...')
            related_policy = self.db_service.select('policy', ['version', 'execution_id'],
                                                    'id={0}'.format(profile.get_id()))
            data = dict()
            data['message'] = "Profil işletilirken eklenti bulunamadı "
            "ve eksik olan eklenti kurulmaya çalışırken hata ile karşılaşıldı. "
            "İlgili eklenti Ahenk'e yüklendiğinde, başarısız olan bu profil "
            "(Başka bir politika tarafından ezilmedikçe) "
            "çalıştırılacaktır"
            " Sorunu çözmek için Lider yapılandırma dosyasındaki eklenti dağıtım "
            "bilgilerinin doğruluğundan ve belirtilen dizinde geçerli eklenti paketinin "
            "bulunduğundan emin olun."
            response = Response(type=MessageType.POLICY_STATUS.value, id=profile.get_id(),
                                code=MessageCode.POLICY_ERROR.value,
                                message="Profil işletilirken eklenti bulunamadı "
                                        "ve eksik olan eklenti kurulurken hata oluştu",
                                execution_id=related_policy[0][1], policy_version=related_policy[0][0],
                                data=json.dumps(data), content_type=ContentType.APPLICATION_JSON.value)
            messenger = Scope.get_instance().get_messenger()
            messenger.send_direct_message(self.message_manager.policy_status_msg(response))
            self.logger.warning(
                'Error message was sent about {0} plugin installation failure while trying to run a profile')

        if plugin_name in self.plugin_manager.delayed_tasks.keys():
            task = self.plugin_manager.delayed_tasks[plugin_name]
            self.logger.warning('An error message sending with related task properties...')

            data = dict()
            data['message'] = "Görev işletilirken eklenti bulunamadı "
            "ve eksik olan eklenti kurulmaya çalışırken hata ile karşılaşıldı. "
            "İlgili eklenti Ahenk'e yüklendiğinde, başarısız olan bu görev "
            "çalıştırılacaktır"
            " Sorunu çözmek için Lider yapılandırma dosyasındaki eklenti dağıtım "
            "bilgilerinin doğruluğundan ve belirtilen dizinde geçerli eklenti paketinin "
            "bulunduğundan emin olun."
            response = Response(type=MessageType.TASK_STATUS.value, id=task.get_id(),
                                code=MessageCode.TASK_ERROR.value,
                                message="Görev işletilirken eklenti bulunamadı "
                                        "ve eksik olan eklenti kurulmaya çalışırken oluştu.",
                                data=json.dumps(data), content_type=ContentType.APPLICATION_JSON.value)
            messenger = Scope.get_instance().get_messenger()
            messenger.send_direct_message(self.message_manager.task_status_msg(response))
            self.logger.warning(
                'Error message was sent about {0} plugin installation failure while trying to run a task')
Пример #16
0
    def plugin_installation_failure(self, plugin_name, plugin_version):

        self.logger.warning('{0} plugin installation failure '.format(plugin_name))

        if plugin_name in self.plugin_manager.delayed_profiles.keys():
            profile = self.plugin_manager.delayed_profiles[plugin_name]
            self.logger.warning('An error message sending with related profile properties...')
            related_policy = self.db_service.select('policy', ['version', 'execution_id'],
                                                    'id={0}'.format(profile.get_id()))
            data = dict()
            data['message'] = "Profil işletilirken eklenti bulunamadı "
            "ve eksik olan eklenti kurulmaya çalışırken hata ile karşılaşıldı. "
            "İlgili eklenti Ahenk'e yüklendiğinde, başarısız olan bu profil "
            "(Başka bir politika tarafından ezilmedikçe) "
            "çalıştırılacaktır"
            " Sorunu çözmek için Lider yapılandırma dosyasındaki eklenti dağıtım "
            "bilgilerinin doğruluğundan ve belirtilen dizinde geçerli eklenti paketinin "
            "bulunduğundan emin olun."
            response = Response(type=MessageType.POLICY_STATUS.value, id=profile.get_id(),
                                code=MessageCode.POLICY_ERROR.value,
                                message="Profil işletilirken eklenti bulunamadı "
                                        "ve eksik olan eklenti kurulurken hata oluştu",
                                execution_id=related_policy[0][1], policy_version=related_policy[0][0],
                                data=json.dumps(data), content_type=ContentType.APPLICATION_JSON.value)
            messenger = Scope.get_instance().get_messenger()
            messenger.send_direct_message(self.message_manager.policy_status_msg(response))
            self.logger.warning(
                'Error message was sent about {0} plugin installation failure while trying to run a profile')

        if plugin_name in self.plugin_manager.delayed_tasks.keys():
            task = self.plugin_manager.delayed_tasks[plugin_name]
            self.logger.warning('An error message sending with related task properties...')

            data = dict()
            data['message'] = "Görev işletilirken eklenti bulunamadı "
            "ve eksik olan eklenti kurulmaya çalışırken hata ile karşılaşıldı. "
            "İlgili eklenti Ahenk'e yüklendiğinde, başarısız olan bu görev "
            "çalıştırılacaktır"
            " Sorunu çözmek için Lider yapılandırma dosyasındaki eklenti dağıtım "
            "bilgilerinin doğruluğundan ve belirtilen dizinde geçerli eklenti paketinin "
            "bulunduğundan emin olun."
            response = Response(type=MessageType.TASK_STATUS.value, id=task.get_id(),
                                code=MessageCode.TASK_ERROR.value,
                                message="Görev işletilirken eklenti bulunamadı "
                                        "ve eksik olan eklenti kurulmaya çalışırken oluştu.",
                                data=json.dumps(data), content_type=ContentType.APPLICATION_JSON.value)
            messenger = Scope.get_instance().get_messenger()
            messenger.send_direct_message(self.message_manager.task_status_msg(response))
            self.logger.warning(
                'Error message was sent about {0} plugin installation failure while trying to run a task')
Пример #17
0
    def check_registration(self):
        """ docstring"""
        # max_attempt_number = int(System.Hardware.Network.interface_size()) * 3
        max_attempt_number = 1
        # self.logger.debug()
        # logger = Scope.getInstance().getLogger()
        registration = Scope.get_instance().get_registration()

        try:
            #if registration.is_registered() is False:
            #    self.logger.debug('Ahenk is not registered. Attempting for registration')
            #    if registration.registration_request() == False:
            #        self.registration_failed()

            if registration.is_registered() is False:
                print("Registration attemp")
                max_attempt_number -= 1
                self.logger.debug(
                    'Ahenk is not registered. Attempting for registration')
                registration.registration_request(self.register_hostname,
                                                  self.register_user_name,
                                                  self.register_user_password)

                #if max_attempt_number < 0:
                #    self.logger.warning('Number of Attempting for registration is over')
                #    self.registration_failed()
                #    break
        except Exception as e:
            self.registration_failed()
            self.logger.error('Registration failed. Error message: {0}'.format(
                str(e)))
Пример #18
0
    def __init__(self):
        super(ExecutionManager, self).__init__()

        scope = Scope.get_instance()
        self.config_manager = scope.get_configuration_manager()
        self.event_manager = scope.get_event_manager()
        self.task_manager = scope.get_task_manager()
        self.messenger = scope.get_messenger()
        self.logger = scope.get_logger()
        self.db_service = scope.get_db_service()
        self.message_manager = scope.get_message_manager()
        self.plugin_manager = scope.get_plugin_manager()
        self.policy_executed = dict()

        self.event_manager.register_event(MessageType.EXECUTE_SCRIPT.value,
                                          self.execute_script)
        self.event_manager.register_event(MessageType.EXECUTE_TASK.value,
                                          self.execute_task)
        self.event_manager.register_event(MessageType.EXECUTE_POLICY.value,
                                          self.execute_policy)
        self.event_manager.register_event(MessageType.INSTALL_PLUGIN.value,
                                          self.install_plugin)
        self.event_manager.register_event(MessageType.RESPONSE_AGREEMENT.value,
                                          self.agreement_update)
        self.event_manager.register_event(
            MessageType.UPDATE_SCHEDULED_TASK.value,
            self.update_scheduled_task)
Пример #19
0
 def __init__(self):
     # super(TaskManager, self).__init__()
     scope = Scope.get_instance()
     self.pluginManager = scope.get_plugin_manager()
     self.logger = scope.get_logger()
     self.db_service = scope.get_db_service()
     self.scheduler = scope.get_scheduler()
Пример #20
0
 def get_logger(self):
     try:
         return Scope.get_instance().get_logger()
     except Exception as e:
         self.scope.get_logger().error(
             'A problem occurred while getting logger. Error Message: {0}'.format(str(e)))
         return None
Пример #21
0
 def __init__(self, data, context):
     super(AbstractPlugin, self).__init__()
     scope = Scope.get_instance()
     self.data = data
     self.context = context
     self.logger = self.get_logger()
     self.message_code = self.get_message_code()
Пример #22
0
    def __init__(self):
        super(Logger, self).__init__()
        scope = Scope.get_instance()
        config_manger = scope.get_configuration_manager()

        logging.config.fileConfig(config_manger.get('BASE', 'logConfigurationFilePath'))
        self.logger = logging.getLogger()
Пример #23
0
    def update_scheduled_task(self, arg):
        self.logger.debug('Working on scheduled task ...')
        update_scheduled_json = json.loads(arg)
        scheduler = Scope.get_instance().get_scheduler()

        if str(update_scheduled_json['cronExpression']).lower(
        ) == 'none' or update_scheduled_json['cronExpression'] is None:
            self.logger.debug('Scheduled task will be removed')
            scheduler.remove_job(int(update_scheduled_json['taskId']))
            self.logger.debug('Task removed from scheduled database')
            self.db_service.update(
                'task', ['deleted'], ['True'],
                'id={0}'.format(update_scheduled_json['taskId']))
            self.logger.debug('Task table updated.')
        else:
            self.logger.debug(
                'Scheduled task cron expression will be updated.')
            self.db_service.update(
                'task', ['cron_expr'],
                [str(update_scheduled_json['cronExpression'])],
                'id={0}'.format(update_scheduled_json['taskId']))
            self.logger.debug('Task table updated.')
            scheduler.remove_job(str(update_scheduled_json['taskId']))
            self.logger.debug('Previous scheduled task removed.')
            scheduler.add_job(
                ScheduleTaskJob(
                    self.get_task_bean_by_id(update_scheduled_json['taskId'])))
            self.logger.debug('New scheduled task added')
Пример #24
0
 def __init__(self):
     # super(TaskManager, self).__init__()
     scope = Scope.get_instance()
     self.pluginManager = scope.get_plugin_manager()
     self.logger = scope.get_logger()
     self.db_service = scope.get_db_service()
     self.scheduler = scope.get_scheduler()
Пример #25
0
 def get_logger(self):
     try:
         return Scope.get_instance().get_logger()
     except Exception as e:
         self.scope.get_logger().error(
             'A problem occurred while getting logger. Error Message: {0}'.
             format(str(e)))
         return None
Пример #26
0
    def init_message_response_queue():
        """ docstring"""
        self.logger.debug('init_message_response_queue1')
        response_queue = queue.Queue()

        self.logger.debug('init_message_response_queue2')
        message_response_queue = MessageResponseQueue(response_queue)

        self.logger.debug('init_message_response_queue3')
        message_response_queue.setDaemon(True)

        self.logger.debug('init_message_response_queue4')
        message_response_queue.start()

        self.logger.debug('init_message_response_queue5')
        Scope.get_instance().set_response_queue(response_queue)
        return response_queue
Пример #27
0
    def __init__(self):
        super(Logger, self).__init__()
        scope = Scope.get_instance()
        config_manger = scope.get_configuration_manager()

        logging.config.fileConfig(
            config_manger.get('BASE', 'logConfigurationFilePath'))
        self.logger = logging.getLogger()
Пример #28
0
    def __init__(self):
        scope = Scope.get_instance()
        self.logger = scope.get_logger()
        self.configurationManager = scope.get_configuration_manager()
        self.db_path = self.configurationManager.get('BASE', 'dbPath')
        self.connection = None
        self.cursor = None

        self.lock = threading.Lock()
Пример #29
0
    def is_registered(self):
        try:
            registration = Scope.get_instance().get_registration()
            if registration.is_registered() is False:
                self.registration_failed()

        except Exception as e:
            self.registration_failed()
            self.logger.error('Registration failed. Error message: {0}'.format(str(e)))
Пример #30
0
    def __init__(self):
        scope = Scope.get_instance()
        self.logger = scope.get_logger()
        self.configurationManager = scope.get_configuration_manager()
        self.db_path = self.configurationManager.get('BASE', 'dbPath')
        self.connection = None
        self.cursor = None

        self.lock = threading.Lock()
Пример #31
0
    def __init__(self, name, in_ueue):
        threading.Thread.__init__(self)
        self.name = name
        self.in_queue = in_ueue

        scope = Scope.get_instance()
        self.logger = scope.get_logger()
        self.response_queue = scope.get_response_queue()
        self.messaging = scope.get_message_manager()
        self.db_service = scope.get_db_service()

        self.keep_run = True
        self.context = Context()
Пример #32
0
    def __init__(self, name, in_ueue):
        threading.Thread.__init__(self)
        self.name = name
        self.in_queue = in_ueue

        scope = Scope.get_instance()
        self.logger = scope.get_logger()
        self.response_queue = scope.get_response_queue()
        self.messaging = scope.get_message_manager()
        self.db_service = scope.get_db_service()

        self.keep_run = True
        self.context = Context()
Пример #33
0
 def unregister(self, msg):
     j = json.loads(msg)
     status = str(j['status']).lower()
     directory_server = str(j['directoryServer'])
     # user_name = self.db_service.select_one_result('session', 'username', " 1=1 order by id desc ")
     # display = self.db_service.select_one_result('session', 'display', " 1=1 order by id desc ")
     if 'not_authorized' == str(status):
         self.logger.info('UnRegistration is failed. User not authorized')
         if self.unregister_user_name is None:
             #user_name = os.getlogin()
             #display = Util.get_username_display()
             user_name = self.db_service.select_one_result(
                 'session', 'username', " 1=1 order by id desc ")
             display = self.db_service.select_one_result(
                 'session', 'display', " 1=1 order by id desc ")
             Util.show_message(
                 user_name, display,
                 'Ahenk Lider MYS sisteminden çıkarmak için yetkili kullanıcı haklarına sahip olmanız gerekmektedir.',
                 'Kullanıcı Yetkilendirme Hatası')
     else:
         if self.unregister_user_name is None:
             #user_name = os.getlogin()
             #display = Util.get_username_display()
             user_name = self.db_service.select_one_result(
                 'session', 'username', " 1=1 order by id desc ")
             display = self.db_service.select_one_result(
                 'session', 'display', " 1=1 order by id desc ")
             Util.show_message(
                 user_name, display,
                 "Ahenk Lider MYS sisteminden çıkarılmıştır.", "")
             if Util.show_message(
                     user_name, display,
                     "Değişikliklerin etkili olması için sistem yeniden başlatılacaktır. Lütfen bekleyiniz...",
                     ""):
                 registration = Scope.get_instance().get_registration()
                 registration.purge_and_unregister(directory_server)
         else:
             registration = Scope.get_instance().get_registration()
             registration.purge_and_unregister(directory_server)
Пример #34
0
    def execute(command,
                stdin=None,
                env=None,
                cwd=None,
                shell=True,
                result=True,
                as_user=None,
                ip=None):

        try:
            if ip:
                command = 'ssh root@{0} "{1}"'.format(ip, command)
                Scope.get_instance().get_logger().debug('Executing command: ' +
                                                        str(command))

            elif as_user:
                command = 'su - {0} -c "{1}"'.format(as_user, command)
                Scope.get_instance().get_logger().debug('Executing command: ' +
                                                        str(command))
            process = subprocess.Popen(command,
                                       stdin=stdin,
                                       env=env,
                                       cwd=cwd,
                                       stderr=subprocess.PIPE,
                                       stdout=subprocess.PIPE,
                                       shell=shell)

            if result is True:
                result_code = process.wait()
                p_out = process.stdout.read().decode("unicode_escape")
                p_err = process.stderr.read().decode("unicode_escape")

                return result_code, p_out, p_err
            else:
                return None, None, None
        except Exception as e:
            return 1, 'Could not execute command: {0}. Error Message: {1}'.format(
                command, str(e)), ''
Пример #35
0
    def disable_local_users(self):

        self.logger.info('Local users disable action start..')
        conf_manager = Scope.get_instance().get_configuration_manager()

        if conf_manager.has_section('MACHINE'):
            user_disabled = conf_manager.get("MACHINE", "user_disabled")
            self.logger.info('User disabled value=' + str(user_disabled))
            if user_disabled == '0':
                self.logger.info('local user disabling')
                Scope.get_instance().get_registration().disable_local_users()

                conf_manager.set('MACHINE', 'user_disabled', '1')

                with open('/etc/ahenk/ahenk.conf', 'w') as configfile:
                    self.logger.info('oepning config file ')
                    conf_manager.write(configfile)

                user_disabled = conf_manager.get("MACHINE", "user_disabled")
                self.logger.info('User succesfully disabled value=' +
                                 str(user_disabled))
            else:
                self.logger.info('users already disabled')
Пример #36
0
    def __init__(self):
        super(PluginManager, self).__init__()
        self.scope = Scope.get_instance()
        self.config_manager = self.scope.get_configuration_manager()
        self.db_service = self.scope.get_db_service()
        self.message_manager = self.scope.get_message_manager()
        self.logger = self.scope.get_logger()

        self.plugins = []
        self.plugin_queue_dict = dict()

        # self.listener = \
        self.install_listener()
        self.delayed_profiles = dict()
        self.delayed_tasks = dict()
Пример #37
0
    def __init__(self):
        super(PluginManager, self).__init__()
        self.scope = Scope.get_instance()
        self.config_manager = self.scope.get_configuration_manager()
        self.db_service = self.scope.get_db_service()
        self.message_manager = self.scope.get_message_manager()
        self.logger = self.scope.get_logger()

        self.plugins = []
        self.plugin_queue_dict = dict()

        # self.listener = \
        self.install_listener()
        self.delayed_profiles = dict()
        self.delayed_tasks = dict()
Пример #38
0
    def __init__(self, name, in_ueue):
        threading.Thread.__init__(self)
        self.name = name
        self.in_queue = in_ueue

        scope = Scope.get_instance()
        self.logger = scope.get_logger()
        self.response_queue = scope.get_response_queue()
        self.messaging = scope.get_message_manager()
        self.db_service = scope.get_db_service()

        self.configurationManager = scope.get_configuration_manager()
        self.is_user_notify_active = self.configurationManager.get('MACHINE', 'agreement')

        self.keep_run = True
        self.context = Context()
Пример #39
0
    def check_registration(self):
        """ docstring"""
        max_attempt_number = int(System.Hardware.Network.interface_size()) * 3
        # self.logger.debug()
        # logger = Scope.getInstance().getLogger()
        registration = Scope.get_instance().get_registration()

        try:
            while registration.is_registered() is False:
                max_attempt_number -= 1
                self.logger.debug('Ahenk is not registered. Attempting for registration')
                registration.registration_request()
                if max_attempt_number < 0:
                    self.logger.warning('Number of Attempting for registration is over')
                    self.registration_failed()
                    break
        except Exception as e:
            self.logger.error('Registration failed. Error message: {0}'.format(str(e)))
Пример #40
0
    def __init__(self):
        super(ExecutionManager, self).__init__()

        scope = Scope.get_instance()
        self.config_manager = scope.get_configuration_manager()
        self.event_manager = scope.get_event_manager()
        self.task_manager = scope.get_task_manager()
        self.messenger = scope.get_messenger()
        self.logger = scope.get_logger()
        self.db_service = scope.get_db_service()
        self.message_manager = scope.get_message_manager()
        self.plugin_manager = scope.get_plugin_manager()
        self.policy_executed = dict()

        self.event_manager.register_event(MessageType.EXECUTE_SCRIPT.value, self.execute_script)
        self.event_manager.register_event(MessageType.EXECUTE_TASK.value, self.execute_task)
        self.event_manager.register_event(MessageType.EXECUTE_POLICY.value, self.execute_policy)
        self.event_manager.register_event(MessageType.INSTALL_PLUGIN.value, self.install_plugin)
        self.event_manager.register_event(MessageType.RESPONSE_AGREEMENT.value, self.agreement_update)
        self.event_manager.register_event(MessageType.UPDATE_SCHEDULED_TASK.value, self.update_scheduled_task)
Пример #41
0
    def handle_task(self):
        try:
            dn = self.data['dn']
            directory_server = self.data['directory_server']
            registration = Scope.get_instance().get_registration()
            registration.purge_and_unregister(directory_server)

            self.context.create_response(
                code=self.message_code.TASK_PROCESSED.value,
                message='Ahenk başarı ile silindi.',
                data=json.dumps({'Dn': dn}),
                content_type=ContentType.APPLICATION_JSON.value)

        except Exception as e:
            self.logger.error(" error on handle deleting agent. Error: " +
                              str(e))
            self.context.create_response(
                code=self.message_code.TASK_ERROR.value,
                message='Ahenk silinirken hata olustu' + str(e),
                content_type=ContentType.APPLICATION_JSON.value)
Пример #42
0
    def __init__(self, task):
        scope = Scope.get_instance()

        self.logger = scope.get_logger()
        self.task_manager = scope.get_task_manager()
        self.plugin_manager = scope.get_plugin_manager()
        self.task = task
        cron_sj = self.parse_cron_str(task.get_cron_str())
        try:
            if cron_sj:
                self.mins = self.conv_to_set(cron_sj[0])
                self.hours = self.conv_to_set(cron_sj[1])
                self.days = self.conv_to_set(cron_sj[2])
                self.months = self.conv_to_set(cron_sj[3])
                self.dow = self.conv_to_set(cron_sj[4])
                self.action = self.process_task
            self.logger.debug('Instance created.')
        except Exception as e:
            self.logger.error(
                'A problem occurred while creating instance of ScheduleTaskJob. Error Message : {0}'
                .format(str(e)))
Пример #43
0
    def __init__(self, task):
        scope = Scope.get_instance()

        self.logger = scope.get_logger()
        self.task_manager = scope.get_task_manager()
        self.plugin_manager = scope.get_plugin_manager()
        self.task = task
        cron_sj = self.parse_cron_str(task.get_cron_str())
        try:
            if cron_sj:
                self.mins = self.conv_to_set(cron_sj[0])
                self.hours = self.conv_to_set(cron_sj[1])
                self.days = self.conv_to_set(cron_sj[2])
                self.months = self.conv_to_set(cron_sj[3])
                self.dow = self.conv_to_set(cron_sj[4])
                self.action = self.process_task
            self.logger.debug('Instance created.')
        except Exception as e:
            self.logger.error(
                'A problem occurred while creating instance of ScheduleTaskJob. Error Message : {0}'.format(
                    str(e)))
Пример #44
0
    def check_registration(self):
        """ docstring"""
        max_attempt_number = int(System.Hardware.Network.interface_size()) * 3
        # self.logger.debug()
        # logger = Scope.getInstance().getLogger()
        registration = Scope.get_instance().get_registration()

        try:
            while registration.is_registered() is False:
                max_attempt_number -= 1
                self.logger.debug(
                    'Ahenk is not registered. Attempting for registration')
                registration.registration_request()
                if max_attempt_number < 0:
                    self.logger.warning(
                        'Number of Attempting for registration is over')
                    self.registration_failed()
                    break
        except Exception as e:
            self.logger.error('Registration failed. Error message: {0}'.format(
                str(e)))
Пример #45
0
    def update_scheduled_task(self, arg):
        self.logger.debug('Working on scheduled task ...')
        update_scheduled_json = json.loads(arg)
        scheduler = Scope.get_instance().get_scheduler()

        if str(update_scheduled_json['cronExpression']).lower() == 'none' or update_scheduled_json[
            'cronExpression'] is None:
            self.logger.debug('Scheduled task will be removed')
            scheduler.remove_job(int(update_scheduled_json['taskId']))
            self.logger.debug('Task removed from scheduled database')
            self.db_service.update('task', ['deleted'], ['True'],
                                   'id={0}'.format(update_scheduled_json['taskId']))
            self.logger.debug('Task table updated.')
        else:
            self.logger.debug('Scheduled task cron expression will be updated.')
            self.db_service.update('task', ['cron_expr'], [str(update_scheduled_json['cronExpression'])],
                                   'id={0}'.format(update_scheduled_json['taskId']))
            self.logger.debug('Task table updated.')
            scheduler.remove_job(str(update_scheduled_json['taskId']))
            self.logger.debug('Previous scheduled task removed.')
            scheduler.add_job(ScheduleTaskJob(self.get_task_bean_by_id(update_scheduled_json['taskId'])))
            self.logger.debug('New scheduled task added')
Пример #46
0
 def __init__(self):
     scope = Scope.get_instance()
     self.logger = scope.get_logger()
     self.db_service = scope.get_db_service()
Пример #47
0
 def init_execution_manager():
     """ docstring"""
     execution_manager = ExecutionManager()
     Scope.get_instance().set_execution_manager(execution_manager)
     return execution_manager
Пример #48
0
 def __init__(self, task):
     super(TaskJob, self).__init__()
     scope = Scope.get_instance()
     self.task = task
     self.pluginManager = scope.get_plugin_manager()
Пример #49
0
 def init_event_manager():
     """ docstring"""
     event_manager = EventManager()
     Scope.get_instance().set_event_manager(event_manager)
     return event_manager
Пример #50
0
 def handle_task(profile_data, context):
     Scope.get_instance().get_logger().error('Handle function not found')
Пример #51
0
 def __init__(self):
     super(AbstractPlugin, self).__init__()
     self.scope = Scope.get_instance()
Пример #52
0
 def init_config_manager(config_file_path, configfile_folder_path):
     """ docstring"""
     config_manager = ConfigManager(config_file_path, configfile_folder_path)
     config = config_manager.read()
     Scope.get_instance().set_configuration_manager(config)
     return config
Пример #53
0
 def init_logger():
     """ docstring"""
     logger = Logger()
     logger.info('Log was set')
     Scope.get_instance().set_logger(logger)
     return logger
Пример #54
0
 def init_messaging():
     """ docstring"""
     message_manager = Messaging()
     Scope.get_instance().set_message_manager(message_manager)
     return message_manager
Пример #55
0
 def reload_plugins():
     """ docstring"""
     Scope.get_instance().get_plugin_manager().reloadPlugins()
Пример #56
0
 def init_messenger():
     """ docstring"""
     messenger_ = Messenger()
     messenger_.connect_to_server()
     Scope.get_instance().set_messenger(messenger_)
     return messenger_
Пример #57
0
 def init_registration():
     """ docstring"""
     registration = Registration()
     Scope.get_instance().set_registration(registration)
     return registration
Пример #58
0
 def init_task_manager():
     """ docstring"""
     task_manager = TaskManager()
     Scope.get_instance().set_task_manager(task_manager)
     return task_manager
 def __init__(self, outQueue):
     super(MessageResponseQueue, self).__init__()
     scope = Scope.get_instance()
     self.logger = scope.get_logger()
     self.messageManager = scope.get_messenger()
     self.outQueue = outQueue
Пример #60
0
 def __init__(self):
     self.events = []
     self.keep_run = True
     self.logger = Scope.get_instance().get_logger()
     self.scheduledb = ScheduleTaskDB()