buildframework/helium/tools/common/python/lib/ccm/__init__.py
changeset 179 d8ac696cc51f
parent 1 be27ed110b50
child 593 4367a1b2db65
equal deleted inserted replaced
1:be27ed110b50 179:d8ac696cc51f
   514                 return
   514                 return
   515 
   515 
   516 CHECKOUT_LOG_RULES = [[r'^Derive failed for', logging.ERROR],
   516 CHECKOUT_LOG_RULES = [[r'^Derive failed for', logging.ERROR],
   517                       [r'^Serious:', logging.ERROR],
   517                       [r'^Serious:', logging.ERROR],
   518                       [r'^Warning: .* failed.', logging.ERROR],
   518                       [r'^Warning: .* failed.', logging.ERROR],
       
   519                       [r'^Invalid work area', logging.ERROR],
   519                       [r'^WARNING:', logging.WARNING],
   520                       [r'^WARNING:', logging.WARNING],
   520                       [r'^Warning:', logging.WARNING],]
   521                       [r'^Warning:', logging.WARNING],]
   521 
   522 
   522 
   523 
   523 UPDATE_LOG_RULES = [[r'^Update failed.', logging.ERROR],
   524 UPDATE_LOG_RULES = [[r'^Update failed.', logging.ERROR],
  1189         result = self._session.execute("cat \"%s\" > \"%s\"" % (self, os.path.normpath(path)))
  1190         result = self._session.execute("cat \"%s\" > \"%s\"" % (self, os.path.normpath(path)))
  1190         if result.status != 0 and result.status != None:
  1191         if result.status != 0 and result.status != None:
  1191             raise CCMException("Error retrieving content from object %s in %s (error status: %s)\n%s" % (self, path, result.status, result.output), result)
  1192             raise CCMException("Error retrieving content from object %s in %s (error status: %s)\n%s" % (self, path, result.status, result.output), result)
  1192     
  1193     
  1193     def merge(self, ccm_object, task):
  1194     def merge(self, ccm_object, task):
  1194         assert(ccm_object != None, "object must be defined.")
  1195         assert ccm_object != None, "object must be defined."
  1195         assert(task != None, "task must be defined.")
  1196         assert task != None, "task must be defined."
  1196         assert(task.type == "task", "task parameter must be of 'task' type.")
  1197         assert task.type == "task", "task parameter must be of 'task' type."
  1197         result = self._session.execute("merge -task %s \"%s\" \"%s\"" % (task['displayname'], self, ccm_object))
  1198         result = self._session.execute("merge -task %s \"%s\" \"%s\"" % (task['displayname'], self, ccm_object))
  1198         
  1199         
  1199         validity = 0
  1200         validity = 0
  1200         for line in result.output.splitlines():
  1201         for line in result.output.splitlines():
  1201             if re.match(r"Merge Source completed successfully\.", line):
  1202             if re.match(r"Merge Source completed successfully\.", line):
  1341         result = self._session.execute("query \"is_child_of('%s','%s')\" -u -f \"%%objectname\"" % (self.objectname, self.objectname), ObjectListResult(self._session))
  1342         result = self._session.execute("query \"is_child_of('%s','%s')\" -u -f \"%%objectname\"" % (self.objectname, self.objectname), ObjectListResult(self._session))
  1342         return result.output[0]
  1343         return result.output[0]
  1343     
  1344     
  1344     def snapshot(self, targetdir, recursive=False):
  1345     def snapshot(self, targetdir, recursive=False):
  1345         """ Take a snapshot of the project. """
  1346         """ Take a snapshot of the project. """
  1346         assert(targetdir != None, "targetdir must be defined.")
  1347         assert targetdir != None, "targetdir must be defined."
  1347         if recursive:
  1348         if recursive:
  1348             recursive = "-recurse"
  1349             recursive = "-recurse"
  1349         else:
  1350         else:
  1350             recursive = ""
  1351             recursive = ""
  1351         result = self._session.execute("wa_snapshot -path \"%s\"  %s \"%s\"" % (os.path.normpath(targetdir), recursive, self.objectname))
  1352         result = self._session.execute("wa_snapshot -path \"%s\"  %s \"%s\"" % (os.path.normpath(targetdir), recursive, self.objectname))
  1845 
  1846 
  1846 def get_role_for_status(session, status):
  1847 def get_role_for_status(session, status):
  1847     """  return role needed to modify project with a specific status. """
  1848     """  return role needed to modify project with a specific status. """
  1848     if status == 'prep':
  1849     if status == 'prep':
  1849         return 'build_mgr'
  1850         return 'build_mgr'
       
  1851     elif status == 'shared':
       
  1852         return 'developer'
  1850     elif status == 'working':
  1853     elif status == 'working':
  1851         return 'developer'
  1854         return 'developer'
  1852     else:
  1855     else:
  1853         raise CCMException("Unknow status '%s'" % status)
  1856         raise CCMException("Unknow status '%s'" % status)
  1854 
  1857