HCE Project Python language Distributed Tasks Manager Application, Distributed Crawler Application and client API bindings.  2.0.0-chaika
Hierarchical Cluster Engine Python language binding
EventObjects.py
Go to the documentation of this file.
1 # coding: utf-8
2 '''
3 HCE project, Python bindings, Distributed Tasks Manager application.
4 Event objects definitions.
5 
6 @package: dtm
7 @author bgv bgv.hce@gmail.com
8 @link: http://hierarchical-cluster-engine.com/
9 @copyright: Copyright © 2013-2014 IOIX Ukraine
10 @license: http://hierarchical-cluster-engine.com/license/
11 @since: 0.1
12 '''
13 
14 
15 import ctypes
16 from app.Utils import JsonSerializable
17 from app.Utils import getHash
18 from datetime import datetime
19 import json
20 import zlib
21 import time
22 import logging
23 import dtm.Constants as DTM_CONSTS
24 import app.SQLCriterions
25 
26 from transport.IDGenerator import IDGenerator
27 
28 logger = logging.getLogger(DTM_CONSTS.LOGGER_NAME)
29 
30 
34 class Task(object):
35 
36  FILE_ACTION_CREATE_BEFORE = 1
37  FILE_ACTION_DELETE_BEFORE = 2
38  FILE_ACTION_READ_AFTER = 4
39  FILE_ACTION_DELETE_AFTER = 8
40  FILE_ACTION_BASE64_ENCODED = 2147483648
41 
42  STRATEGY_DATE = "DATE"
43  STRATEGY_DATE_MAX = "DATE_MAX"
44  STRATEGY_DATE_SHIFT = "DATE_SHIFT"
45  STRATEGY_CPU = "CPU"
46  STRATEGY_RAM_FREE = "RAM_FREE"
47  STRATEGY_RAM = "RAM"
48  STRATEGY_DISK_FREE = "DISK_FREE"
49  STRATEGY_DISK = "DISK"
50  STRATEGY_TIME = "TIME"
51  STRATEGY_THREADS = "THREADS"
52  STRATEGY_SDELAY = "SDELAY"
53  STRATEGY_RDELAY = "RDELAY"
54  STRATEGY_RETRY = "RETRY"
55  STRATEGY_PRIORITY = "PRIORITY"
56  STRATEGY_CPU_LOAD_MAX = "CPU_LOAD_MAX"
57  STRATEGY_IO_WAIT_MAX = "IO_WAIT_MAX"
58  STRATEGY_autoCleanupFields = "autoCleanupFields"
59 
60  STRATEGY_AUTOCLEANUP_TTL = "TTL"
61  STRATEGY_AUTOCLEANUP_DELETE_TYPE = "DeleteType"
62  STRATEGY_AUTOCLEANUP_DELETE_RETRIES = "DeleteRetries"
63  STRATEGY_AUTOCLEANUP_SSTATE = "State"
64 
65  TASK_MODE_SYNCH = 1
66  TASK_MODE_ASYNCH = 2
67 
68  TIME_MAX_DEFAULT = 60000
69 
70  TASK_TYPE_SHELL = 0
71  TASK_TYPE_SSH = 1
72 
73  TYPE_DEFAULT = 0
74 
75 
78  def __init__(self):
79 
81  self.id = None
82 
84  self.command = None
85 
87  self.input = None
88 
90  self.files = []
91 
93  self.session = {}
94 
96  self.strategy = {}
97 
99  self.limits = {}
100 
103 
105  self.type = self.TYPE_DEFAULT
106 
108  self.name = ""
109 
110 
111 
116  def setSessionVar(self, sessionVarName, sessionVarValue):
117  self.session[sessionVarName] = sessionVarValue
118 
119 
120 
125  def setStrategyVar(self, strategyVarName, strategyVarValue):
126  self.strategy[strategyVarName] = strategyVarValue
127 
128 
129 
133  def setFile(self, fileItem):
134  self.files.append(fileItem)
135 
136 
137 
142  def setLimitsVar(self, limitsVarName, limitsVarValue):
143  self.limits[limitsVarName] = limitsVarValue
144 
145 
146 
147 
151 class NewTask(Task):
152 
153 
158  def __init__(self, taskCommandLine, taskId=None, name=None):
159  super(NewTask, self).__init__()
160 
162  if taskId is None:
163  idGenerator = IDGenerator()
164  #self.id = ctypes.c_ulong(zlib.crc32(idGenerator.get_connection_uid())).value
165  #self.id = ctypes.c_uint32(zlib.crc32(idGenerator.get_connection_uid(), int(time.time()))).value
166  self.id = getHash(idGenerator.get_connection_uid())
167  else:
168  self.id = taskId
169  if name is not None:
170  self.name = name
171 
173  self.command = taskCommandLine
174 
176  self.input = ""
177  #Strategy priority init
178  self.setStrategyVar(self.STRATEGY_PRIORITY, 1)
179  #Session init
180  self.setSessionVar("time_max", self.TIME_MAX_DEFAULT)
181  self.setSessionVar("tmode", self.TASK_MODE_SYNCH)
182  self.setSessionVar("type", self.TASK_TYPE_SHELL)
183  self.setSessionVar("home_directory", "")
184  self.setSessionVar("port", 0)
185  self.setSessionVar("user", "")
186  self.setSessionVar("password", "")
187  self.setSessionVar("shell", "")
188  self.setSessionVar("environment", {})
189  self.setSessionVar("timeout", 0)
190 
191 
192  def toJSON(self):
193  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
194 
195 
196 
197 
201 
202 
206  def __init__(self, taskId):
207  super(UpdateTask, self).__init__()
208 
210  self.id = taskId
211 
212 
213 
214 
217 class UpdateTaskFields(object):
218 
219 
223  def __init__(self, taskId):
224 
226  self.id = taskId
227 
229  self.fields = {}
230 
231 
232 
233 
236 class GetTaskManagerFields(object):
237 
238 
242  def __init__(self, taskId):
243 
245  self.id = taskId
246 
247 
248 
249 
252 class TaskManagerFields(object):
253 
254 
258  def __init__(self, taskId):
259 
261  self.id = taskId
262 
264  self.fields = {}
265 
266 
267  def toJSON(self):
268  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
269 
270 
271 
272 
275 class TasksStatus(object):
276 
277 
278  def __init__(self):
280 
281 
282  def toJSON(self):
283  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
284 
285 
286 
287 
290 class GetTasksStatus(object):
291 
292  LOG_STRATEGY = "CHECK_LOG"
293  CHECK_LOG_YES = 1
294 
295  FILTER_CDATE_FROM = "CDATE_FROM"
296  FILTER_CDATE_TO = "CDATE_TO"
297  FILTER_SDATE_FROM = "SDATE_FROM"
298  FILTER_SDATE_TO = "SDATE_TO"
299  FILTER_RDATE_FROM = "RDATE_FROM"
300  FILTER_RDATE_TO = "RDATE_TO"
301  FILTER_FDATE_FROM = "FDATE_FROM"
302  FILTER_FDATE_TO = "FDATE_TO"
303  FILTER_INPROGRESS_TIME_FROM = "INPROGRESS_TIME_FROM"
304  FILTER_INPROGRESS_TIME_TO = "INPROGRESS_TIME_TO"
305  FILTER_INPROGRESS_TIME_MAX_FROM = "INPROGRESS_TIME_MAX_FROM"
306  FILTER_INPROGRESS_TIME_MAX_TO = "INPROGRESS_TIME_MAX_TO"
307  FILTER_INPROGRESS = "INPROGRESS"
308  FILTER_SCHEDULED = "SCHEDULED"
309  FILTER_RUNNING = "RUNNING"
310  FILTER_FINISHED = "FINISHED"
311  FILTER_TERMINATED = "TERMINATED"
312  FILTER_CRASHED = "CRASHED"
313  FILTER_RRAM_FROM = "RRAM_FROM"
314  FILTER_RRAM_TO = "RRAM_TO"
315  FILTER_VRAM_FROM = "VRAM_FROM"
316  FILTER_VRAM_TO = "VRAM_TO"
317  FILTER_CPU_FROM = "CPU_FROM"
318  FILTER_CPU_TO = "CPU_TO"
319 
320 
324  def __init__(self, idsList):
325 
328  self.ids = idsList
329 
331  self.filters = {}
332 
334  self.strategy = {}
335 
336 
337 
342  def setFilterVar(self, filterVarName, filterVarValue):
343  self.filters[filterVarName] = filterVarValue
344 
345 
346 
351  def setStrategyVar(self, strategyVarName, strategyVarValue):
352  self.strategy[strategyVarName] = strategyVarValue
353 
354 
355 
356 
359 class CheckTaskState(object):
360 
361  TYPE_SIMPLE = 1
362  TYPE_FULL = 2
363 
364 
369  def __init__(self, taskId, checkType=TYPE_SIMPLE):
370 
372  self.id = taskId
373 
375  self.type = checkType
376 
377  def toJSON(self):
378  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
379 
380 
381 
382 
386 class FetchTasksResults(object):
387 
388  TYPE_DELETE = 1
389  TYPE_SAVE = 2
390 
391 
395  def __init__(self, taskId, fetchType=TYPE_DELETE):
396 
398  self.id = taskId
399 
401  self.type = fetchType
402 
403  def toJSON(self):
404  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
405 
406 
407 
408 
413 
414 
418  def __init__(self, taskId):
419 
421  self.ids = taskId
422 
423 
424 
425 
430 
431  GROUP_DELETE = -1
432 
433  RESPONSE_CODE_DBI_ERROR = 1
434  RESPONSE_CODE_UNKNOWN_ERROR = 2
435  RESPONSE_CODE_DRCE_ERROR = 3
436 
437  TERMINATE_ALG_DEFAULT = 1
438  TERMINATE_ALG_CUSTOM = 2
439 
440  TERMINATE_DELAY_DEFAULT = 1000
441  TERMINATE_REPEAT_DEFAULT = 3
442 
443  TERMINATE_SIGTERM = 15
444  TERMINATE_SIGKILL = 9
445 
446  ACTION_DELETE_TASK_DATA = 0
447  ACTION_TERMINATE_TASK_AND_DELETE_DATA = 1
448  ACTION_TERMINATE_TASK_ONLY = 2
449  ACTION_DELETE_ON_DTM = 3
450 
451  DEFAULT_TASK_NAME = "DELETE"
452 
453 
457  def __init__(self, deleteTaskId, taskId=None):
458  super(DeleteTask, self).__init__()
459 
461  if taskId is None:
462  idGenerator = IDGenerator()
463  self.id = ctypes.c_uint32(zlib.crc32(idGenerator.get_connection_uid(), int(time.time()))).value
464  else:
465  self.id = taskId
466  #Strategy priority init
467  self.setStrategyVar(self.STRATEGY_PRIORITY, 1)
468  #The task Id to delete, used for EE request TERMINATE task
469  self.deleteTaskId = deleteTaskId
470 
473 
476 
479 
482 
484  self.host = ""
485 
487  self.port = 0
488  # Action that will be performed on EEManager, default only delete task's data on EE and delete task on DTM
489  # - this is possible only for tasks in proper state (that is not in active states)
491 
493  self.strategy = {}
494  #TODO: possible find the way to define decorator
495  #@property
496  #def id(self):
497  # return self.id
498 
499  #@id.setter
500  #def id(self, value):
501  # self.deleteTaskId = value
503 
504  def toJSON(self):
505  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
506 
507 
508 
509 
512 class ExecuteTask(object):
513 
514 
518  def __init__(self, taskId):
519 
521  self.id = taskId
522 
523 
524 
525 
528 class GetScheduledTasks(object):
529 
530 
534  def __init__(self, timeSlotSize):
535 
537  self.timeSlot = timeSlotSize
538 
539 
540 
541 
545 
546 
550  def __init__(self, idsList):
551 
553  self.ids = idsList
554 
555 
556 
557 
561 class GeneralResponse(object):
562 
563  #General valid response value
564  ERROR_OK = 0
565 
566 
570  def __init__(self, errorCode=ERROR_OK, errorMessage=""):
571 
573  self.errorCode = errorCode
574 
576  self.errorMessage = errorMessage
577 
579  self.statuses = []
580 
581  def toJSON(self):
582  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
583 
584 
585 
586 
589 class DeleteTaskData(object):
590 
591 
595  def __init__(self, taskId):
596 
598  self.id = taskId
599 
600 
601 
602 
605 class FetchEEResponseData(object):
606 
607 
611  def __init__(self, taskId):
612 
614  self.id = taskId
615 
616 
617 
618 
621 class DeleteEEResponseData(object):
622 
623 
627  def __init__(self, taskId):
628 
630  self.id = taskId
631 
632 
633 
634 
637 class FetchTaskData(object):
638 
639 
643  def __init__(self, taskId):
644 
646  self.id = taskId
647 
648 
649 
650 
653 class EEResponseData(object):
654 
655  #Error codes
656  ERROR_CODE_TIMEOUT = -1
657  ERROR_CODE_OK = 0
658  #ERROR_CODE_TASK_NOT_FOUND = -2
659  ERROR_CODE_TASK_NOT_FOUND = 3
660  ERROR_CODE_BAD_ID = 14
661 
662  #Error messages
663  ERROR_MESSAGE_OK = ""
664  ERROR_MESSAGE_TIMEOUT = "Request timeout reached!"
665  ERROR_MESSAGE_TASK_NOT_FOUND = "Task not found in queue!"
666  #Requests types
667  REQUEST_TYPE_SET = 0
668  REQUEST_TYPE_CHECK = 1
669  REQUEST_TYPE_DELETE = 2
670  REQUEST_TYPE_GET = 3
671  #Task states
672  TASK_STATE_FINISHED = 0
673  TASK_STATE_IN_PROGRESS = 1
674  TASK_STATE_NEW = 2
675  TASK_STATE_NOT_FOUND = 3
676  TASK_STATE_TERMINATED = 4
677  TASK_STATE_CRASHED = 5
678  TASK_STATE_SET_ERROR = 6
679  TASK_STATE_UNDEFINED = 7
680  TASK_STATE_TERMINATED_BY_DRCE_TTL = 11
681  TASK_STATE_SCHEDULED_TO_DELETE = 100
682  TASK_STATE_DELETED = 101
683  TASK_STATE_NEW_DATA_STORED = 102
684  TASK_STATE_NEW_SCHEDULED = 103
685  TASK_STATE_CLEANED = 104
686  TASK_STATE_NEW_JUST_CREATED = 105
687  TASK_STATE_SCHEDULE_TRIES_EXCEEDED = 106
688  TASK_STATE_RUN_TRIES_EXCEEDED = 107
689 
690 
694  def __init__(self, taskId):
695 
697  self.id = taskId
698 
700  self.type = self.REQUEST_TYPE_SET
701 
704 
707 
709  self.requestTime = 0
710 
713 
715  self.pId = 0
716 
718  self.stdout = ""
719 
721  self.stderr = ""
722 
724  self.exitStatus = 0
725 
727  self.taskTime = 0
728 
730  self.nodeName = ""
731 
733  self.nodeHost = ""
734 
736  self.nodePort = 0
737 
739  self.files = []
740 
742  self.fields = {}
743 
744  def toJSON(self):
745  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
746 
747 
748 
752  def setFile(self, fileItem):
753  self.files.append(fileItem)
754 
755 
756 
757 
760 class ScheduledTask(object):
761 
762  STATE_PLANNED = 1
763  STATE_INPROGRESS = 2
764  STATE_CLOSED = 3
765 
766 
770  def __init__(self, taskId, rTime, rTimeMax, state, priority):
771 
773  self.id = taskId
774 
776  self.rTime = rTime
777 
779  self.rTimeMax = rTimeMax
780 
782  self.state = state
783 
785  self.priority = priority
786 
787 
788 
789 
792 class UpdateScheduledTasks(object):
793 
794 
798  def __init__(self, scheduledTasks=None):
799 
801  self.tasks = []
802  if scheduledTasks is not None:
803  self.tasks = scheduledTasks
804 
805 
806 
807 
810 class GetScheduledTask(object):
811 
812 
816  def __init__(self):
817 
819  self.taskIdMin = None
820 
822  self.taskIdMax = None
823 
825  self.rTimeMin = None
826 
828  self.rTimeMax = None
829 
831  self.state = ScheduledTask.STATE_PLANNED
832  #The priority min
833  self.priorityMin = None
834 
836  self.priorityMax = None
837 
838 
839 
840 
843 class Resource(object):
844 
845  STATE_ACTIVE = 0
846  STATE_UNDEFINED = 1
847  STATE_INACTIVE = 2
848 
849 
853  def __init__(self, nodeId):
854 
856  self.nodeId = nodeId
857 
859  self.nodeName = ""
860 
862  self.host = ""
863 
865  self.port = 0
866 
868  self.cpu = 0
869 
871  self.io = 0
872 
874  self.ramRU = 0
875 
877  self.ramVU = 0
878 
880  self.ramR = 0
881 
883  self.ramV = 0
884 
886  self.swap = 0
887 
889  self.swapU = 0
890 
892  self.disk = 0
893 
895  self.diskU = 0
896 
898  self.state = self.STATE_UNDEFINED
899 
901  self.uDate = datetime.now()
902  #Number of CPU cores
903  self.cpuCores = 0
904  #Number of run threads
905  self.threads = 0
906  #Number of run processes
907  self.processes = 0
908 
909 
910 
911 
914 class ResourcesAVG(object):
915 
916 
919  def __init__(self):
920 
922  self.cpu = 0
923 
925  self.io = 0
926 
928  self.ramRU = 0
929 
931  self.ramVU = 0
932 
934  self.ramR = 0
935 
937  self.ramV = 0
938 
940  self.swap = 0
941 
943  self.disk = 0
944 
946  self.uDate = 0
947  #Number of CPU cores
948  self.cpuCores = 0
949  #Number of run threads
950  self.threads = 0
951  #Number of run processes
952  self.processes = 0
953 
954 
955 
956 
959 class AdminStatData(object):
960 
961  FIELD_CLIENTS_LIST = "clients"
962 
963 
968  def __init__(self, className, statFieldsDic=None):
969 
971  self.className = className
972 
974  self.fields = {}
975  if statFieldsDic is not None:
976  self.fields = statFieldsDic
977 
978 
979  def toJSON(self):
980  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
981 
982 
983 
984 
986 class AdminConfigVars(object):
987 
988 
993  def __init__(self, className, configFieldsList=None):
994 
996  self.className = className
997 
999  self.fields = {}
1000  if configFieldsList is not None:
1001  self.fields = configFieldsList
1002 
1003 
1004  def toJSON(self):
1005  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
1006 
1007 
1008 
1009 
1011 class AdminState(object):
1012 
1013  STATE_NOP = 0
1014  STATE_READY = 1
1015  STATE_SHUTDOWN = 2
1016  STATE_SUSPEND = 3
1017  STATE_TRACE = 4
1018  STATE_TRANSACTION_ROLLBACK = 6
1019  STATE_ERROR = 7
1020 
1021 
1026  def __init__(self, className, command):
1027 
1029  self.className = className
1030 
1032  self.command = command
1033 
1034 
1035  def toJSON(self):
1036  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
1037 
1038 
1039 
1040 
1042 class AdminSuspend(object):
1043 
1044  SUSPEND = 0
1045  RUN = 1
1046 
1047 
1052  def __init__(self, suspendType=SUSPEND):
1053 
1055  self.suspendType = suspendType
1056 
1057 
1058  def isSuspend(self):
1059  return self.suspendType == self.SUSPEND
1060 
1061 
1062  def toJSON(self):
1063  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
1064 
1065 
1066 
1067 
1070 class DeleteTaskResults(object):
1071 
1072  TASK_STATE_ERROR = 2000
1073  TASK_STATE_ERROR_MESSAGE = "Wrong task state to cleanup task's data!"
1074  TASK_NOT_FOUND_ERROR = 2001
1075  TASK_NOT_FOUND_ERROR_MESSAGE = "Task not found!"
1076  EMPRY_RAW_ERROR = 2002
1077  EMPRY_RAW_ERROR_MESSAGE = "Empty json raw!"
1078  DRCE_ERROR = 2003
1079  DRCE_ERROR_MESSAGE = "Some DRCE Error!"
1080 
1081 
1082 
1086  def __init__(self, taskId):
1087 
1089  self.id = taskId
1090 
1091 
1092 
1093 
1095 
1096  TABLE_NAME_DEFAULT = "task_back_log_scheme"
1097 
1098 
1103  def __init__(self, fetchNum, fetchAdditionalFields=False, criterions=None, tableName=TABLE_NAME_DEFAULT):
1104  super(FetchAvailabelTaskIds, self).__init__()
1105  self.criterions = criterions
1106  self.fetchNum = fetchNum
1107  self.fetchAdditionalFields = fetchAdditionalFields
1108  self.tableName = tableName
1109  self.fillCriterions()
1110 
1111 
1112 
1113  def fillCriterions(self):
1114  if self.criterions is None:
1115  self.criterions = {}
1116  if app.SQLCriterions.CRITERION_WHERE not in self.criterions or \
1117  self.criterions[app.SQLCriterions.CRITERION_WHERE] is None:
1118  self.criterions[app.SQLCriterions.CRITERION_WHERE] = "deleteTaskId = 0"
1119  if app.SQLCriterions.CRITERION_ORDER not in self.criterions or \
1120  self.criterions[app.SQLCriterions.CRITERION_ORDER] is None:
1121  self.criterions[app.SQLCriterions.CRITERION_ORDER] = "rDate"
1122  if app.SQLCriterions.CRITERION_LIMIT not in self.criterions or \
1123  self.criterions[app.SQLCriterions.CRITERION_LIMIT] is None:
1124  self.criterions[app.SQLCriterions.CRITERION_LIMIT] = self.fetchNum
1125 
1126 
1127 
1128 
1130 
1134  def __init__(self, ids, tasks=None):
1135  super(AvailableTaskIds, self).__init__()
1136  self.ids = ids
1137  self.tasks = tasks
1138 
1139 
1140 
1141 
1142 class System(object):
1143 
1147  def __init__(self, stype=0, data=None):
1148  self.type = stype
1149  self.data = data
1150 
1151 
1152  def toJSON(self):
1153  return json.dumps(self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
1154 
1155 
1156 
1157 from dbi.EventObjects import CustomRequest
1158 from dbi.EventObjects import CustomResponse
1159 
UpdateTask event object, for update task field operation.
repeat
The repeat of task termination in the EE.
def __init__(self, taskId)
constructor initialize task's fields
filters
The filters criterion.
UpdateTaskFields event object, for update task fields operation.
errorMessage
The error message of request operation filled depends on.
session
The task session items init.
Definition: EventObjects.py:93
def __init__(self, taskId)
constructor initialize task's fields
def __init__(self, taskId)
constructor initialize task id field
errorCode
The EE response errorCode.
autoCleanupFields
The task autoCleanupFields init.
DeleteTaskResults event object, for delete task results from DTM application operation.
def __init__(self, taskId, checkType=TYPE_SIMPLE)
constructor initialize task's fields
def fillCriterions(self)
fillCriterions default initialize criterions method
alg
The algorithm of task termination in the EE.
def __init__(self, taskId)
constructor initialize task id field
strategy
The task strategy items init.
Definition: EventObjects.py:96
def __init__(self, taskId)
constructor initialize response data fields
stderr
The task process stderr.
def setStrategyVar(self, strategyVarName, strategyVarValue)
Set the strategy variable.
def __init__(self, taskId, rTime, rTimeMax, state, priority)
constructor initialize task data fields
def __init__(self, className, command)
constructor initialize task's fields
uDate
The information update date.
cpu
The node AVG CPU LA, %.
rTimeMax
The time to run max.
priority
The priority of the task in the schedule.
io
The node io LA, %.
state
The state of a task in the schedule.
ExecuteTask event object, to set task to execute on EE.
def setLimitsVar(self, limitsVarName, limitsVarValue)
Set the limits variable.
NewTask event object, defines the Task object fields.
GeneralResponse event object, represents general state response for multipurpose usage.
command
the command code for state operation
AvailableTaskIds event object, for return all available task id.
nodePort
The task executor HCE node port.
def setStrategyVar(self, strategyVarName, strategyVarValue)
Set the strategy variable.
def __init__(self, taskId)
constructor initialize task's field
UpdateScheduledTasks object used to represent task's related data update from the TasksManager to the...
rTime
The time to run, msec.
FetchTasksResultsFromCache event object, for fetch task's results data from DTM application.
def __init__(self, stype=0, data=None)
constructor initialize task's fields
files
The task files items attached init.
Definition: EventObjects.py:90
DeleteTaskData event object, to delete task's data in the storage.
FetchTasksResults event object, for fetch task's results data from EE.
files
The files list attached to the task.
port
The TCP port of the HCE node admin interface for the task process in the EE.
DeleteTask event object, to delete task from DTM application and from EE.
strategy
The task strategy items attached.
def __init__(self, nodeId)
constructor initialize resource data fields
def __init__(self, className, statFieldsDic=None)
constructor initialize task's fields
def __init__(self, taskId)
constructor initialize task id field
cpu
The node CPU LA, %.
AdminConfigVars event object, for admin set or get config variables from any of threaded classes or a...
AvailableTaskIds event object, for return all available task id.
disk
The node AVG disk usage, %.
def __init__(self, deleteTaskId, taskId=None)
constructor initialize task's fields
def setFile(self, fileItem)
Set the file item.
input
The task cstdin stream buffer for EE process.
Definition: EventObjects.py:87
ResourcesAVG event object, represents summary of the EE resources utilization.
def __init__(self, taskId)
constructor initialize task's fields
state
The node host state.
Resource event object, represents resource's data fields .
exitStatus
The task process exit status.
swap
The node swap total, byte.
CheckTaskState event object, for check task status inside EE.
def setFile(self, fileItem)
Set the file item.
def __init__(self, scheduledTasks=None)
constructor initialize task data fields
pId
The task process Id in EE.
def __init__(self, taskId)
constructor initialize task's fields
ScheduledTask event object, represents task's data fields in the Schedule container.
AdminState event object, for admin manage change application state commands, like shutdown...
command
The task command line to execute inside EE.
Definition: EventObjects.py:84
rTimeMax
The time to run max.
def __init__(self, timeSlotSize)
constructor initialize task's field
def __init__(self)
constructor initialize criterion fields
ramVU
The node virtual RAM usage, byte.
taskTime
The task execution time.
GetTaskManagerFields event object, for get task fields values operation.
GetScheduledTasks event object, to get tasks per time slot range from the Scheduler.
FetchEEResponseData event object, to fetch EE response data from the storage.
TasksStatus event object, returns task status operation.
delay
The delay of task termination in the EE.
def __init__(self, taskCommandLine, taskId=None, name=None)
constructor initialize task's fields
def __init__(self, ids, tasks=None)
constructor initialize task's fields
disk
The node disk total, byte.
Task event object, defines the Task object fields.
Definition: EventObjects.py:34
nodeId
The node host name + port string in format "host:port".
io
The node AVG io LA, %.
nodeHost
The task executor HCE node host name.
errorMessage
The EE response error message.
GetScheduledTask event object, defines criterion to select tasks from the schedule.
DeleteEEResponseData event object, to delete EE response data from the storage.
state
The state of a task in the schedule.
def __init__(self, errorCode=ERROR_OK, errorMessage="")
constructor initialize response fields
def __init__(self, taskId, fetchType=TYPE_DELETE)
constructor initialize task's fields
ramRU
The node resource RAM usage, byte.
AdminStatData event object, for admin fetch stat fields and possible data from any threaded classes i...
ramR
The node AVG resource RAM usage, %.
def __init__(self, suspendType=SUSPEND)
constructor initialize task's fields
def setSessionVar(self, sessionVarName, sessionVarValue)
Set the OS session variable for EE process.
TaskManagerFields event object, for return task fields values.
FetchTaskData event object, to fetch task data from the storage.
type
The task type init.
def __init__(self, taskId)
constructor initialize task's fields
ramV
The node AVG virtual RAM usage, %.
requestTime
The EE request time.
ramV
The node virtial RAM total, byte.
AdminSuspend event object, for admin suspend command.
GetTasksStatus event object, for check task status operation.
diskU
The node disk usage, byte.
fields
The stat fields to fetch, if empty - all fields pairs returned.
def __init__(self, idsList)
constructor initialize task's fields
ids
The task Ids list self.ids = [].
host
The host name or IP address of task process HCE node in the EE.
rTimeMin
The time to run min.
ramR
The node resource RAM total, byte.
limits
The task limits init.
Definition: EventObjects.py:99
ramRU
The node AVG resource RAM usage, %.
def __init__(self)
constructor initialize task's fields
Definition: EventObjects.py:78
def __init__(self, fetchNum, fetchAdditionalFields=False, criterions=None, tableName=TABLE_NAME_DEFAULT)
constructor initialize task's fields
def __init__(self)
constructor initialize resource AVG fields
stdout
The task process stdout.
FetchAvailabelTaskIds event object, for fetch available task id.
IDGenerator is used to generate unique id for connections.
Definition: IDGenerator.py:15
name
The task name init.
EEResponseData event object, store task results data, returned from EE.
statuses
The list of statuses in case of request used for group of objects or actions.
def getHash(strBuf, binSize=32, digestType=0, fixedMode=0, valLimit=18446744073709552000L)
Definition: Utils.py:1649
uDate
The information update date oldest.
swap
The node AVG swap usage, %.
def __init__(self, taskId)
constructor initialize task's fields
def __init__(self, idsList)
constructor initialize task's field
def setFilterVar(self, filterVarName, filterVarValue)
Set the filter variable.
ramVU
The node AVG virtual RAM usage, %.
def __init__(self, taskId)
constructor initialize task id field
nodeName
The task executor HCE node name in EE.
signal
The signal it is a UNIX signal used to terminate task process in the EE.
swapU
The node swap usage, byte.
def __init__(self, className, configFieldsList=None)
constructor initialize task's fields
GetScheduledTasksResponse event object, to return list of task from the Scheduler.
errorCode
The errorCode of request operation, zero means success.