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 |