Author: remi
Date: 2009-04-07 18:46:28 +0200 (Tue, 07 Apr 2009)
New Revision: 4404
Added:
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceUserConfiguration.py
Log:
* added a resource to load the configurations from a user directory
Added:
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceUserConfiguration.py
===================================================================
---
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceUserConfiguration.py
(rev 0)
+++
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceUserConfiguration.py
2009-04-07 16:46:28 UTC (rev 4404)
@@ -0,0 +1,154 @@
+#
==============================================================================
+# Task creation resource.
+#
==============================================================================
+
+from util.misc.tuxPaths import TUXDROID_LANGUAGE
+from util.misc.tuxPaths import TUXDROID_DEFAULT_LOCUTOR
+from util.misc.DirectoriesAndFilesTools import *
+
+#
------------------------------------------------------------------------------
+# Declaration of the resource "user_configuration".
+#
------------------------------------------------------------------------------
+class TDSResourceUserConfiguration(TDSResource):
+
+ #
--------------------------------------------------------------------------
+ # Inherited methods from TDSResource
+ #
--------------------------------------------------------------------------
+
+ def configure(self):
+ self.name = "user_configuration"
+ self.comment = "Resource to manages the user configurations."
+ self.fileName = RESOURCE_FILENAME
+ # Default configuration
+ self.defaultConfiguration = {
+ 'auto-start' : False,
+ 'configuration_path' : "",
+ }
+
+ def stop(self):
+ self.getConfigurator().store()
+
+ def start(self):
+ config = self.getConfigurator().load(
+ "resourceUserConfiguration.conf",
+ self.defaultConfiguration)
+ if config['auto-start']:
+ self.loadUserDirectory(config['configuration_path'])
+
+ #
--------------------------------------------------------------------------
+ # Public methods
+ #
--------------------------------------------------------------------------
+
+ def loadUserDirectory(self, userDirectory):
+ """Load the configuration from a user directory.
+ @param userDirectory: User directory (with "MyTux" ...)
+ @return: The success of the configuration loading.
+ """
+ if not os.path.isdir(userDirectory):
+ return False
+ if userDirectory.split(os.sep)[-1] != "MyTux":
+ return False
+ # User directories
+ userGadgetsDir = os.path.join(userDirectory, "MyTuxGadgets")
+ userAttitunesDir = os.path.join(userDirectory, "MyTuxAttitunes")
+ userTasksDir = os.path.join(userDirectory, "MyTuxTasks")
+ userLocalesConfigFile = os.path.join(userDirectory, "locales.conf")
+ MKDirs(userGadgetsDir)
+ MKDirs(userAttitunesDir)
+ MKDirs(userTasksDir)
+ # Read the locales configuration
+ if not os.path.isfile(userLocalesConfigFile):
+ # Create the locales config
+ splitedLC = TUXDROID_LANGUAGE.split("_")
+ language = splitedLC[0]
+ if len(splitedLC) > 1:
+ country = splitedLC[1]
+ else:
+ country = language.upper()
+ locutor = TUXDROID_DEFAULT_LOCUTOR
+ pitch = 130
+ userLocalesConfigDict = {
+ 'language' : language,
+ 'country' : country,
+ 'locutor' : locutor,
+ 'pitch' : pitch,
+ 'L1' : language,
+ 'L2' : language,
+ 'GL' : language,
+ }
+ try:
+ open(userLocalesConfigFile,
"wb").write(str(userLocalesConfigDict))
+ except:
+ RMFile(userLocalesConfigFile)
+ return False
+ else:
+ try:
+ userLocalesConfigDict = eval(open(
+ userLocalesConfigFile, "rb").read())
+ except:
+ RMFile(userLocalesConfigFile)
+ return False
+ def async():
+ # Start the gadget framework
+ parameters = {
+ 'language' : userLocalesConfigDict['language'],
+ 'country' : userLocalesConfigDict['country'],
+ 'locutor' : userLocalesConfigDict['locutor'],
+ 'pitch' : userLocalesConfigDict['pitch'],
+ 'gadgets_path' : userGadgetsDir,
+ }
+ resourceGadgetFramework.getService("start").execute(0, parameters)
+ # Start the attitune manager
+ parameters = {
+ 'attitunes_path' : userAttitunesDir,
+ }
+ resourceAttituneManager.getService("start").execute(0, parameters)
+ # Start the scheduler
+ parameters = {
+ 'tasks_path' : userTasksDir,
+ }
+ resourceScheduler.getService("start").execute(0, parameters)
+ t = threading.Thread(target = async)
+ t.start()
+ return True
+
+# Create an instance of the resource
+resourceUserConfiguration =
TDSResourceUserConfiguration("resourceUserConfiguration")
+# Register the resource into the resources manager
+resourcesManager.addResource(resourceUserConfiguration)
+
+#
------------------------------------------------------------------------------
+# Declaration of the service "set_user_directory".
+#
------------------------------------------------------------------------------
+class TDSServiceUserConfigurationSetDirectory(TDSService):
+
+ def configure(self):
+ self.parametersDict = {
+ 'configuration_path' : 'string',
+ }
+ self.minimalUserLevel = TDS_CLIENT_LEVEL_ANONYMOUS
+ self.exclusiveExecution = False
+ self.name = "set_user_directory"
+ self.comment = "Set the user directory."
+
+ def execute(self, id, parameters):
+ headersStruct = self.getDefaultHeadersStruct()
+ contentStruct = self.getDefaultContentStruct()
+ contentStruct['root']['result'] = getStrError(E_TDREST_SUCCESS)
+ # Check the directory
+ if not os.path.isdir(parameters['configuration_path']):
+ contentStruct['root']['result'] = getStrError(E_TDREST_FAILED)
+ else:
+ if not resourceUserConfiguration.loadUserDirectory(
+ parameters['configuration_path']):
+ contentStruct['root']['result'] = getStrError(E_TDREST_FAILED)
+ else:
+ configurator = resourceUserConfiguration.getConfigurator()
+ config = configurator.getConfiguration()
+ config['configuration_path'] = parameters['configuration_path']
+ config['auto-start'] = True
+ configurator.store()
+ return headersStruct, contentStruct
+
+# Register the service into the resource
+resourceUserConfiguration.addService(TDSServiceUserConfigurationSetDirectory)
Property changes on:
software_suite_v2/tuxware/tuxdroidserver/trunk/resources/03_advanced_api/resourceUserConfiguration.py
___________________________________________________________________
Name: svn:keywords
+ Id
------------------------------------------------------------------------------
This SF.net email is sponsored by:
High Quality Requirements in a Collaborative Environment.
Download a free trial of Rational Requirements Composer Now!
http://p.sf.net/sfu/www-ibm-com
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn