Changes to instance naming:
[mdk.git] / mdk / workplace.py
index b357d6d..0a42b9d 100644 (file)
@@ -114,16 +114,21 @@ class Workplace(object):
                 logging.info('Have a break, this operation is slow...')
                 process('%s clone --mirror %s %s' % (C.get('git'), C.get('remotes.integration'), cacheIntegration))
 
-    def create(self, name=None, version='master', integration=False, useCacheAsRemote=False):
+    def create(self, name=None, version='master', purpose='stable', engine=C.get('defaultEngine'), useCacheAsRemote=False):
         """Creates a new instance of Moodle.
         The parameter useCacheAsRemote has been deprecated.
         """
+        integration = False
+
         if name == None:
-            name = self.generateInstanceName(version, integration=integration)
+            name = self.generateInstanceName(version, purpose=purpose)
 
         if name == self.mdkDir:
             raise Exception('A Moodle instance cannot be called \'%s\', this is a reserved word.' % self.mdkDir)
 
+        if purpose == 'integration':
+            integration = True
+
         installDir = self.getPath(name)
         wwwDir = self.getPath(name, 'www')
         dataDir = self.getPath(name, 'data')
@@ -230,7 +235,7 @@ class Workplace(object):
         if DB and dbname and DB.dbexists(dbname):
             DB.dropdb(dbname)
 
-    def generateInstanceName(self, version, integration=False, suffix='', identifier=None):
+    def generateInstanceName(self, version, engine=C.get('defaultEngine'), purpose='stable', suffix='', identifier=None):
         """Creates a name (identifier) from arguments"""
 
         if identifier != None:
@@ -245,10 +250,18 @@ class Workplace(object):
                 prefixVersion = version
 
             # Generating name
-            if integration:
-                name = C.get('wording.prefixIntegration') + prefixVersion
-            else:
-                name = C.get('wording.prefixStable') + prefixVersion
+            sep = C.get('wording.prefixSeparator');
+            if purpose == 'integration':
+                name = C.get('wording.prefixIntegration') + sep + prefixVersion
+
+            if purpose == 'review':
+                name = C.get('wording.prefixReview') + sep + prefixVersion
+
+            if purpose == 'stable':
+                name = C.get('wording.prefixStable') + sep + prefixVersion
+
+            if C.get('wording.appendEngine'):
+                name += sep + engine
 
         # Append the suffix
         if suffix != None and suffix != '':