def run(self): # we use 'downloadFile' remote command on the worker self.checkWorkerHasCommand("downloadFile") self.stdio_log = yield self.addLog("stdio") # we are currently in the buildmaster's basedir, so any non-absolute # paths will be interpreted relative to that workerdest = self.workerdest log.msg("StringDownload started, from master to worker %r" % workerdest) self.descriptionDone = ["downloading to", os.path.basename(workerdest)] # setup structures for reading the file fileReader = remotetransfer.StringFileReader(self.s) # default arguments args = { 'maxsize': self.maxsize, 'reader': fileReader, 'blocksize': self.blocksize, 'workdir': self.workdir, 'mode': self.mode, } if self.workerVersionIsOlderThan('downloadFile', '3.0'): args['slavedest'] = workerdest else: args['workerdest'] = workerdest cmd = makeStatusRemoteCommand(self, 'downloadFile', args) res = yield self.runTransferCommand(cmd) return res
def start(self): # we use 'downloadFile' remote command on the slave self.checkSlaveHasCommand("downloadFile") # we are currently in the buildmaster's basedir, so any non-absolute # paths will be interpreted relative to that slavedest = self.slavedest log.msg("StringDownload started, from master to slave %r" % slavedest) self.descriptionDone = "downloading to %s" % os.path.basename( slavedest) # setup structures for reading the file fileReader = remotetransfer.StringFileReader(self.s) # default arguments args = { 'slavedest': slavedest, 'maxsize': self.maxsize, 'reader': fileReader, 'blocksize': self.blocksize, 'workdir': self.workdir, 'mode': self.mode, } cmd = makeStatusRemoteCommand(self, 'downloadFile', args) d = self.runTransferCommand(cmd) d.addCallback(self.finished).addErrback(self.failed)
def downloadFileContentToWorker(self, workerdest, strfile, abandonOnFailure=False, mode=None, workdir=None): if workdir is None: workdir = self.workdir self.checkWorkerHasCommand("downloadFile") fileReader = remotetransfer.StringFileReader(strfile) # default arguments args = { 'workdir': workdir, 'maxsize': None, 'mode': mode, 'reader': fileReader, 'blocksize': 32 * 1024, } if self.workerVersionIsOlderThan('downloadFile', '3.0'): args['slavedest'] = workerdest else: args['workerdest'] = workerdest def commandComplete(cmd): if cmd.didFail(): return None return fileReader return self.runRemoteCommand('downloadFile', args, abandonOnFailure=abandonOnFailure, evaluateCommand=commandComplete)
def _downloadFile(buf, filename): filereader = remotetransfer.StringFileReader(buf) args = { 'maxsize': None, 'reader': filereader, 'blocksize': 16 * 1024, 'workdir': self.workdir, 'mode': None } if self.workerVersionIsOlderThan('downloadFile', '3.0'): args['slavedest'] = filename else: args['workerdest'] = filename cmd = remotecommand.RemoteCommand('downloadFile', args) cmd.useLog(self.stdio_log, False) log.msg("Downloading file: %s" % (filename)) d = self.runCommand(cmd) @d.addCallback def evaluateCommand(_): if cmd.didFail(): raise buildstep.BuildStepFailed() return cmd.rc return d