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)
예제 #2
0
    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)
예제 #3
0
 def _testNewLineProcessMessage(self, message, value=None):
     if not value:
         value = ['-a', '-b', '-c']
     self.assertEqual(processMessage(message), value)
 def _testNewLineProcessMessage(self, message, value=None):
     if not value:
         value = ['-a', '-b', '-c']
     self.assertEqual(processMessage(message), value)