buildframework/helium/sf/java/ccmtask/src/com/nokia/helium/ccmtask/ant/taskdefs/ccmtask.py
changeset 628 7c4a911dc066
parent 588 c7c26511138f
--- a/buildframework/helium/sf/java/ccmtask/src/com/nokia/helium/ccmtask/ant/taskdefs/ccmtask.py	Wed Jun 16 16:51:40 2010 +0300
+++ b/buildframework/helium/sf/java/ccmtask/src/com/nokia/helium/ccmtask/ant/taskdefs/ccmtask.py	Fri Aug 13 14:59:05 2010 +0300
@@ -36,18 +36,18 @@
 logger = logging.getLogger("ccm.ant")
 session = None
 
-def execute_update(command):
+def execute_update(session, command):
     java_ccmtask.log(str('Updating project: ' + command.getProject()))
     project = session.create(command.getProject())
     project.update()
 
-def execute_role(command):
+def execute_role(session, command):
     if not command.getRole():
         raise Exception("The 'role' attribute has not been defined.")
     java_ccmtask.log(str('Updating role: ' + command.getRole()))
     session.role = command.getRole()
     
-def execute_synchronize(command):
+def execute_synchronize(session, command):
     if not command.getProject():
         raise Exception("The 'project' attribute has not been defined.")
     java_ccmtask.log(str('Synchronizing project: ' + command.getProject()))
@@ -55,14 +55,14 @@
     project = session.create(command.getProject())
     project.sync(command.getRecursive())    
         
-def execute_reconcile(command):
+def execute_reconcile(session, command):
     if not command.getProject():
         raise Exception("The 'project' attribute has not been defined.")
     java_ccmtask.log(str('Reconciling project: ' + command.getProject()))
     project = session.create(command.getProject())
     project.reconcile()
 
-def execute_snapshot(command):
+def execute_snapshot(session, command):
     if not command.getProject():
         raise Exception("The 'project' attribute has not been defined.")
     if not command.getDir():
@@ -74,7 +74,7 @@
     else:
         project.snapshot(command.getDir(), command.getRecursive())
 
-def execute_changereleasetag(command):
+def execute_changereleasetag(session, command):
     if not command.getFolder():
         raise Exception("The 'folder' attribute has not been defined.")
     if not command.getReleaseTag():
@@ -86,7 +86,7 @@
         if task.release != str(command.getReleaseTag()):
             task.release = str(command.getReleaseTag())
             
-def execute_checkout(command):
+def execute_checkout(session, command):
     if not command.getProject():
         raise Exception("The 'project' attribute has not been defined.")
     java_ccmtask.log(str('Checking out project: ' + command.getProject() + ' with release tag ' + command.getRelease()))
@@ -114,7 +114,7 @@
             purpose = None
         project.checkout(session.create(command.getRelease()), version, purpose, recursive)
 
-def execute_createreleasetag(command):
+def execute_createreleasetag(session, command):
     java_ccmtask.log(str('creating a release tag'))
     if not command.getProject():
         raise Exception("The 'project' attribute has not been defined.")
@@ -123,7 +123,7 @@
         new_release_tag = command.getNewTag();
         project.create_release_tag(command.getRelease(), new_release_tag)
 
-def execute_deletereleasetag(command):
+def execute_deletereleasetag(session, command):
     java_ccmtask.log(str('deleting a release tag'))
     if not command.getProject():
         raise Exception("The 'project' attribute has not been defined.")
@@ -132,7 +132,7 @@
         new_release_tag = command.getNewTag();
         project.delete_release_tag(command.getRelease(), new_release_tag)
 
-def execute_workarea(command):
+def execute_workarea(session, command):
     if not command.getProject():
         raise Exception("The 'project' attribute has not been defined.")
     java_ccmtask.log(str('Modifying work area for the project : ' + command.getProject()))
@@ -163,11 +163,11 @@
         wat = None
     project.work_area(maintain, recursive, relative, path, pst, wat)
 
-def execute_addtask(command):
+def execute_addtask(session, command):
     if command.getFolder() != None:
         tasks = []        
         ccmfolder = session.create("Folder " + command.getFolder())
-        role = find_folder_information(command)
+        role = find_folder_information(session, command)
         if role == "build_mgr":
             java_ccmtask.log("Changing role to %s" % role)
             session.role = "build_mgr"
@@ -181,7 +181,7 @@
         for task in tasks:
             ccmfolder.append(task)
     
-def find_folder_information(command):
+def find_folder_information(session, command):
     cmdline = "folder -sh i " + command.getFolder()    
     result = session.execute(cmdline)
     result_array = str(result).split('\r')
@@ -193,7 +193,7 @@
             else:
                 return "developer"
 
-def execute_exists(command):
+def execute_exists(session, command):
     fpn = None
     if command.getObject() != None:
         fpn = command.getObject()
@@ -210,12 +210,11 @@
     else:
         raise Exception("Could not find '%s'." % ccmo)
 
-def execute_close(command):
-    global session
-    java_ccmtask.log(str("Closing session %s." % session))
-    session.close_on_exit = True
+def execute_close(session, command):
+    java_ccmtask.log(str("Closing session %s." % str(session)))
+    if hasattr(session, 'close_on_exit'):
+        session.close_on_exit = True    
     session.close()
-    session = None
     
 def referenceToObject(obj):
     if obj.isReference() == 1:
@@ -235,9 +234,9 @@
     sessionid = sessionIds.pop()
     session = ccm.Session(username=None, engine=None, dbpath=None, ccm_addr=sessionid, close_on_exit=False)
 else:
-   username = java_ccmtask.getUsername()
-   password = java_ccmtask.getPassword()
-   session = ccm.open_session(username=username, password=password)
+    username = java_ccmtask.getUsername()
+    password = java_ccmtask.getPassword()
+    session = ccm.open_session(username=username, password=password)
 
 if java_ccmtask.getVerbose() == 1:
     logging.getLogger("ccm").setLevel(logging.DEBUG)
@@ -249,7 +248,7 @@
     method_name = 'execute_' + command.getName()
     method = sys.modules['__main__'].__dict__[method_name]
     try:
-        method(command)
+        method(session, command)
     except Exception, e:
         if java_ccmtask.getVerbose() == 1:
             import traceback