Ahenk/opt/ahenk/base/task/TaskManager.py

68 lines
2.4 KiB
Python
Raw Normal View History

2016-02-29 17:13:39 +02:00
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Author: İsmail BAŞARAN <ismail.basaran@tubitak.gov.tr> <basaran.ismaill@gmail.com>
2016-05-06 17:30:39 +03:00
from base.model.MessageFactory import MessageFactory
2016-05-06 16:44:21 +03:00
from base.Scope import Scope
2016-05-06 16:44:21 +03:00
from base.model.enum.MessageType import MessageType
2016-02-29 17:13:39 +02:00
2016-03-21 12:02:15 +02:00
2016-02-29 17:13:39 +02:00
class TaskManager(object):
"""docstring for TaskManager"""
2016-03-21 12:02:15 +02:00
2016-02-29 17:13:39 +02:00
def __init__(self):
# super(TaskManager, self).__init__()
scope = Scope.getInstance()
self.pluginManager = scope.getPluginManager()
2016-03-21 12:02:15 +02:00
self.logger = scope.getLogger()
self.db_service = scope.getDbService()
self.scheduler = scope.get_scheduler()
2016-03-21 12:02:15 +02:00
def addTask(self, task):
try:
if task.get_cron_str() == None or task.get_cron_str() == '':
self.logger.debug('Adding task ... ')
#self.saveTask(task)
self.logger.info('Task saved ')
# TODO send task received message
self.pluginManager.processTask(task)
else:
self.scheduler.save_and_add_job(task)
2016-03-30 17:34:10 +03:00
except Exception as e:
# TODO error log here
2016-03-23 10:04:31 +02:00
self.logger.debug('Exception occured when adding task ' + str(e))
2016-03-02 15:45:36 +02:00
pass
2016-03-30 17:34:10 +03:00
def addPolicy(self, policy):
2016-03-29 11:52:18 +03:00
try:
self.pluginManager.processPolicy(policy)
except Exception as e:
self.logger.error("Exception occured when adding policy ")
pass
2016-03-21 12:02:15 +02:00
def saveTask(self, task):
2016-05-06 16:44:21 +03:00
cols = ['id', 'create_date', 'modify_date', 'command_cls_id', 'parameter_map', 'deleted', 'plugin']
values = [str(task.get_id()), str(task.get_create_date()), str(task.get_modify_date()), str(task.get_command_cls_id()), str(task.get_parameter_map()), str(task.get_deleted()), task.plugin.to_string()]
self.db_service.update('task', cols, values, None)
self.logger.debug('[TaskManager] Task has been saved to database (Task id:' + task.id + ')')
2016-03-21 12:02:15 +02:00
def updateTask(self, task):
# TODO not implemented yet
# This is updates task status processing - processed ...
pass
2016-03-21 12:02:15 +02:00
def deleteTask(self, task):
# TODO not implemented yet
# remove task if it is processed
pass
2016-03-14 10:55:28 +02:00
2016-03-21 12:02:15 +02:00
def sendMessage(self, type, message):
2016-03-14 10:55:28 +02:00
# TODO not implemented yet
pass
if __name__ == '__main__':
2016-03-21 12:02:15 +02:00
print(MessageFactory.createMessage(MessageType.TASK_PROCESSING, "my message"))