Author: remi
Date: 2009-04-06 09:35:57 +0200 (Mon, 06 Apr 2009)
New Revision: 4344
Added:
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceTaskCreation.py
Log:
* added a resource to create scheduled tasks
Added:
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceTaskCreation.py
===================================================================
---
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceTaskCreation.py
(rev 0)
+++
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceTaskCreation.py
2009-04-06 07:35:57 UTC (rev 4344)
@@ -0,0 +1,191 @@
+#
==============================================================================
+# Task creation resource.
+#
==============================================================================
+
+#
------------------------------------------------------------------------------
+# Declaration of the resource "task_creation".
+#
------------------------------------------------------------------------------
+class TDSResourceTaskCreation(TDSResource):
+
+ #
--------------------------------------------------------------------------
+ # Inherited methods from TDSResource
+ #
--------------------------------------------------------------------------
+
+ def configure(self):
+ self.name = "task_creation"
+ self.comment = "Resource to create a scheduled tasks."
+ self.fileName = RESOURCE_FILENAME
+
+ #
--------------------------------------------------------------------------
+ # Public methods
+ #
--------------------------------------------------------------------------
+
+ def createTaskStartGadget(self, gadgetUuid, gadgetCommand,
gadgetParameters,
+ taskType, taskName, weekMask, hour, minute, second, year, month, day):
+ """Create a task to start a gadget.
+ @param gadgetUuid: Gadget uuid.
+ @param gadgetCommand: Gadget command.
+ @param gadgetParameters: Gadget parameters.
+ @param taskType: <EVERY X|EVERY X FROM FULL HOUR|DAILY AT|ONCE AT|
+ ONCE DELAYED>
+ @param taskName: Task name.
+ @param weekMask: Week mask. [True, True, True, True, True, True, True]
+ @param hour: <0..23>
+ @param minute: <0..59>
+ @param second: <0..59>
+ @param year: Year.
+ @param month: <1..12>
+ @param day: <1..31>
+ """
+ command = "resourceGadgetFramework.startGadget"
+ arguments = (gadgetUuid, gadgetCommand, gadgetParameters)
+ data = {
+ 'commandType' : 'gadget_start',
+ 'uuid' : gadgetUuid,
+ 'command' : gadgetCommand,
+ 'parameters' : gadgetParameters,
+ }
+ return resourceScheduler.createTask(command, arguments, taskType,
+ taskName, weekMask, hour, minute, second, year, month, day, data)
+
+ def createTaskStopGadget(self, gadgetUuid, taskType, taskName, weekMask,
+ hour, minute, second, year, month, day):
+ """Create a sheduled task to stop a gadget.
+ @param gadgetUuid: Gadget uuid.
+ @param taskType: <EVERY X|EVERY X FROM FULL HOUR|DAILY AT|ONCE AT|
+ ONCE DELAYED>
+ @param taskName: Task name.
+ @param weekMask: Week mask. [True, True, True, True, True, True, True]
+ @param hour: <0..23>
+ @param minute: <0..59>
+ @param second: <0..59>
+ @param year: Year.
+ @param month: <1..12>
+ @param day: <1..31>
+ """
+ command = "resourceGadgetFramework.stopGadget"
+ arguments = (gadgetUuid,)
+ data = {
+ 'commandType' : 'gadget_stop',
+ 'uuid' : gadgetUuid,
+ }
+ return resourceScheduler.createTask(command, arguments, taskType,
+ taskName, weekMask, hour, minute, second, year, month, day, data)
+
+# Create an instance of the resource
+resourceTaskCreation = TDSResourceTaskCreation("resourceTaskCreation")
+# Register the resource into the resources manager
+resourcesManager.addResource(resourceTaskCreation)
+
+#
------------------------------------------------------------------------------
+# Declaration of the service "start_gadget".
+#
------------------------------------------------------------------------------
+class TDSServiceTaskCreationStartGadgetTask(TDSService):
+
+ def configure(self):
+ self.parametersDict = {
+ 'gadget_uuid' : 'string',
+ 'gadget_command' : 'string',
+ 'gadget_parameters' : 'string',
+ 'task_type' : '<EVERY X|EVERY X FROM FULL HOUR|DAILY AT|ONCE
AT|ONCE DELAYED>',
+ 'task_name' : 'string',
+ 'week_mask' : 'string',
+ 'hour' : 'uint8',
+ 'minute' : 'uint8',
+ 'second' : 'uint8',
+ 'year' : 'int',
+ 'month' : 'int8',
+ 'day' : 'int8',
+ }
+ self.minimalUserLevel = TDS_CLIENT_LEVEL_ANONYMOUS
+ self.exclusiveExecution = False
+ self.name = "start_gadget"
+ self.comment = "Create a sheduled task to start a gadget."
+
+ def execute(self, id, parameters):
+ headersStruct = self.getDefaultHeadersStruct()
+ contentStruct = self.getDefaultContentStruct()
+ contentStruct['root']['result'] = getStrError(E_TDREST_SUCCESS)
+ gadgetUuid = parameters['gadget_uuid']
+ gadgetCommand = parameters['gadget_command']
+ gadgetParameters = {}
+ splParams = parameters['gadget_parameters'].split("|")
+ for paramStruct in splParams:
+ param = paramStruct.split("=")
+ if len(param) == 2:
+ gadgetParameters[param[0]] = param[1]
+ taskType = parameters['task_type']
+ taskName = parameters['task_name']
+ weekMask =
resourceScheduler.weekMaskStringToList(parameters['week_mask'])
+ hour = parameters['hour']
+ minute = parameters['minute']
+ second = parameters['second']
+ year = parameters['year']
+ month = parameters['month']
+ day = parameters['day']
+ id, name = resourceTaskCreation.createTaskStartGadget(gadgetUuid,
+ gadgetCommand, gadgetParameters, taskType, taskName, weekMask,
hour,
+ minute, second, year, month, day)
+ if id != None:
+ contentStruct['root']['data'] = {
+ 'id' : id,
+ 'name' : name,
+ }
+ else:
+ contentStruct['root']['result'] = getStrError(E_TDREST_FAILED)
+ return headersStruct, contentStruct
+
+# Register the service into the resource
+resourceTaskCreation.addService(TDSServiceTaskCreationStartGadgetTask)
+
+#
------------------------------------------------------------------------------
+# Declaration of the service "stop_gadget".
+#
------------------------------------------------------------------------------
+class TDSServiceTaskCreationStopGadgetTask(TDSService):
+
+ def configure(self):
+ self.parametersDict = {
+ 'gadget_uuid' : 'string',
+ 'task_type' : '<EVERY X|EVERY X FROM FULL HOUR|DAILY AT|ONCE
AT|ONCE DELAYED>',
+ 'task_name' : 'string',
+ 'week_mask' : 'string',
+ 'hour' : 'uint8',
+ 'minute' : 'uint8',
+ 'second' : 'uint8',
+ 'year' : 'int',
+ 'month' : 'int8',
+ 'day' : 'int8',
+ }
+ self.minimalUserLevel = TDS_CLIENT_LEVEL_ANONYMOUS
+ self.exclusiveExecution = False
+ self.name = "stop_gadget"
+ self.comment = "Create a sheduled task to stop a gadget."
+
+ def execute(self, id, parameters):
+ headersStruct = self.getDefaultHeadersStruct()
+ contentStruct = self.getDefaultContentStruct()
+ contentStruct['root']['result'] = getStrError(E_TDREST_SUCCESS)
+ gadgetUuid = parameters['gadget_uuid']
+ taskType = parameters['task_type']
+ taskName = parameters['task_name']
+ weekMask =
resourceScheduler.weekMaskStringToList(parameters['week_mask'])
+ hour = parameters['hour']
+ minute = parameters['minute']
+ second = parameters['second']
+ year = parameters['year']
+ month = parameters['month']
+ day = parameters['day']
+ id, name = resourceTaskCreation.createTaskStopGadget(gadgetUuid,
+ taskType, taskName, weekMask, hour, minute, second, year, month,
+ day)
+ if id != None:
+ contentStruct['root']['data'] = {
+ 'id' : id,
+ 'name' : name,
+ }
+ else:
+ contentStruct['root']['result'] = getStrError(E_TDREST_FAILED)
+ return headersStruct, contentStruct
+
+# Register the service into the resource
+resourceTaskCreation.addService(TDSServiceTaskCreationStopGadgetTask)
Property changes on:
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceTaskCreation.py
___________________________________________________________________
Name: svn:keywords
+ Id
------------------------------------------------------------------------------
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn