Handle another chunk of streaming data.
(self, marshalled)
| 3233 | self.largeFileSystem.removeLargeFile(relPath) |
| 3234 | |
| 3235 | def streamP4FilesCb(self, marshalled): |
| 3236 | """Handle another chunk of streaming data.""" |
| 3237 | |
| 3238 | # catch p4 errors and complain |
| 3239 | err = None |
| 3240 | if "code" in marshalled: |
| 3241 | if marshalled["code"] == "error": |
| 3242 | if "data" in marshalled: |
| 3243 | err = marshalled["data"].rstrip() |
| 3244 | |
| 3245 | if not err and 'fileSize' in self.stream_file: |
| 3246 | required_bytes = int((4 * int(self.stream_file["fileSize"])) - calcDiskFree()) |
| 3247 | if required_bytes > 0: |
| 3248 | err = 'Not enough space left on %s! Free at least %s.' % ( |
| 3249 | os.getcwd(), format_size_human_readable(required_bytes)) |
| 3250 | |
| 3251 | if err: |
| 3252 | f = None |
| 3253 | if self.stream_have_file_info: |
| 3254 | if "depotFile" in self.stream_file: |
| 3255 | f = self.stream_file["depotFile"] |
| 3256 | try: |
| 3257 | # force a failure in fast-import, else an empty |
| 3258 | # commit will be made |
| 3259 | self.gitStream.write("\n") |
| 3260 | self.gitStream.write("die-now\n") |
| 3261 | self.gitStream.close() |
| 3262 | # ignore errors, but make sure it exits first |
| 3263 | self.importProcess.wait() |
| 3264 | finally: |
| 3265 | if f: |
| 3266 | die("Error from p4 print for %s: %s" % (f, err)) |
| 3267 | else: |
| 3268 | die("Error from p4 print: %s" % err) |
| 3269 | |
| 3270 | if 'depotFile' in marshalled and self.stream_have_file_info: |
| 3271 | # start of a new file - output the old one first |
| 3272 | self.streamOneP4File(self.stream_file, self.stream_contents) |
| 3273 | self.stream_file = {} |
| 3274 | self.stream_contents = [] |
| 3275 | self.stream_have_file_info = False |
| 3276 | |
| 3277 | # pick up the new file information... for the |
| 3278 | # 'data' field we need to append to our array |
| 3279 | for k in marshalled.keys(): |
| 3280 | if k == 'data': |
| 3281 | if 'streamContentSize' not in self.stream_file: |
| 3282 | self.stream_file['streamContentSize'] = 0 |
| 3283 | self.stream_file['streamContentSize'] += len(marshalled['data']) |
| 3284 | self.stream_contents.append(marshalled['data']) |
| 3285 | else: |
| 3286 | self.stream_file[k] = marshalled[k] |
| 3287 | |
| 3288 | if (verbose and |
| 3289 | 'streamContentSize' in self.stream_file and |
| 3290 | 'fileSize' in self.stream_file and |
| 3291 | 'depotFile' in self.stream_file): |
| 3292 | size = int(self.stream_file["fileSize"]) |
no test coverage detected