60 lines
No EOL
1.6 KiB
Python
60 lines
No EOL
1.6 KiB
Python
'''
|
|
Created on Jun 15, 2013
|
|
|
|
@author: Rafael Timmerberg
|
|
'''
|
|
|
|
class Task:
|
|
'''
|
|
Base class for all built-in Tasks.
|
|
'''
|
|
|
|
def set_task_type(self, taskType):
|
|
'''
|
|
sets the type of this task.
|
|
|
|
Be aware! this method can only get called once!
|
|
|
|
params:
|
|
taskType: the type of this task
|
|
'''
|
|
if hasattr(self, "_taskType"):
|
|
raise Exception("taskType is only allowed to set once!")
|
|
self.taskType = taskType
|
|
|
|
def get_task_type(self):
|
|
'''
|
|
returns the type set by set_type_task
|
|
'''
|
|
return self._taskType
|
|
|
|
def execute_task(self, msg):
|
|
'''
|
|
this is the method tasks usually override.
|
|
It gets called anytime the task should get executed
|
|
|
|
default does nothing
|
|
|
|
params:
|
|
msg: the msg for this task
|
|
'''
|
|
pass
|
|
|
|
def _execute(self,taskType, msg):
|
|
'''
|
|
internal method which gets called for any member in a hostgroup.
|
|
It determines if it has an appropriate type by comparing taskType with get_task_type().
|
|
Calls execute_task() if the type matches
|
|
|
|
params:
|
|
taskType: the type of the fail which is compared with get_task_type()
|
|
msg: the error message
|
|
|
|
return:
|
|
True if execute_task() is called succesfully, else False
|
|
'''
|
|
if self.get_task_type() == taskType:
|
|
self.execute_task(msg)
|
|
return True
|
|
return False
|
|
|