fix(deadline): fix type assumption in configure_identity_registration_settings.py error handling #612
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
In #604, we added error-handling when the Deadline version supplied to the
RenderQueue
did not include the required Deadline commands to manage Deadline identity registration settings.This error handling introduced a regression since in the happy path, the JSON serialization returns a python
list
and not adict
. When a compatible Deadline version is supplied, the following error was emitted in the/renderfarm/ConfigureRepository
CloudWatch log group:Traceback (most recent call last): File "/home/ec2-user/configure_identity_registration_settings.py", line 618, in <module> __main__(*sys.argv[1:]) File "/home/ec2-user/configure_identity_registration_settings.py", line 613, in __main__ apply_registration_settings(config) File "/home/ec2-user/configure_identity_registration_settings.py", line 594, in apply_registration_settings prior_rfdk_settings = get_rfdk_registration_settings(dl_secrets) File "/home/ec2-user/configure_identity_registration_settings.py", line 388, in get_rfdk_registration_settings for registration_setting in dl_secrets.run_json('GetLoadBalancerIdentityRegistrationSettings') File "/home/ec2-user/configure_identity_registration_settings.py", line 303, in run_json if 'ok' in result.keys(): AttributeError: 'list' object has no attribute 'keys'
Solution
A type-check was added to first check if the resulting object is a
dict
before checking its keys.Testing
Deployed the
All-In-AWS-Infrastructure-Basic
TypeScript example app with both code paths:Happy Case
In the happy case, the deployment succeeds and identity registration settings are created successfully.
Unsupported Deadline Client Case
In the case where the Deadline version does not support the correct commands, the python script catches the error and fails the deployment. In the CloudWatch log group, the following is shown:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license