def start(self): try: props = self.build.getProperties() branch = props.render(self.branch) revision = props.render(self.revision) comments = props.render(self.comments) files = props.render(self.files) user = props.render(self.user) sendchange_props = [] for key, value in self.sendchange_props.iteritems(): sendchange_props.append((key, props.render(value))) self.addCompleteLog( "sendchange", """\ master: %s branch: %s revision: %s comments: %s user: %s files: %s properties: %s""" % (self.master, branch, revision, comments, user, files, sendchange_props)) bb_cmd = [ 'buildbot', 'sendchange', '--master', self.master, '--username', user, '--branch', branch, '--revision', revision ] if isinstance(comments, basestring): if re.search('try: ', comments, re.MULTILINE): comments = 'try: ' + ' '.join(processMessage(comments)) else: try: comments = comments.splitlines()[0] except IndexError: comments = '' comments = re.sub(r'[\r\n^<>|;&"\'%$]', '_', comments) comments = comments.encode('ascii', 'replace') if comments: bb_cmd.extend(['--comments', comments]) for key, value in sendchange_props: bb_cmd.extend(['--property', '%s:%s' % (key, value)]) if files: bb_cmd.extend(self.files) cmd = [ 'python', WithProperties("%(toolsdir)s/buildfarm/utils/retry.py"), '-s', str(self.sleepTime), '-t', str(self.timeout), '-r', str(self.retries), '--stdout-regexp', 'change sent successfully' ] cmd.extend(bb_cmd) self.setCommand(cmd) self.super_class.start(self) except KeyError: self.addCompleteLog("errors", str(Failure())) return self.finished(FAILURE)
def start(self): try: props = self.build.getProperties() branch = props.render(self.branch) revision = props.render(self.revision) comments = props.render(self.comments) files = props.render(self.files) user = props.render(self.user) sendchange_props = [] for key, value in self.sendchange_props.items(): sendchange_props.append( (key, props.render(value)) ) self.addCompleteLog("sendchange", """\ master: %s branch: %s revision: %s comments: %s user: %s files: %s properties: %s""" % (self.master, branch, revision, comments, user, files, sendchange_props)) bb_cmd = ['buildbot', 'sendchange', '--master', self.master, '--username', user, '--branch', branch, '--revision', revision] if isinstance(comments, basestring): if re.search('try: ', comments, re.MULTILINE): comments = 'try: ' + ' '.join(processMessage(comments)) else: try: comments = comments.splitlines()[0] except IndexError: comments = '' comments = re.sub(r'[\r\n^<>|;&"\'%$]', '_', comments) comments = comments.encode('ascii', 'replace') if comments: bb_cmd.extend(['--comments', comments]) for key, value in sendchange_props: bb_cmd.extend(['--property', '%s:%s' % (key, value)]) if files: bb_cmd.extend(self.files) cmd = ['python', WithProperties("%(toolsdir)s/buildfarm/utils/retry.py"), '-s', str(self.sleepTime), '-t', str(self.timeout), '-r', str(self.retries), '--stdout-regexp', 'change sent successfully'] cmd.extend(bb_cmd) self.setCommand(cmd) self.super_class.start(self) except KeyError: self.addCompleteLog("errors", str(Failure())) return self.finished(FAILURE)
def _testNewLineProcessMessage(self, message, value=None): if not value: value = ['-a', '-b', '-c'] self.assertEqual(processMessage(message), value)