def start(self): self.checkSlaveHasCommand("uploadDirectory") source = self.slavesrc masterdest = self.masterdest # we rely upon the fact that the buildmaster runs chdir'ed into its # basedir to make sure that relative paths in masterdest are expanded # properly. TODO: maybe pass the master's basedir all the way down # into the BuildStep so we can do this better. masterdest = os.path.expanduser(masterdest) log.msg("DirectoryUpload started, from slave %r to master %r" % (source, masterdest)) self.descriptionDone = "uploading %s" % os.path.basename(source) if self.url is not None: self.addURL(os.path.basename(masterdest), self.url) # we use maxsize to limit the amount of data on both sides dirWriter = remotetransfer.DirectoryWriter(masterdest, self.maxsize, self.compress, 0o600) # default arguments args = { 'slavesrc': source, 'workdir': self.workdir, 'writer': dirWriter, 'maxsize': self.maxsize, 'blocksize': self.blocksize, 'compress': self.compress } cmd = makeStatusRemoteCommand(self, 'uploadDirectory', args) d = self.runTransferCommand(cmd, dirWriter) d.addCallback(self.finished).addErrback(self.failed)
def uploadDirectory(self, source, masterdest): dirWriter = remotetransfer.DirectoryWriter(masterdest, self.maxsize, self.compress, 0o600) args = { 'slavesrc': source, 'workdir': self.workdir, 'writer': dirWriter, 'maxsize': self.maxsize, 'blocksize': self.blocksize, 'compress': self.compress } cmd = makeStatusRemoteCommand(self, 'uploadDirectory', args) return self.runTransferCommand(cmd, dirWriter)
def run(self): self.checkWorkerHasCommand("uploadDirectory") self.stdio_log = yield self.addLog("stdio") source = self.workersrc masterdest = self.masterdest # we rely upon the fact that the buildmaster runs chdir'ed into its # basedir to make sure that relative paths in masterdest are expanded # properly. TODO: maybe pass the master's basedir all the way down # into the BuildStep so we can do this better. masterdest = os.path.expanduser(masterdest) log.msg("DirectoryUpload started, from worker {} to master {}".format( repr(source), repr(masterdest))) self.descriptionDone = "uploading {}".format(os.path.basename(source)) if self.url is not None: urlText = self.urlText if urlText is None: urlText = os.path.basename(os.path.normpath(masterdest)) yield self.addURL(urlText, self.url) # we use maxsize to limit the amount of data on both sides dirWriter = remotetransfer.DirectoryWriter(masterdest, self.maxsize, self.compress, 0o600) # default arguments args = { 'workdir': self.workdir, 'writer': dirWriter, 'maxsize': self.maxsize, 'blocksize': self.blocksize, 'compress': self.compress } if self.workerVersionIsOlderThan('uploadDirectory', '3.0'): args['slavesrc'] = source else: args['workersrc'] = source cmd = makeStatusRemoteCommand(self, 'uploadDirectory', args) res = yield self.runTransferCommand(cmd, dirWriter) return res
def uploadDirectory(self, source, masterdest): dirWriter = remotetransfer.DirectoryWriter(masterdest, self.maxsize, self.compress, 0o600) args = { 'workdir': self.workdir, 'writer': dirWriter, 'maxsize': self.maxsize, 'blocksize': self.blocksize, 'compress': self.compress } if self.workerVersionIsOlderThan('uploadDirectory', '3.0'): args['slavesrc'] = source else: args['workersrc'] = source cmd = makeStatusRemoteCommand(self, 'uploadDirectory', args) return self.runTransferCommand(cmd, dirWriter)