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
def __init__(self, parameter_map): scope = Scope().get_instance() self.logger = scope.get_logger() self.configuration_manager = scope.get_configuration_manager() logging.getLogger("paramiko").setLevel(logging.INFO) try: self.target_hostname = parameter_map['host'] self.target_port = parameter_map['port'] self.target_username = parameter_map['username'] self.target_path = parameter_map['path'] self.target_password = None self.p_key = None if Util.has_attr_json(parameter_map, 'password'): self.target_password = parameter_map['password'] else: self.p_key = parameter_map['pkey'] except Exception as e: self.logger.error( 'A problem occurred while parsing ssh connection parameters. Error Message: {0}' .format(str(e))) self.connection = None self.logger.debug('Parameters set up')
def process_task(self, task): ## scope = Scope().get_instance() self.messenger = scope.get_messenger() ## try: plugin_name = task.get_plugin().get_name().lower() plugin_ver = task.get_plugin().get_version() if self.does_plugin_exist( plugin_name, plugin_ver) and plugin_name in self.plugin_queue_dict: self.plugin_queue_dict[plugin_name].put(task, 1) else: self.logger.warning( '{0} plugin not found. Task was delayed. Ahenk will request plugin from Lider if distribution available' .format(plugin_name, plugin_ver)) self.delayed_tasks[plugin_name] = task msg = self.message_manager.missing_plugin_message( PluginBean(name=plugin_name, version=plugin_ver)) self.messenger.send_direct_message(msg) except Exception as e: self.logger.error( 'Exception occurred while processing task. Error Message: {0}'. format(str(e)))
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
def __init__(self, message): # global scope of ahenk scope = Scope().get_instance() self.logger = scope.get_logger() self.configuration_manager = scope.get_configuration_manager() self.registration = scope.get_registration() self.event_manager = scope.get_event_manager() self.host = str(socket.gethostbyname(self.configuration_manager.get('CONNECTION', 'host'))) self.service = str(self.configuration_manager.get('CONNECTION', 'servicename')) self.port = str(self.configuration_manager.get('CONNECTION', 'port')) ClientXMPP.__init__(self, self.service, None) self.message = message self.receiver_resource = self.configuration_manager.get('CONNECTION', 'receiverresource') self.receiver = self.configuration_manager.get('CONNECTION', 'receiverjid') + '@' + self.configuration_manager.get( 'CONNECTION', 'servicename') if self.receiver_resource: self.receiver += '/' + self.receiver_resource if self.configuration_manager.get('CONNECTION', 'use_tls').strip().lower() == 'true': self.use_tls = True else: self.use_tls = False self.logger.debug('XMPP Receiver parameters were set') self.add_listeners() self.register_extensions()
def init_logger(): """ docstring""" print('init logger...') logger = Logger() logger.info('Log was set') Scope.get_instance().set_logger(logger) return logger
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
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
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)), ''
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
def __init__(self): scope = Scope().get_instance() self.logger = scope.get_logger() self.message_manager = scope.get_message_manager() self.messenger = scope.get_messenger() self.db_service = scope.get_db_service() self.ask_path = '/opt/ahenk/base/agreement/ask.py' self.logger.debug('Instance initialized.')
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
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
def execute_script(self, arg): try: self.logger.debug('Executing script...') messenger = Scope().get_instance().get_messenger() json_data = json.loads(arg) result_code, p_out, p_err = Util.execute(str(json_data['command'])) self.logger.debug('Executed script') data = dict() data['type'] = 'SCRIPT_RESULT' data['timestamp'] = str(Util.timestamp()) if result_code == 0: self.logger.debug('Command execution was finished successfully') try: temp_name = str(Util.generate_uuid()) temp_full_path = System.Ahenk.received_dir_path() + temp_name self.logger.debug('Writing result to file') Util.write_file(temp_full_path, str(p_out)) md5 = Util.get_md5_file(temp_full_path) Util.rename_file(temp_full_path, System.Ahenk.received_dir_path() + md5) file_manager = FileTransferManager(json_data['fileServerConf']['protocol'], json_data['fileServerConf']['parameterMap']) file_manager.transporter.connect() self.logger.debug('File transfer connection was created') success = file_manager.transporter.send_file(System.Ahenk.received_dir_path() + md5, md5) self.logger.debug('File was transferred') file_manager.transporter.disconnect() self.logger.debug('File transfer connection was closed') if success is False: self.logger.error('A problem occurred while file transferring') data['resultCode'] = '-1' data[ 'errorMessage'] = 'Command executed successfully but a problem occurred while sending result file' else: data['md5'] = md5 except Exception as e: self.logger.error( 'A problem occurred while file transferring. Error Message :{0}'.format( str(e))) raise else: self.logger.error( 'Command execution was failed. Error Message :{0}'.format(str(result_code))) data['resultCode'] = str(result_code) data['errorMessage'] = str(p_err) messenger.send_direct_message(json.dumps(data)) except Exception as e: self.logger.error( 'A problem occurred while running execute script action. Error Message :{0}'.format( str(e)))
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
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() self.conf_manager = scope.get_configuration_manager() self.hostname_file = '/etc/hostname' self.hosts_file = '/etc/hosts'
def __init__(self, parameter_map): scope = Scope().get_instance() self.logger = scope.get_logger() self.configuration_manager = scope.get_configuration_manager() try: self.url = parameter_map['url'] except Exception as e: self.logger.error( 'A problem occurred while parsing parameter map. Error Message: {0}'.format(str(e)))
def run(self): """ docstring""" print('Ahenk running...') global_scope = Scope() global_scope.set_instance(global_scope) config_file_folder_path = 'C:\\Users\\hasan\\ahenk\\' # configuration manager must be first load self.init_config_manager(System.Ahenk.config_path(), config_file_folder_path) # Logger must be second self.logger = self.init_logger() self.logger.info('Pid file was created') print("logger is set") # print("dsadasişşğşüğşşüğşğşüğ") self.logger.info('şiğüğüğüşğüşüğşüğşüğşüğşüğşüğ'.encode().decode('utf-8')) self.init_event_manager() self.logger.info('Event Manager was set') self.init_ahenk_db() self.logger.info('DataBase Service was set') self.init_messaging() self.logger.info('Message Manager was set') self.init_plugin_manager() self.logger.info('Plugin Manager was set') self.init_scheduler() self.logger.info('Scheduler was set') self.init_task_manager() self.logger.info('Task Manager was set') self.init_registration() self.logger.info('Registration was set') self.init_execution_manager() self.logger.info('Execution Manager was set') self.check_registration() self.messenger = self.init_messenger() self.logger.info('Messenger was set') self.init_signal_listener() self.logger.info('Signals listeners was set') self.init_message_response_queue() while True: time.sleep(1)
def __init__(self, parameter_map): scope = Scope().get_instance() self.logger = scope.get_logger() self.configuration_manager = scope.get_configuration_manager() try: self.url = parameter_map['url'] except Exception as e: self.logger.error( 'A problem occurred while parsing parameter map. Error Message: {0}' .format(str(e)))
def __init__(self): scope = Scope().get_instance() self.logger = scope.get_logger() self.plugin_manager = scope.get_plugin_manager() self.message_manager = scope.get_message_manager() self.messenger = scope.get_messenger() self.conf_manager = scope.get_configuration_manager() self.db_service = scope.get_db_service() self.execute_manager = scope.get_execution_manager()
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')
def __init__(self): scope = Scope().get_instance() self.logger = scope.get_logger() self.message_manager = scope.get_message_manager() self.event_manager = scope.get_event_manager() self.messenger = scope.get_messenger() self.conf_manager = scope.get_configuration_manager() self.db_service = scope.get_db_service() self.util = Util() self.servicename = 'im.liderahenk.org' self.local_user_disable = None #self.event_manager.register_event('REGISTRATION_RESPONSE', self.registration_process) self.event_manager.register_event('REGISTRATION_SUCCESS', self.registration_success) self.event_manager.register_event('REGISTRATION_ERROR', self.registration_error) self.ldap_login_cancel = ExecuteCancelSSSDAuthentication() self.ad_login_cancel = ExecuteCancelSSSDAdAuthentication() self.ldap_login = ExecuteSSSDAuthentication() self.ad_login = ExecuteSSSDAdAuthentication() self.directory_server = None if self.is_registered(): self.logger.debug('Ahenk already registered') else: self.register(True)
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()
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
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')
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()
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)
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)))
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()
def __init__(self): scope = Scope().get_instance() self.logger = scope.get_logger() self.configuration_manager = scope.get_configuration_manager() try: self.smtp_host = self.configuration_manager.get('MAIL', 'smtp_host') self.smtp_port = int(self.configuration_manager.get('MAIL', 'smtp_port')) self.from_username = self.configuration_manager.get('MAIL', 'from_username') self.from_password = self.configuration_manager.get('MAIL', 'from_password') self.to_address = self.configuration_manager.get('MAIL', 'to_address') except Exception as e: self.logger.error( 'A problem occurred while reading mail server parameters from conf file. Error Message: {0}'.format( e)) self.server = None self.logger.debug('Mail service initialized.')
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
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()
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
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()
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)))
def __init__(self): scope = Scope().get_instance() self.logger = scope.get_logger() self.configuration_manager = scope.get_configuration_manager() self.event_manager = scope.get_event_manager() self.user_name = str( self.configuration_manager.get('CONNECTION', 'ActiveMQ_username')) self.password = str( self.configuration_manager.get('CONNECTION', 'ActiveMQ_password')) self.queue_name_to_read_from = 'q4_' + str( self.configuration_manager.get('CONNECTION', 'uid')) + '_2read' self.queue_name_to_write_to = 'q4_server_2read' self.host_and_port_info = [ (str( self.configuration_manager.get('CONNECTION', 'ActiveMQ_server')), str(self.configuration_manager.get('CONNECTION', 'ActiveMQ_port'))) ]
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()
def process_task(self, task): ## scope = Scope().get_instance() self.messenger = scope.get_messenger() ## try: plugin_name = task.get_plugin().get_name().lower() plugin_ver = task.get_plugin().get_version() if self.does_plugin_exist(plugin_name, plugin_ver) and plugin_name in self.plugin_queue_dict: self.plugin_queue_dict[plugin_name].put(task, 1) else: self.logger.warning( '{0} plugin not found. Task was delayed. Ahenk will request plugin from Lider if distribution available'.format( plugin_name, plugin_ver)) self.delayed_tasks[plugin_name] = task msg = self.message_manager.missing_plugin_message(PluginBean(name=plugin_name, version=plugin_ver)) self.messenger.send_direct_message(msg) except Exception as e: self.logger.error( 'Exception occurred while processing task. Error Message: {0}'.format(str(e)))
def __init__(self): scope = Scope().get_instance() self.logger = scope.get_logger() self.configuration_manager = scope.get_configuration_manager() self.event_manger = scope.get_event_manager() self.execution_manager = scope.get_execution_manager() self.my_jid = str( self.configuration_manager.get('CONNECTION', 'uid') + '@' + self.configuration_manager.get('CONNECTION', 'servicename')) self.my_pass = str(self.configuration_manager.get('CONNECTION', 'password')) ClientXMPP.__init__(self, self.my_jid, self.my_pass) self.auto_authorize = True self.auto_subscribe = True self.hostname = str(socket.gethostbyname(self.configuration_manager.get('CONNECTION', 'host'))) self.receiver_resource = self.configuration_manager.get('CONNECTION', 'receiverresource') if self.configuration_manager.get('CONNECTION', 'use_tls').strip().lower() == 'true': self.use_tls = True else: self.use_tls = False self.receiver = self.configuration_manager.get('CONNECTION', 'receiverjid') + '@' + self.configuration_manager.get( 'CONNECTION', 'servicename') if self.receiver_resource: self.receiver += '/' + self.receiver_resource self.logger.debug('XMPP Messager parameters were set') self.register_extensions() self.add_listeners()
def __init__(self, parameter_map): scope = Scope().get_instance() self.logger = scope.get_logger() self.configuration_manager = scope.get_configuration_manager() logging.getLogger("paramiko").setLevel(logging.INFO) try: self.target_hostname = parameter_map['host'] self.target_port = parameter_map['port'] self.target_username = parameter_map['username'] self.target_path = parameter_map['path'] self.target_password = None self.p_key = None if Util.has_attr_json(parameter_map, 'password'): self.target_password = parameter_map['password'] else: self.p_key = parameter_map['pkey'] except Exception as e: self.logger.error( 'A problem occurred while parsing ssh connection parameters. Error Message: {0}'.format(str(e))) self.connection = None self.logger.debug('Parameters set up')
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()
def __init__(self): scope = Scope().get_instance() self.logger = scope.get_logger() self.message_manager = scope.get_message_manager() self.event_manager = scope.get_event_manager() self.messenger = scope.get_messenger() self.conf_manager = scope.get_configuration_manager() self.db_service = scope.get_db_service() self.event_manager.register_event('REGISTRATION_RESPONSE', self.registration_process) if self.is_registered(): self.logger.debug('Ahenk already registered') else: self.register(True)
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)))
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)
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)))
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')
def init_messaging(): """ docstring""" message_manager = Messaging() Scope.get_instance().set_message_manager(message_manager) return message_manager
def __init__(self, protocol, parameter_map): scope = Scope().get_instance() self.logger = scope.get_logger() self.configuration_manager = scope.get_configuration_manager() self.transporter = self.get_instance(protocol, parameter_map)
def __init__(self): scope = Scope().get_instance() self.logger = scope.get_logger() self.conf_manager = scope.get_configuration_manager() self.db_service = scope.get_db_service() self.event_manger = scope.get_event_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
def __init__(self): self.events = [] self.keep_run = True self.logger = Scope.get_instance().get_logger() self.scheduledb = ScheduleTaskDB()