Skip to content

Commit 828035e

Browse files
authored
Merge pull request #2091 from apache/jbilleter/remoteasset
Artifact cache fixes
2 parents 30145c6 + d3e8844 commit 828035e

File tree

1 file changed

+26
-15
lines changed

1 file changed

+26
-15
lines changed

src/buildstream/_artifactcache.py

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -288,28 +288,34 @@ def _push_artifact_blobs(self, artifact, artifact_digest, remote):
288288
artifact_proto = artifact._get_proto()
289289

290290
try:
291-
if str(artifact_proto.files):
291+
if artifact_proto.HasField("files"):
292292
self.cas._send_directory(remote, artifact_proto.files)
293293

294-
if str(artifact_proto.buildtree):
294+
if artifact_proto.HasField("buildtree"):
295295
try:
296296
self.cas._send_directory(remote, artifact_proto.buildtree)
297297
except FileNotFoundError:
298298
pass
299299

300-
if str(artifact_proto.buildroot):
300+
if artifact_proto.HasField("sources"):
301+
try:
302+
self.cas._send_directory(remote, artifact_proto.sources)
303+
except FileNotFoundError:
304+
pass
305+
306+
if artifact_proto.HasField("buildroot"):
301307
try:
302308
self.cas._send_directory(remote, artifact_proto.buildroot)
303309
except FileNotFoundError:
304310
pass
305311

306-
if artifact_proto.buildsandbox:
312+
if artifact_proto.HasField("buildsandbox"):
307313
for subsandbox_digest in artifact_proto.buildsandbox.subsandbox_digests:
308314
self.cas._send_directory(remote, subsandbox_digest)
309315

310316
digests = [artifact_digest, artifact_proto.low_diversity_meta, artifact_proto.high_diversity_meta]
311317

312-
if str(artifact_proto.public_data):
318+
if artifact_proto.HasField("public_data"):
313319
digests.append(artifact_proto.public_data)
314320

315321
for log_file in artifact_proto.logs:
@@ -357,22 +363,25 @@ def _push_artifact_proto(self, element, artifact, artifact_digest, remote):
357363
raise ArtifactError("{}".format(e), temporary=True) from e
358364

359365
referenced_directories = []
360-
if artifact_proto.files:
366+
if artifact_proto.HasField("files"):
361367
referenced_directories.append(artifact_proto.files)
362-
if artifact_proto.buildtree:
368+
if artifact_proto.HasField("buildtree"):
363369
referenced_directories.append(artifact_proto.buildtree)
364-
if artifact_proto.sources:
370+
if artifact_proto.HasField("sources"):
365371
referenced_directories.append(artifact_proto.sources)
366-
if artifact_proto.buildroot:
372+
if artifact_proto.HasField("buildroot"):
367373
referenced_directories.append(artifact_proto.buildroot)
368-
if artifact_proto.buildsandbox:
374+
if artifact_proto.HasField("buildsandbox"):
369375
for subsandbox_digest in artifact_proto.buildsandbox.subsandbox_digests:
370376
referenced_directories.append(subsandbox_digest)
371377

372378
referenced_blobs = [artifact_proto.low_diversity_meta, artifact_proto.high_diversity_meta] + [
373379
log_file.digest for log_file in artifact_proto.logs
374380
]
375381

382+
if artifact_proto.HasField("public_data"):
383+
referenced_blobs.append(artifact_proto.public_data)
384+
376385
try:
377386
remote.push_blob(
378387
uris,
@@ -418,20 +427,22 @@ def _pull_artifact_storage(self, element, key, artifact_digest, remote, pull_bui
418427
with utils.save_file_atomic(artifact_path, mode="wb") as f:
419428
f.write(artifact.SerializeToString())
420429

421-
if str(artifact.files):
430+
if artifact.HasField("files"):
422431
self.cas.fetch_directory(remote, artifact.files)
423432

424433
if pull_buildtrees:
425-
if str(artifact.buildtree):
434+
if artifact.HasField("buildtree"):
426435
self.cas.fetch_directory(remote, artifact.buildtree)
427-
if str(artifact.buildroot):
436+
if artifact.HasField("sources"):
437+
self.cas.fetch_directory(remote, artifact.sources)
438+
if artifact.HasField("buildroot"):
428439
self.cas.fetch_directory(remote, artifact.buildroot)
429-
if artifact.buildsandbox:
440+
if artifact.HasField("buildsandbox"):
430441
for subsandbox_digest in artifact.buildsandbox.subsandbox_digests:
431442
self.cas.fetch_directory(remote, subsandbox_digest)
432443

433444
digests = [artifact.low_diversity_meta, artifact.high_diversity_meta]
434-
if str(artifact.public_data):
445+
if artifact.HasField("public_data"):
435446
digests.append(artifact.public_data)
436447

437448
for log_digest in artifact.logs:

0 commit comments

Comments
 (0)