Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions opensafely/jobrunner/executors/volumes.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,18 @@ def delete_volume(job):
docker.delete_volume(docker_volume_name(job))

def write_timestamp(job, path, timeout=None):
with tempfile.NamedTemporaryFile() as f:
p = Path(f.name)
# Note: writing to a temporary file while there's already a handle open to it
# is fine on unix, but sometimes errors on Windows, so we use a temp directory
# here instead of opening/writing to a temp file directly.
with tempfile.TemporaryDirectory() as tmpdir:
p = Path(tmpdir) / "timestamp"
p.write_text(str(time.time_ns()))
docker.copy_to_volume(docker_volume_name(job), p, path, timeout)
docker.copy_to_volume(
docker_volume_name(job),
p,
path,
timeout,
)

def read_timestamp(job, path, timeout=None):
return docker.read_timestamp(docker_volume_name(job), path, timeout)
Expand Down