4 weeks agoFix "invalid UTF-8" test failure on Windows master v2.7
Sybren A. Stüvel [Fri, 24 Sep 2021 12:49:04 +0000 (14:49 +0200)]
Fix "invalid UTF-8" test failure on Windows

On Windows an extra line "exec: Process pid=... exited with status code 0"
is reported after terminating the subprocess. This isn't relevant for
the `text_exec_invalid_utf` test, so the extra line is just ignored.

No functional changes.

4 weeks agoFix Windows paths being reported to `/output-produced` endpoint
Sybren A. Stüvel [Fri, 24 Sep 2021 11:01:43 +0000 (13:01 +0200)]
Fix Windows paths being reported to `/output-produced` endpoint

4 weeks agoFix progressive render compatibility with Cycles X / Blender 3.0
Sybren A. Stüvel [Fri, 24 Sep 2021 09:50:05 +0000 (11:50 +0200)]
Fix progressive render compatibility with Cycles X / Blender 3.0

4 weeks agoBumped version to 2.7
Sybren A. Stüvel [Fri, 24 Sep 2021 09:24:48 +0000 (11:24 +0200)]
Bumped version to 2.7

4 weeks agoCHANGELOG: mark version 2.7 as released
Sybren A. Stüvel [Fri, 24 Sep 2021 09:17:00 +0000 (11:17 +0200)]
CHANGELOG: mark version 2.7 as released

4 weeks agoREADME: update signal documentation
Sybren A. Stüvel [Fri, 24 Sep 2021 09:16:05 +0000 (11:16 +0200)]
README: update signal documentation

3 months agoBumped version to 2.7b1
Sybren A. Stüvel [Mon, 12 Jul 2021 14:14:54 +0000 (16:14 +0200)]
Bumped version to 2.7b1

3 months agoUpdate changelog
Sybren A. Stüvel [Mon, 12 Jul 2021 14:14:41 +0000 (16:14 +0200)]
Update changelog

3 months agoFixed worker registration
Sybren A. Stüvel [Mon, 12 Jul 2021 14:14:01 +0000 (16:14 +0200)]
Fixed worker registration

A recent update of the JWT package made it return the JWT token as string,
instead of as bytes.

3 months agoReport web-preview-friendly output when produced
Sybren A. Stüvel [Mon, 12 Jul 2021 11:11:52 +0000 (13:11 +0200)]
Report web-preview-friendly output when produced

When multiple versions of the same frame are generated (like EXR and
JPG), always report the most web-preview-friendly version.

In other words, when the frames are produces by Blender in the order
(`frame-001.jpg`, `frame-001.exr`), only the JPEG is reported. When the
JPEG follows the EXR, both will be reported as when the EXR is created
it is not yet know whether it will be followed by a JPEG or not.

Before this, the 2nd file would never be reported due to the Worker
throttling such reports to the Manager (to not swamp it when rendering
sequences of images, for example).

3 months agoGracefully handle test case where there logging but no subprocess started
Sybren A. Stüvel [Mon, 12 Jul 2021 11:07:34 +0000 (13:07 +0200)]
Gracefully handle test case where there logging but no subprocess started

Handle the case where `self.proc` is `None` in
`AbstractBlenderCommand.process_line()`, such that it's easier to test.

3 months agoBumped version to 2.7b0
Sybren A. Stüvel [Mon, 12 Jul 2021 10:37:10 +0000 (12:37 +0200)]
Bumped version to 2.7b0

3 months agoBumped version to 2.6 v2.6
Sybren A. Stüvel [Mon, 12 Jul 2021 08:16:45 +0000 (10:16 +0200)]
Bumped version to 2.6

3 months agoPanic when older subprocess is detected running
Sybren A. Stüvel [Fri, 9 Jul 2021 12:21:35 +0000 (14:21 +0200)]
Panic when older subprocess is detected running

Panic when an older subprocess is already running when trying to start a
new subprocess. This situation was already detected, but instead of
failing the current task (and keeping the Worker running), the Worker
now shuts down completely. When running as a systemd service, the Worker
will automatically be restarted.

When this panic occurs, the Worker still signs off at the Manager,
causing its current task to be returned to the queue. That way another
Worker (or this one, after the restart) can retry it.

This is basically a hack to work around the issue that sometimes Blender
is running twice on the same machine.

3 months agoReplace some Dutch test values with some other Dutch test value
Sybren A. Stüvel [Fri, 9 Jul 2021 10:57:15 +0000 (12:57 +0200)]
Replace some Dutch test values with some other Dutch test value

3 months agoFix compatibility with newer MyPY
Sybren A. Stüvel [Fri, 9 Jul 2021 10:43:23 +0000 (12:43 +0200)]
Fix compatibility with newer MyPY

No functional changes.

3 months agoAdd type-requests dependency, for mypy checking `requests`
Sybren A. Stüvel [Fri, 9 Jul 2021 10:37:06 +0000 (12:37 +0200)]
Add type-requests dependency, for mypy checking `requests`

3 months agoUpgrade & re-lock dependencies, allow PyTest >= 4
Sybren A. Stüvel [Fri, 9 Jul 2021 10:23:43 +0000 (12:23 +0200)]
Upgrade & re-lock dependencies, allow PyTest >= 4

PyTest was limited to version 3.x due to the pytest-cov plugin not being
upgraded. By now PyTest is at vesion 6, so it's time to move forward.

3 months agoUpdate update_version.sh for double quotes in Python
Sybren A. Stüvel [Fri, 9 Jul 2021 12:24:37 +0000 (14:24 +0200)]
Update update_version.sh for double quotes in Python

Update update_version.sh for double quotes in Python, as that's what
Black changes all quotes to.

3 months agoCleanup: reformat with Black
Sybren A. Stüvel [Fri, 9 Jul 2021 10:02:52 +0000 (12:02 +0200)]
Cleanup: reformat with Black

Reformat the entire project with Black.

No functional changes.

3 months agoBumped version to 2.6b0
Sybren A. Stüvel [Fri, 9 Jul 2021 12:22:50 +0000 (14:22 +0200)]
Bumped version to 2.6b0

14 months agoFixed typo in CHANGELOG.md
Sybren A. Stüvel [Mon, 27 Jul 2020 12:18:24 +0000 (14:18 +0200)]
Fixed typo in CHANGELOG.md

19 months agoBumped version to 2.5 v2.5
Sybren A. Stüvel [Thu, 12 Mar 2020 11:30:21 +0000 (12:30 +0100)]
Bumped version to 2.5

19 months agoRemove `LD_LIBRARY_PATH` environment variable for subprocess
Sybren A. Stüvel [Thu, 12 Mar 2020 11:29:53 +0000 (12:29 +0100)]
Remove `LD_LIBRARY_PATH` environment variable for subprocess

When running Flamenco Worker from the distribution package, it actually
runs a bundled Python with its own libraries. This is done by setting the
`LD_LIBRARY_PATH` environment variable. Subprocesses inherit this variable,
causing library conflicts (mostly libz) when running Blender or FFmpeg.

19 months agoBumped version to 2.5-dev0
Sybren A. Stüvel [Thu, 12 Mar 2020 11:27:52 +0000 (12:27 +0100)]
Bumped version to 2.5-dev0

2 years agoUse tempdir in progressive render unit test v2.4
Sybren A. Stüvel [Wed, 23 Oct 2019 11:45:32 +0000 (13:45 +0200)]
Use tempdir in progressive render unit test

The test was failing because the directory /some couldn't be created.

2 years agoMore precise timing for `sleep` command.
Sybren A. Stüvel [Wed, 23 Oct 2019 11:37:13 +0000 (13:37 +0200)]
More precise timing for `sleep` command.

Apparently on Windows it's possible for `asyncio.sleep()` to sleep less
than the desired time.

2 years agoUse POSIX path on Windows in `--exr-glob` parameter for Blender
Sybren A. Stüvel [Wed, 23 Oct 2019 11:35:23 +0000 (13:35 +0200)]
Use POSIX path on Windows in `--exr-glob` parameter for Blender

2 years agoBumped version to 2.4
Sybren A. Stüvel [Tue, 22 Oct 2019 16:11:41 +0000 (18:11 +0200)]
Bumped version to 2.4

2 years agoMarked 2.4 as released in CHANGELOG.md
Sybren A. Stüvel [Tue, 22 Oct 2019 16:11:37 +0000 (18:11 +0200)]
Marked 2.4 as released in CHANGELOG.md

2 years agoRemoved the pre-task checks from the default settings
Sybren A. Stüvel [Sat, 19 Oct 2019 14:05:40 +0000 (16:05 +0200)]
Removed the pre-task checks from the default settings

They were very specific to the Blender Institute infrastructure.

2 years agoAdded `video-encoding` to the default settings
Sybren A. Stüvel [Sat, 19 Oct 2019 14:05:06 +0000 (16:05 +0200)]
Added `video-encoding` to the default settings

Since it requires FFmpeg to be available to the Worker, it was disabled
by default. However, it's the only task type that was disabled by default,
and having everything on is probably easier for new installations.
Furthermore, the `blender-render` task type also requires external software
(namely Blender), but that wasn't disabled by default.

2 years agoBumped 2.3.1 release date to 'now' v2.3.1
Sybren A. Stüvel [Fri, 3 May 2019 14:30:13 +0000 (16:30 +0200)]
Bumped 2.3.1 release date to 'now'

2 years agoExtra checks on the `manager_url` configuration value
Sybren A. Stüvel [Fri, 3 May 2019 14:30:02 +0000 (16:30 +0200)]
Extra checks on the `manager_url` configuration value

It's easy to get the value wrong, and it's hard to diagnose when that

2 years agoUpdated CHANGELOG
Sybren A. Stüvel [Wed, 24 Apr 2019 16:11:27 +0000 (18:11 +0200)]

2 years agoBumped version to 2.3.1
Sybren A. Stüvel [Wed, 24 Apr 2019 16:11:17 +0000 (18:11 +0200)]
Bumped version to 2.3.1

2 years agoCopy command: ignore errors copying file modes
Sybren A. Stüvel [Wed, 24 Apr 2019 16:10:33 +0000 (18:10 +0200)]
Copy command: ignore errors copying file modes

The `shutil.copy()` function calls `shutil.copyfile()` and
`shutil.copymode()`, and fails when either fails. By calling those
functions separately we can ignore errors copying the file mode (this
happens on SMB shares, for example).

2 years agoCopy cmd: Clearer error message when unlinking a destination file fails
Sybren A. Stüvel [Wed, 24 Apr 2019 16:09:12 +0000 (18:09 +0200)]
Copy cmd: Clearer error message when unlinking a destination file fails

2 years agoMoved `self.log()` from `AbstractSubprocessCommand` to `AbstractCommand`
Sybren A. Stüvel [Wed, 24 Apr 2019 16:08:46 +0000 (18:08 +0200)]
Moved `self.log()` from `AbstractSubprocessCommand` to `AbstractCommand`

2 years agoUpgraded dependencies (mostly to fix security issue in urllib3)
Sybren A. Stüvel [Wed, 24 Apr 2019 15:53:24 +0000 (17:53 +0200)]
Upgraded dependencies (mostly to fix security issue in urllib3)

See CVE-2019-11324.

The urllib3 library before 1.24.2 for Python mishandles certain cases
where the desired set of CA certificates is different from the OS store
of CA certificates, which results in SSL connections succeeding in
situations where a verification failure is the correct outcome. This is
related to use of the ssl_context, ca_certs, or ca_certs_dir argument.

2 years agoCopy file: delete destination if it exists, before copying
Sybren A. Stüvel [Wed, 24 Apr 2019 15:48:04 +0000 (17:48 +0200)]
Copy file: delete destination if it exists, before copying

Copying onto a file that already exists isn't allowed when handling files
on a Microsoft SMB share.

2 years agoBumped version to 2.3 v2.3
Sybren A. Stüvel [Mon, 25 Mar 2019 15:33:45 +0000 (16:33 +0100)]
Bumped version to 2.3

2 years agoMarked version 2.3 as released
Sybren A. Stüvel [Mon, 25 Mar 2019 15:33:15 +0000 (16:33 +0100)]
Marked version 2.3 as released

2 years agoBumped version to 2.3-dev9
Sybren A. Stüvel [Tue, 19 Mar 2019 14:53:39 +0000 (15:53 +0100)]
Bumped version to 2.3-dev9

2 years agoFormatting
Sybren A. Stüvel [Tue, 19 Mar 2019 14:45:37 +0000 (15:45 +0100)]

2 years agoFixed MyPy issues
Sybren A. Stüvel [Tue, 19 Mar 2019 14:45:33 +0000 (15:45 +0100)]
Fixed MyPy issues

2 years agoSupport authenticated registration at Flamenco Manager
Sybren A. Stüvel [Tue, 19 Mar 2019 14:41:11 +0000 (15:41 +0100)]
Support authenticated registration at Flamenco Manager

To secure the previously-open-to-anyone worker registration on the Flamenco
Manager, we now have to send a JWT token that was signed by a pre-shared
secret. To enable this behaviour, set `worker_registration_secret` both
in the Worker and the Manager configuration files to the same string.

2 years agoChanged CRF for create_video tasks from 23 to 20
Sybren A. Stüvel [Wed, 13 Mar 2019 16:11:52 +0000 (17:11 +0100)]
Changed CRF for create_video tasks from 23 to 20

We need less compression for the Spring edit.

2 years agoUse YUV420p when creating videos from images using FFmpeg
Sybren A. Stüvel [Tue, 12 Mar 2019 16:28:49 +0000 (17:28 +0100)]
Use YUV420p when creating videos from images using FFmpeg

This prevents crushed blacks & highlights when using JPEG as input, as
then FFmpeg defaults to yuvj420p, which uses a 0-255 range instead of
16-235 (at least according to [1]).

[1] https://www.eoshd.com/comments/topic/20799-what-is-the-difference-between-yuvj420p-and-yuv420p/

2 years agoTranslate `OPEN_EXR` DNA image format enum to `EXR` for CLI
Sybren A. Stüvel [Tue, 12 Mar 2019 13:18:04 +0000 (14:18 +0100)]
Translate `OPEN_EXR` DNA image format enum to `EXR` for CLI

Blender's `--render-format` CLI parameter generally takes the same names
as the `bpy.context.scene.render.image_settings.file_format` DNA parameter,
except when it comes to OpenEXR.

See https://developer.blender.org/D4502 for a proposal to make this

2 years agoBumped version to 2.3-dev8
Sybren A. Stüvel [Tue, 12 Mar 2019 12:24:59 +0000 (13:24 +0100)]
Bumped version to 2.3-dev8

2 years agoMore logging to the task log, especially when killing a subprocess
Sybren A. Stüvel [Tue, 12 Mar 2019 11:50:07 +0000 (12:50 +0100)]
More logging to the task log, especially when killing a subprocess

2 years agoPlaced timing info collector in a separate class
Sybren A. Stüvel [Fri, 22 Feb 2019 09:42:05 +0000 (10:42 +0100)]
Placed timing info collector in a separate class

Previously the code was spread out through the `TaskRunner` and
`AbstractCommand` classes. Now it's in a class of its own and properly

Also, the timing info is now sent as one line in the task log, making it
less spammy.

2 years agoBumped version to 2.3-dev7
Sybren A. Stüvel [Thu, 21 Feb 2019 16:58:35 +0000 (17:58 +0100)]
Bumped version to 2.3-dev7

2 years agoException handling in the may-i-run loop
Sybren A. Stüvel [Thu, 21 Feb 2019 17:06:37 +0000 (18:06 +0100)]
Exception handling in the may-i-run loop

2 years agoUpload task timing metrics as part of the task update
Sybren A. Stüvel [Thu, 21 Feb 2019 16:18:30 +0000 (17:18 +0100)]
Upload task timing metrics as part of the task update

2 years agoLog uncaught exceptions in may-i-run poller
Sybren A. Stüvel [Thu, 21 Feb 2019 15:16:20 +0000 (16:16 +0100)]
Log uncaught exceptions in may-i-run poller

2 years agoLog command & task timing information
Sybren A. Stüvel [Thu, 21 Feb 2019 14:45:46 +0000 (15:45 +0100)]
Log command & task timing information

For now every command logs its total runtime. The `AbstractBlenderCommand`
subclasses log more granular information, like starting blender, loading
the blendfile, and rendering.

This info is just sent to the task log, and not stored in the task itself

2 years agoFix for 07263c3
Sybren A. Stüvel [Thu, 14 Feb 2019 12:08:34 +0000 (13:08 +0100)]
Fix for 07263c3

2 years agoBumped version to 2.3-dev6
Sybren A. Stüvel [Thu, 14 Feb 2019 11:49:49 +0000 (12:49 +0100)]
Bumped version to 2.3-dev6

2 years agoFix fatal exception when unable to connect to Manager
Sybren A. Stüvel [Thu, 14 Feb 2019 11:46:00 +0000 (12:46 +0100)]
Fix fatal exception when unable to connect to Manager

2 years agoRemove filtering of Cycles 'Synchronizing object' lines
Sybren A. Stüvel [Thu, 14 Feb 2019 11:44:21 +0000 (12:44 +0100)]
Remove filtering of Cycles 'Synchronizing object' lines

Nowadays we send the logs only to the Manager, and not to the Server any
more. Let's clog the Manager's harddisk with everything to make Dr. Debug

2 years agoBumped version to 2.3-dev5
Sybren A. Stüvel [Wed, 13 Feb 2019 09:58:04 +0000 (10:58 +0100)]
Bumped version to 2.3-dev5

2 years agoFix for 26701be6fb95fccb70ddb141563453c19e0a3b06
Sybren A. Stüvel [Wed, 13 Feb 2019 09:57:24 +0000 (10:57 +0100)]
Fix for 26701be6fb95fccb70ddb141563453c19e0a3b06

2 years agoBumped version to 2.3-dev4
Sybren A. Stüvel [Wed, 13 Feb 2019 09:48:48 +0000 (10:48 +0100)]
Bumped version to 2.3-dev4

2 years agoAutomatically re-register when the Manager does not accept credentials
Sybren A. Stüvel [Wed, 13 Feb 2019 09:48:38 +0000 (10:48 +0100)]
Automatically re-register when the Manager does not accept credentials

Fixes T54174, but rather than making a distinction between the username
not being found and the password being wrong (and only re-registering in
the former case), we now just always re-register. This could potentially
hide certain erroneous situations, but it does make the worker operational
in more cases, which I assume is generally preferred.

2 years agoBumped version to 2.3-dev3
Sybren A. Stüvel [Thu, 7 Feb 2019 14:27:12 +0000 (15:27 +0100)]
Bumped version to 2.3-dev3

2 years agoAdded `merge_progressive_render_sequence` command
Sybren A. Stüvel [Tue, 5 Feb 2019 12:04:00 +0000 (13:04 +0100)]
Added `merge_progressive_render_sequence` command

Added the `merge_progressive_render_sequence` for sample-merging sequences of EXR files. The
already-existing `merge_progressive_renders` command only performed on one frame at a time.

This commit also removes the last traces of the preview generation that
half-happened while merging. It was intrinsincly flawed and was superseded
by the `exr_sequence_to_jpeg` command.

2 years agoBumped version to 2.3-dev2
Sybren A. Stüvel [Mon, 4 Feb 2019 10:22:21 +0000 (11:22 +0100)]
Bumped version to 2.3-dev2

2 years agoCreate Video: mock platform.system() to test both Windows and Linux
Sybren A. Stüvel [Mon, 4 Feb 2019 10:21:56 +0000 (11:21 +0100)]
Create Video: mock platform.system() to test both Windows and Linux

Windows is not POSIX-compliant, and as a result ffmpeg does not support
the `-pattern_type glob` CLI argument.

2 years agoCreate Video: always pad video to even sizes
Sybren A. Stüvel [Mon, 4 Feb 2019 10:15:57 +0000 (11:15 +0100)]
Create Video: always pad video to even sizes

H.264 requires that the width and height of the video frame are
multiples of the chroma block size. When using the default yuv420 pixel
format this means the dimensions should be even (e.g. multiples of 2).
The video filter added in this commit ensures this by padding out the
frame with black pixels.

2 years agoBumped version to 2.3-dev1
Sybren A. Stüvel [Fri, 1 Feb 2019 10:00:30 +0000 (11:00 +0100)]
Bumped version to 2.3-dev1

2 years agoEXR to JPEG: Pass EXR files as glob instead of only the directory
Sybren A. Stüvel [Fri, 1 Feb 2019 09:45:00 +0000 (10:45 +0100)]
EXR to JPEG: Pass EXR files as glob instead of only the directory

This allows the command to run on a subset of the EXR files in the
directory, which is needed for generating previews of EXR files in the
intermediate render directory (which contains multiple EXR files for
each frame).

2 years agoUpdated flamenco-worker.spec for resources directory
Sybren A. Stüvel [Thu, 31 Jan 2019 13:21:25 +0000 (14:21 +0100)]
Updated flamenco-worker.spec for resources directory

2 years agoAdded 'EXR sequence to JPEG' command
Sybren A. Stüvel [Thu, 31 Jan 2019 10:35:13 +0000 (11:35 +0100)]
Added 'EXR sequence to JPEG' command

This is used for generating JPEG previews of EXR files. It is assumed that
the EXR files are named '######.exr', with any number of leading zeroes.

Gaps in the frame range are supported, and will be rendered as black

2 years agoSeparated BlenderRenderCommand into an abstract superclass
Sybren A. Stüvel [Thu, 31 Jan 2019 10:33:21 +0000 (11:33 +0100)]
Separated BlenderRenderCommand into an abstract superclass

This superclass AbstractBlenderCommand takes less parameters so that it'll
be easier to add Blender commands that don't use certain parameters (such
as frame range, render format, etc.)

2 years agoAdded some type declarations
Sybren A. Stüvel [Thu, 31 Jan 2019 10:30:32 +0000 (11:30 +0100)]
Added some type declarations

2 years agoDeclare we're using Python 3.7 in setup.py
Sybren A. Stüvel [Thu, 31 Jan 2019 10:29:50 +0000 (11:29 +0100)]
Declare we're using Python 3.7 in setup.py

It was still set to 3.5.

2 years agoMoved 'merge-exr.blend' into a 'resources' subdirectory
Sybren A. Stüvel [Thu, 31 Jan 2019 10:29:28 +0000 (11:29 +0100)]
Moved 'merge-exr.blend' into a 'resources' subdirectory

We'll be adding more resources, and this provides a suitable place for them.

2 years agoUpdated progressive rendering to allow sample chunk ranges
Sybren A. Stüvel [Wed, 30 Jan 2019 13:34:42 +0000 (14:34 +0100)]
Updated progressive rendering to allow sample chunk ranges

This requires Flamenco Server 2.2 or newer. Progressive render jobs
generated by older versions of Flamenco Server are no longer supported.

2 years agoBumped version to 2.3-dev0
Sybren A. Stüvel [Thu, 31 Jan 2019 13:16:11 +0000 (14:16 +0100)]
Bumped version to 2.3-dev0

2 years agoBumped version to 2.2.1 v2.2.1
Sybren A. Stüvel [Mon, 14 Jan 2019 10:39:32 +0000 (11:39 +0100)]
Bumped version to 2.2.1

2 years agoUpdated changelog
Sybren A. Stüvel [Mon, 14 Jan 2019 10:39:24 +0000 (11:39 +0100)]
Updated changelog

2 years agoAdded shutdown check to sleep state to prevent infinite loops
Sybren A. Stüvel [Mon, 14 Jan 2019 10:30:39 +0000 (11:30 +0100)]
Added shutdown check to sleep state to prevent infinite loops

2 years agoPrevent uncaught CancelledError to force an awakening of the Worker
Sybren A. Stüvel [Mon, 14 Jan 2019 10:20:09 +0000 (11:20 +0100)]
Prevent uncaught CancelledError to force an awakening of the Worker

2 years agoBumped version to 2.2.1-dev0
Sybren A. Stüvel [Mon, 14 Jan 2019 10:03:13 +0000 (11:03 +0100)]
Bumped version to 2.2.1-dev0

2 years agoFixed bug where uncaught exception made the Worker stop requesting tasks
Sybren A. Stüvel [Mon, 14 Jan 2019 10:02:41 +0000 (11:02 +0100)]
Fixed bug where uncaught exception made the Worker stop requesting tasks

2 years agoBumped release date of 2.2 to today v2.2
Sybren A. Stüvel [Fri, 11 Jan 2019 09:59:42 +0000 (10:59 +0100)]
Bumped release date of 2.2 to today

2 years agoDocumented installation of ffprobe and blender
Sybren A. Stüvel [Fri, 11 Jan 2019 09:59:21 +0000 (10:59 +0100)]
Documented installation of ffprobe and blender

2 years agoRemoved mypy warn_unused_ignores=True setting windows-fixes
Sybren A. Stüvel [Thu, 10 Jan 2019 16:42:04 +0000 (17:42 +0100)]
Removed mypy warn_unused_ignores=True setting

Some errors are platform-specific (e.g. using asyncio.ProactorEventLoop
only exists on Windows and thus mypy complains on Linux) so ignoring those
is needed on Linux but not on Windows. Yay.

2 years agoAlso catch FileNotFoundError when doing a write check
Sybren A. Stüvel [Thu, 10 Jan 2019 16:17:20 +0000 (17:17 +0100)]
Also catch FileNotFoundError when doing a write check

This error is raised when the parent directory of a write check location
doesn't exist.

2 years agoLog error on uncaught exception in Worker.single_iteration()
Sybren A. Stüvel [Thu, 10 Jan 2019 16:16:11 +0000 (17:16 +0100)]
Log error on uncaught exception in Worker.single_iteration()

2 years agoMypy workaround, Windows-specific code fails mypy checks on Linux
Sybren A. Stüvel [Thu, 10 Jan 2019 15:44:27 +0000 (16:44 +0100)]
Mypy workaround, Windows-specific code fails mypy checks on Linux

2 years agoProperly create the asyncio loop on Windows
Sybren A. Stüvel [Thu, 10 Jan 2019 15:40:11 +0000 (16:40 +0100)]
Properly create the asyncio loop on Windows

On Windows, the loop was recreated on every call to `construct_asyncio_loop()`,
whereas on Linux the existing loop would be reused if possible. Now both
platforms work the same.

2 years agoUse less shell-uoting-sensitive test values
Sybren A. Stüvel [Thu, 10 Jan 2019 15:19:07 +0000 (16:19 +0100)]
Use less shell-uoting-sensitive test values

The new values work on Windows too.

2 years agoDisconnect from SQLite DB when tearing down tests
Sybren A. Stüvel [Thu, 10 Jan 2019 15:18:34 +0000 (16:18 +0100)]
Disconnect from SQLite DB when tearing down tests

This allows the temp directory to be cleaned up on Windows.

2 years agoSkip unwritable dir/file checks on Windows
Sybren A. Stüvel [Thu, 10 Jan 2019 15:23:37 +0000 (16:23 +0100)]
Skip unwritable dir/file checks on Windows

On Windows Python just hangs because of a misinterpretation of the
returned error. See https://bugs.python.org/issue22107

2 years agoMake test file writable before trying to delete it
Sybren A. Stüvel [Thu, 10 Jan 2019 14:53:25 +0000 (15:53 +0100)]
Make test file writable before trying to delete it

Otherwise Windows doesn't allow deletion.

2 years agoEnable debug logging in flamenco_worker.commands while testing commands
Sybren A. Stüvel [Thu, 10 Jan 2019 14:01:57 +0000 (15:01 +0100)]
Enable debug logging in flamenco_worker.commands while testing commands

2 years agoWindows compatibility: don't try to re-open temporary file
Sybren A. Stüvel [Thu, 10 Jan 2019 14:01:36 +0000 (15:01 +0100)]
Windows compatibility: don't try to re-open temporary file