-
Notifications
You must be signed in to change notification settings - Fork 1.7k
keycloak_realm_localization: new module - realm localization control #10841
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
keycloak_realm_localization: new module - realm localization control #10841
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
Eh, I forgot to run the sanity tests beforehand. I will try to fix those
over the next week.
Dne pá 19. 9. 2025 14:21 uživatel Ansibullbot manages ticket workflow <
***@***.***> napsal:
… *ansibullbot* left a comment (ansible-collections/community.general#10841)
<#10841 (comment)>
The test ansible-test sanity --test pep8 [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/pep8.html>]
failed with 8 errors:
plugins/module_utils/identity/keycloak/keycloak.py:598:32: E127: continuation line over-indented for visual indent
plugins/module_utils/identity/keycloak/keycloak.py:625:32: E127: continuation line over-indented for visual indent
plugins/module_utils/identity/keycloak/keycloak.py:648:32: E127: continuation line over-indented for visual indent
plugins/modules/keycloak_realm_localization.py:2:1: E265: block comment should start with '# '
plugins/modules/keycloak_realm_localization.py:187:1: E302: expected 2 blank lines, found 1
plugins/modules/keycloak_realm_localization.py:343:161: E501: line too long (161 > 160 characters)
plugins/modules/keycloak_realm_localization.py:371:5: E303: too many blank lines (2)
tests/unit/plugins/modules/test_keycloak_realm_localization.py:262:20: W292: no newline at end of file
The test ansible-test sanity --test yamllint [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/yamllint.html>]
failed with 4 errors:
plugins/modules/keycloak_realm_localization.py:51:13: error: DOCUMENTATION: syntax error: could not find expected ':' (syntax)
plugins/modules/keycloak_realm_localization.py:51:13: unparsable-with-libyaml: DOCUMENTATION: while scanning a simple key - could not find expected ':'
plugins/modules/keycloak_realm_localization.py:126:16: error: EXAMPLES: syntax error: mapping values are not allowed here (syntax)
plugins/modules/keycloak_realm_localization.py:126:16: unparsable-with-libyaml: EXAMPLES: None - mapping values are not allowed in this context
The test ansible-test sanity --test ansible-doc [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/ansible-doc.html>]
failed with the error:
Command "ansible-doc -t module community.general.keycloak_authentication community.general.keycloak_authentication_required_actions community.general.keycloak_authz_authorization_scope community.general.keycloak_authz_custom_policy community.general.keycloak_authz_permission community.general.keycloak_authz_permission_info community.general.keycloak_client community.general.keycloak_client_rolemapping community.general.keycloak_client_rolescope community.general.keycloak_clientscope community.general.keycloak_clientscope_type community.general.keycloak_clientsecret_info community.general.keycloak_clientsecret_regenerate community.general.keycloak_clienttemplate community.general.keycloak_component community.general.keycloak_component_info community.general.keycloak_group community.general.keycloak_identity_provider community.general.keycloak_realm community.general.keycloak_realm_info community.general.keycloak_realm_key community.general.keycloak_realm_keys_metadata_info community.general.keycloak_realm_localization community.general.keycloak_realm_rolemapping community.general.keycloak_role community.general.keycloak_user community.general.keycloak_user_federation community.general.keycloak_user_rolemapping community.general.keycloak_userprofile" returned exit status 1.
>>> Standard Error
ERROR! module community.general.keycloak_realm_localization missing documentation (or could not parse documentation): community.general.keycloak_realm_localization did not contain a DOCUMENTATION attribute (/root/ansible_collections/community/general/plugins/modules/keycloak_realm_localization.py). Unable to parse documentation in python file '/root/ansible_collections/community/general/plugins/modules/keycloak_realm_localization.py': while scanning a simple key
in "<unicode string>", line 35, column 15
could not find expected ':'
in "<unicode string>", line 36, column 13. while scanning a simple key
in "<unicode string>", line 35, column 15
could not find expected ':'
in "<unicode string>", line 36, column 13
The test ansible-test sanity --test validate-modules [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/validate-modules.html>]
failed with 40 errors:
plugins/modules/keycloak_realm_localization.py:0:0: deprecation-mismatch: "meta/runtime.yml" and DOCUMENTATION.deprecation do not agree.
plugins/modules/keycloak_realm_localization.py:0:0: doc-choices-do-not-match-spec: Argument 'state' in argument_spec defines choices as (['present', 'absent']) but documentation defines choices as ([])
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'auth_client_id' in argument_spec defines default as ('admin-cli') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'connection_timeout' in argument_spec defines default as (10) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'http_agent' in argument_spec defines default as ('Ansible') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'overrides' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'state' in argument_spec defines default as ('present') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'validate_certs' in argument_spec defines default as (True) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-elements-mismatch: Argument 'overrides' in argument_spec specifies elements as dict,but elements is not documented
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'auth_keycloak_url' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'key' in argument_spec found in overrides is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'locale' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'parent_id' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'value' in argument_spec found in overrides is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: missing-documentation: No DOCUMENTATION provided
plugins/modules/keycloak_realm_localization.py:0:0: missing-suboption-docs: Argument 'overrides' in argument_spec has sub-options but documentation does not define it
plugins/modules/keycloak_realm_localization.py:0:0: no-log-needed: Argument 'key' in argument_spec could be a secret, though doesn't have `no_log` set found in overrides
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_client_id' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_client_secret' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_keycloak_url' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_password' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_realm' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_username' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'connection_timeout' in argument_spec defines type as 'int' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'http_agent' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'key' in argument_spec found in overrides defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'locale' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'overrides' in argument_spec defines type as 'list' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'parent_id' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'refresh_token' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'state' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'token' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'validate_certs' in argument_spec defines type as 'bool' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'value' in argument_spec found in overrides defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: return-syntax-error: RETURN.diff.contains.after.description: required key not provided @ data['diff']['contains']['after']['description']. Got None
plugins/modules/keycloak_realm_localization.py:0:0: return-syntax-error: RETURN.diff.contains.before.description: required key not provided @ data['diff']['contains']['before']['description']. Got None
plugins/modules/keycloak_realm_localization.py:0:0: undocumented-parameter: Argument 'key' found in overrides is listed in the argument_spec, but not documented in the module documentation
plugins/modules/keycloak_realm_localization.py:0:0: undocumented-parameter: Argument 'value' found in overrides is listed in the argument_spec, but not documented in the module documentation
plugins/modules/keycloak_realm_localization.py:51:13: documentation-syntax-error: DOCUMENTATION is not valid YAML
plugins/modules/keycloak_realm_localization.py:126:16: invalid-examples: EXAMPLES is not valid YAML
The test ansible-test sanity --test pep8 [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/pep8.html>]
failed with 8 errors:
plugins/module_utils/identity/keycloak/keycloak.py:598:32: E127: continuation line over-indented for visual indent
plugins/module_utils/identity/keycloak/keycloak.py:625:32: E127: continuation line over-indented for visual indent
plugins/module_utils/identity/keycloak/keycloak.py:648:32: E127: continuation line over-indented for visual indent
plugins/modules/keycloak_realm_localization.py:2:1: E265: block comment should start with '# '
plugins/modules/keycloak_realm_localization.py:187:1: E302: expected 2 blank lines, found 1
plugins/modules/keycloak_realm_localization.py:343:161: E501: line too long (161 > 160 characters)
plugins/modules/keycloak_realm_localization.py:371:5: E303: too many blank lines (2)
tests/unit/plugins/modules/test_keycloak_realm_localization.py:262:20: W292: no newline at end of file
The test ansible-test sanity --test yamllint [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/yamllint.html>]
failed with 4 errors:
plugins/modules/keycloak_realm_localization.py:51:13: error: DOCUMENTATION: syntax error: could not find expected ':' (syntax)
plugins/modules/keycloak_realm_localization.py:51:13: unparsable-with-libyaml: DOCUMENTATION: while scanning a simple key - could not find expected ':'
plugins/modules/keycloak_realm_localization.py:126:16: error: EXAMPLES: syntax error: mapping values are not allowed here (syntax)
plugins/modules/keycloak_realm_localization.py:126:16: unparsable-with-libyaml: EXAMPLES: None - mapping values are not allowed in this context
The test ansible-test sanity --test pylint [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/pylint.html>]
failed with 1 error:
tests/unit/plugins/modules/test_keycloak_realm_localization.py:262:0: missing-final-newline: Final newline missing
The test ansible-test sanity --test ansible-doc [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/ansible-doc.html>]
failed with the error:
Command "ansible-doc -t module community.general.keycloak_authentication community.general.keycloak_authentication_required_actions community.general.keycloak_authz_authorization_scope community.general.keycloak_authz_custom_policy community.general.keycloak_authz_permission community.general.keycloak_authz_permission_info community.general.keycloak_client community.general.keycloak_client_rolemapping community.general.keycloak_client_rolescope community.general.keycloak_clientscope community.general.keycloak_clientscope_type community.general.keycloak_clientsecret_info community.general.keycloak_clientsecret_regenerate community.general.keycloak_clienttemplate community.general.keycloak_component community.general.keycloak_component_info community.general.keycloak_group community.general.keycloak_identity_provider community.general.keycloak_realm community.general.keycloak_realm_info community.general.keycloak_realm_key community.general.keycloak_realm_keys_metadata_info community.general.keycloak_realm_localization community.general.keycloak_realm_rolemapping community.general.keycloak_role community.general.keycloak_user community.general.keycloak_user_federation community.general.keycloak_user_rolemapping community.general.keycloak_userprofile" returned exit status 1.
>>> Standard Error
ERROR! module community.general.keycloak_realm_localization missing documentation (or could not parse documentation): community.general.keycloak_realm_localization did not contain a DOCUMENTATION attribute (/root/ansible_collections/community/general/plugins/modules/keycloak_realm_localization.py). Unable to parse documentation in python file '/root/ansible_collections/community/general/plugins/modules/keycloak_realm_localization.py': while scanning a simple key
in "<unicode string>", line 35, column 15
could not find expected ':'
in "<unicode string>", line 36, column 13. while scanning a simple key
in "<unicode string>", line 35, column 15
could not find expected ':'
in "<unicode string>", line 36, column 13
The test ansible-test sanity --test validate-modules [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/validate-modules.html>]
failed with 40 errors:
plugins/modules/keycloak_realm_localization.py:0:0: deprecation-mismatch: "meta/runtime.yml" and DOCUMENTATION.deprecation do not agree.
plugins/modules/keycloak_realm_localization.py:0:0: doc-choices-do-not-match-spec: Argument 'state' in argument_spec defines choices as (['present', 'absent']) but documentation defines choices as ([])
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'auth_client_id' in argument_spec defines default as ('admin-cli') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'connection_timeout' in argument_spec defines default as (10) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'http_agent' in argument_spec defines default as ('Ansible') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'overrides' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'state' in argument_spec defines default as ('present') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'validate_certs' in argument_spec defines default as (True) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-elements-mismatch: Argument 'overrides' in argument_spec specifies elements as dict,but elements is not documented
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'auth_keycloak_url' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'key' in argument_spec found in overrides is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'locale' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'parent_id' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'value' in argument_spec found in overrides is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: missing-documentation: No DOCUMENTATION provided
plugins/modules/keycloak_realm_localization.py:0:0: missing-suboption-docs: Argument 'overrides' in argument_spec has sub-options but documentation does not define it
plugins/modules/keycloak_realm_localization.py:0:0: no-log-needed: Argument 'key' in argument_spec could be a secret, though doesn't have `no_log` set found in overrides
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_client_id' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_client_secret' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_keycloak_url' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_password' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_realm' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_username' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'connection_timeout' in argument_spec defines type as 'int' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'http_agent' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'key' in argument_spec found in overrides defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'locale' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'overrides' in argument_spec defines type as 'list' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'parent_id' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'refresh_token' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'state' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'token' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'validate_certs' in argument_spec defines type as 'bool' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'value' in argument_spec found in overrides defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: return-syntax-error: RETURN.diff.contains.after.description: required key not provided @ data['diff']['contains']['after']['description']. Got None
plugins/modules/keycloak_realm_localization.py:0:0: return-syntax-error: RETURN.diff.contains.before.description: required key not provided @ data['diff']['contains']['before']['description']. Got None
plugins/modules/keycloak_realm_localization.py:0:0: undocumented-parameter: Argument 'key' found in overrides is listed in the argument_spec, but not documented in the module documentation
plugins/modules/keycloak_realm_localization.py:0:0: undocumented-parameter: Argument 'value' found in overrides is listed in the argument_spec, but not documented in the module documentation
plugins/modules/keycloak_realm_localization.py:51:13: documentation-syntax-error: DOCUMENTATION is not valid YAML
plugins/modules/keycloak_realm_localization.py:126:16: invalid-examples: EXAMPLES is not valid YAML
The test ansible-test sanity --test pylint [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/pylint.html>]
failed with 1 error:
tests/unit/plugins/modules/test_keycloak_realm_localization.py:262:0: missing-final-newline: Final newline missing
The test ansible-test sanity --test pep8 [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/pep8.html>]
failed with 8 errors:
plugins/module_utils/identity/keycloak/keycloak.py:598:32: E127: continuation line over-indented for visual indent
plugins/module_utils/identity/keycloak/keycloak.py:625:32: E127: continuation line over-indented for visual indent
plugins/module_utils/identity/keycloak/keycloak.py:648:32: E127: continuation line over-indented for visual indent
plugins/modules/keycloak_realm_localization.py:2:1: E265: block comment should start with '# '
plugins/modules/keycloak_realm_localization.py:187:1: E302: expected 2 blank lines, found 1
plugins/modules/keycloak_realm_localization.py:343:161: E501: line too long (161 > 160 characters)
plugins/modules/keycloak_realm_localization.py:371:5: E303: too many blank lines (2)
tests/unit/plugins/modules/test_keycloak_realm_localization.py:262:20: W292: no newline at end of file
The test ansible-test sanity --test yamllint [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/yamllint.html>]
failed with 4 errors:
plugins/modules/keycloak_realm_localization.py:51:13: error: DOCUMENTATION: syntax error: could not find expected ':' (syntax)
plugins/modules/keycloak_realm_localization.py:51:13: unparsable-with-libyaml: DOCUMENTATION: while scanning a simple key could not find expected ':'
plugins/modules/keycloak_realm_localization.py:126:16: error: EXAMPLES: syntax error: mapping values are not allowed here (syntax)
plugins/modules/keycloak_realm_localization.py:126:16: unparsable-with-libyaml: EXAMPLES: mapping values are not allowed in this context
The test ansible-test sanity --test ansible-doc [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/ansible-doc.html>]
failed with the error:
Command "ansible-doc -t module community.general.keycloak_authentication community.general.keycloak_authentication_required_actions community.general.keycloak_authz_authorization_scope community.general.keycloak_authz_custom_policy community.general.keycloak_authz_permission community.general.keycloak_authz_permission_info community.general.keycloak_client community.general.keycloak_client_rolemapping community.general.keycloak_client_rolescope community.general.keycloak_clientscope community.general.keycloak_clientscope_type community.general.keycloak_clientsecret_info community.general.keycloak_clientsecret_regenerate community.general.keycloak_clienttemplate community.general.keycloak_component community.general.keycloak_component_info community.general.keycloak_group community.general.keycloak_identity_provider community.general.keycloak_realm community.general.keycloak_realm_info community.general.keycloak_realm_key community.general.keycloak_realm_keys_metadata_info community.general.keycloak_realm_localization community.general.keycloak_realm_rolemapping community.general.keycloak_role community.general.keycloak_user community.general.keycloak_user_federation community.general.keycloak_user_rolemapping community.general.keycloak_userprofile" returned exit status 1.
>>> Standard Error
[ERROR]: module community.general.keycloak_realm_localization Missing documentation (or could not parse documentation): module plugin 'community.general.keycloak_realm_localization' did not contain a DOCUMENTATION attribute in '/root/ansible_collections/community/general/plugins/modules/keycloak_realm_localization.py': Unable to parse documentation in python file '/root/ansible_collections/community/general/plugins/modules/keycloak_realm_localization.py': while scanning a simple key
in "<unicode string>", line 35, column 15
could not find expected ':'
in "<unicode string>", line 36, column 13
The test ansible-test sanity --test validate-modules [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/validate-modules.html>]
failed with 40 errors:
plugins/modules/keycloak_realm_localization.py:0:0: deprecation-mismatch: "meta/runtime.yml" and DOCUMENTATION.deprecation do not agree.
plugins/modules/keycloak_realm_localization.py:0:0: doc-choices-do-not-match-spec: Argument 'state' in argument_spec defines choices as (['present', 'absent']) but documentation defines choices as ([])
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'auth_client_id' in argument_spec defines default as ('admin-cli') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'connection_timeout' in argument_spec defines default as (10) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'http_agent' in argument_spec defines default as ('Ansible') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'overrides' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'state' in argument_spec defines default as ('present') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'validate_certs' in argument_spec defines default as (True) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-elements-mismatch: Argument 'overrides' in argument_spec specifies elements as dict,but elements is not documented
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'auth_keycloak_url' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'key' in argument_spec found in overrides is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'locale' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'parent_id' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'value' in argument_spec found in overrides is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: missing-documentation: No DOCUMENTATION provided
plugins/modules/keycloak_realm_localization.py:0:0: missing-suboption-docs: Argument 'overrides' in argument_spec has sub-options but documentation does not define it
plugins/modules/keycloak_realm_localization.py:0:0: no-log-needed: Argument 'key' in argument_spec could be a secret, though doesn't have `no_log` set found in overrides
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_client_id' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_client_secret' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_keycloak_url' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_password' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_realm' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_username' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'connection_timeout' in argument_spec defines type as 'int' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'http_agent' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'key' in argument_spec found in overrides defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'locale' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'overrides' in argument_spec defines type as 'list' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'parent_id' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'refresh_token' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'state' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'token' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'validate_certs' in argument_spec defines type as 'bool' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'value' in argument_spec found in overrides defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: return-syntax-error: RETURN.diff.contains.after.description: required key not provided @ data['diff']['contains']['after']['description']. Got None
plugins/modules/keycloak_realm_localization.py:0:0: return-syntax-error: RETURN.diff.contains.before.description: required key not provided @ data['diff']['contains']['before']['description']. Got None
plugins/modules/keycloak_realm_localization.py:0:0: undocumented-parameter: Argument 'key' found in overrides is listed in the argument_spec, but not documented in the module documentation
plugins/modules/keycloak_realm_localization.py:0:0: undocumented-parameter: Argument 'value' found in overrides is listed in the argument_spec, but not documented in the module documentation
plugins/modules/keycloak_realm_localization.py:51:13: documentation-syntax-error: DOCUMENTATION is not valid YAML
plugins/modules/keycloak_realm_localization.py:126:16: invalid-examples: EXAMPLES is not valid YAML
The test ansible-test sanity --test pylint [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/pylint.html>]
failed with 1 error:
tests/unit/plugins/modules/test_keycloak_realm_localization.py:262:0: missing-final-newline: Final newline missing
The test ansible-test sanity --test pep8 [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/pep8.html>]
failed with 8 errors:
plugins/module_utils/identity/keycloak/keycloak.py:598:32: E127: continuation line over-indented for visual indent
plugins/module_utils/identity/keycloak/keycloak.py:625:32: E127: continuation line over-indented for visual indent
plugins/module_utils/identity/keycloak/keycloak.py:648:32: E127: continuation line over-indented for visual indent
plugins/modules/keycloak_realm_localization.py:2:1: E265: block comment should start with '# '
plugins/modules/keycloak_realm_localization.py:187:1: E302: expected 2 blank lines, found 1
plugins/modules/keycloak_realm_localization.py:343:161: E501: line too long (161 > 160 characters)
plugins/modules/keycloak_realm_localization.py:371:5: E303: too many blank lines (2)
tests/unit/plugins/modules/test_keycloak_realm_localization.py:262:20: W292: no newline at end of file
The test ansible-test sanity --test yamllint [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/yamllint.html>]
failed with 4 errors:
plugins/modules/keycloak_realm_localization.py:51:13: error: DOCUMENTATION: syntax error: could not find expected ':' (syntax)
plugins/modules/keycloak_realm_localization.py:51:13: unparsable-with-libyaml: DOCUMENTATION: while scanning a simple key could not find expected ':'
plugins/modules/keycloak_realm_localization.py:126:16: error: EXAMPLES: syntax error: mapping values are not allowed here (syntax)
plugins/modules/keycloak_realm_localization.py:126:16: unparsable-with-libyaml: EXAMPLES: mapping values are not allowed in this context
The test ansible-test sanity --test ansible-doc [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/ansible-doc.html>]
failed with the error:
Command "ansible-doc -t module community.general.keycloak_authentication community.general.keycloak_authentication_required_actions community.general.keycloak_authz_authorization_scope community.general.keycloak_authz_custom_policy community.general.keycloak_authz_permission community.general.keycloak_authz_permission_info community.general.keycloak_client community.general.keycloak_client_rolemapping community.general.keycloak_client_rolescope community.general.keycloak_clientscope community.general.keycloak_clientscope_type community.general.keycloak_clientsecret_info community.general.keycloak_clientsecret_regenerate community.general.keycloak_clienttemplate community.general.keycloak_component community.general.keycloak_component_info community.general.keycloak_group community.general.keycloak_identity_provider community.general.keycloak_realm community.general.keycloak_realm_info community.general.keycloak_realm_key community.general.keycloak_realm_keys_metadata_info community.general.keycloak_realm_localization community.general.keycloak_realm_rolemapping community.general.keycloak_role community.general.keycloak_user community.general.keycloak_user_federation community.general.keycloak_user_rolemapping community.general.keycloak_userprofile" returned exit status 1.
>>> Standard Error
[ERROR]: module community.general.keycloak_realm_localization Missing documentation (or could not parse documentation): module plugin 'community.general.keycloak_realm_localization' did not contain a DOCUMENTATION attribute in '/root/ansible_collections/community/general/plugins/modules/keycloak_realm_localization.py': Unable to parse documentation in python file '/root/ansible_collections/community/general/plugins/modules/keycloak_realm_localization.py': while scanning a simple key
in "<unicode string>", line 35, column 15
could not find expected ':'
in "<unicode string>", line 36, column 13
The test ansible-test sanity --test validate-modules [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/validate-modules.html>]
failed with 40 errors:
plugins/modules/keycloak_realm_localization.py:0:0: deprecation-mismatch: "meta/runtime.yml" and DOCUMENTATION.deprecation do not agree.
plugins/modules/keycloak_realm_localization.py:0:0: doc-choices-do-not-match-spec: Argument 'state' in argument_spec defines choices as (['present', 'absent']) but documentation defines choices as ([])
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'auth_client_id' in argument_spec defines default as ('admin-cli') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'connection_timeout' in argument_spec defines default as (10) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'http_agent' in argument_spec defines default as ('Ansible') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'overrides' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'state' in argument_spec defines default as ('present') but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-default-does-not-match-spec: Argument 'validate_certs' in argument_spec defines default as (True) but documentation defines default as (None)
plugins/modules/keycloak_realm_localization.py:0:0: doc-elements-mismatch: Argument 'overrides' in argument_spec specifies elements as dict,but elements is not documented
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'auth_keycloak_url' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'key' in argument_spec found in overrides is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'locale' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'parent_id' in argument_spec is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: doc-required-mismatch: Argument 'value' in argument_spec found in overrides is required, but is not documented as being required
plugins/modules/keycloak_realm_localization.py:0:0: missing-documentation: No DOCUMENTATION provided
plugins/modules/keycloak_realm_localization.py:0:0: missing-suboption-docs: Argument 'overrides' in argument_spec has sub-options but documentation does not define it
plugins/modules/keycloak_realm_localization.py:0:0: no-log-needed: Argument 'key' in argument_spec could be a secret, though doesn't have `no_log` set found in overrides
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_client_id' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_client_secret' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_keycloak_url' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_password' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_realm' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'auth_username' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'connection_timeout' in argument_spec defines type as 'int' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'http_agent' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'key' in argument_spec found in overrides defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'locale' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'overrides' in argument_spec defines type as 'list' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'parent_id' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'refresh_token' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'state' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'token' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'validate_certs' in argument_spec defines type as 'bool' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: parameter-type-not-in-doc: Argument 'value' in argument_spec found in overrides defines type as 'str' but documentation doesn't define type
plugins/modules/keycloak_realm_localization.py:0:0: return-syntax-error: RETURN.diff.contains.after.description: required key not provided @ data['diff']['contains']['after']['description']. Got None
plugins/modules/keycloak_realm_localization.py:0:0: return-syntax-error: RETURN.diff.contains.before.description: required key not provided @ data['diff']['contains']['before']['description']. Got None
plugins/modules/keycloak_realm_localization.py:0:0: undocumented-parameter: Argument 'key' found in overrides is listed in the argument_spec, but not documented in the module documentation
plugins/modules/keycloak_realm_localization.py:0:0: undocumented-parameter: Argument 'value' found in overrides is listed in the argument_spec, but not documented in the module documentation
plugins/modules/keycloak_realm_localization.py:51:13: documentation-syntax-error: DOCUMENTATION is not valid YAML
plugins/modules/keycloak_realm_localization.py:126:16: invalid-examples: EXAMPLES is not valid YAML
The test ansible-test sanity --test pylint [explain
<https://docs.ansible.com/ansible-core/devel/dev_guide/testing/sanity/pylint.html>]
failed with 2 errors:
tests/unit/plugins/modules/test_keycloak_realm_localization.py:22:0: ansible-bad-import-from: Import StringIO from the Python standard library equivalent instead of ansible.module_utils.six
tests/unit/plugins/modules/test_keycloak_realm_localization.py:262:0: missing-final-newline: Final newline missing
click here for bot help
<https://github.com/ansible/ansibullbot/blob/devel/ISSUE_HELP.md>
—
Reply to this email directly, view it on GitHub
<#10841 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AADXI4NYYAJWJVJVZKXDWUL3TPYL3AVCNFSM6AAAAACG6ZDZBGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTGMJRHE4DMMJYGQ>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
This comment was marked as resolved.
This comment was marked as resolved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @danekja
Thanks for your contribution! There is a number of adjustments needed, and some parts of the code could be simplified/improved. Please review carefully.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
changelog fragments are not required for new modules, please remove this file
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, i have added it only because of the change to KeycloakAPI's API
Co-authored-by: Alexei Znamensky <[email protected]>
@russoz ok, hopefully better now |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @danekja thanks for your updates. I spotted a couple of other things, mostly minor adjustments, but one "larger" suggestion as well.
|
||
if module.check_mode: | ||
# Dry-run: report intent without side effects | ||
result['msg'] = "Locale %s overrides would be updated." % (locale) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For a single variable the brackets are redundant.
result['msg'] = "Locale %s overrides would be updated." % (locale) | |
result['msg'] = "Locale %s overrides would be updated." % locale |
for override in to_update: | ||
kc.set_localization_value(locale, override['key'], override['value'], parent_id) | ||
|
||
result['msg'] = "Locale %s overrides have been updated." % (locale) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here
result['msg'] = "Locale %s overrides have been updated." % (locale) | |
result['msg'] = "Locale %s overrides have been updated." % locale |
|
||
# Compute two sets: | ||
# - to_update: keys missing or with different values | ||
# - to_remove: keys existing in current state but not in desired |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You might want to consider an option for the user on whether to remove these existing keys or not. As comparison, see the ansible.builtin.user module and how it handles groups - when you pass a list of groups you have the option to append them (keep old ones), or to make the user's group list exactly as passed (remove the old ones). That is usually a good way to handle this situation, but I am not sure if it makes sense in this use case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Im going to take a look. Sounds like a useful option to have, even though I dont have a use for it (strongly believe in having whole configuration as code).
Co-authored-by: Alexei Znamensky <[email protected]>
SUMMARY
This pull request adds new module for Keycloak management - localization overrides. Keycloak provides API/Admin Console access to configure localization keys dynamically (outside bundled templates). This functionality is especially relevant together with Keycloak's User Profile functionality - each profile attribute must have localization keys if localization is enabled for a realm.
The newly added module allows users to configure both user profile and it's attributes' localization values using this collection.
Due to KC API requirement this PR also extends signature of
KeycloakAPI._request
(inmodule_utils/identity/keycloak.py
) to allow http request headers override.ISSUE TYPE
COMPONENT NAME
keycloak_realm_localization
ADDITIONAL INFORMATION
Keycloak documentation
Keycloak API description - search for GET /admin/realms/{realm}/localization and continue from there
Testing was done against RedHat build of Keycloak 26.0.13.