* Notification backends now handle body of notifications differently
* .. depending on their type (webhook, email, and pagerduty) are
currently the only three notification types that use body
* email and pagerduty expect a string
* webhooks expects a dict in string format
* RBAC relaunch 403 updates
Addresses 2 things
1. If WFJ relaunch is attempted, and relaunch is denied
because the WFJ had encrypted survey answers,
a generic message was shown, this changes it to show
a specific error message
2. Org admins are banned from relaunching a job
if the job has encrypted survey answers
* update tests to raises access pattern
* catch PermissionDenied for user_capabilities
* Add support for credential_type
* Finish up credential_type parameter with tests
* make inputs mutually exclusive with other params
* Test credential type with dict input
* Instance Groups Instances slider renders properly, and that list wraps properly.
* Instance Groups responds properly
* assorted container groups ui fixes
updated responsiveness of instance groups and instances list
fix layout of container group form
update help text for container group form elements
update text for tech preview top bar
* update container group doclink
* list styling updates based on feedback
a status of error makes more sense, because failed generally points to
an issue with the playbook itself, while error is more generally used
for reporting issues internal to Tower
see: https://github.com/ansible/awx/issues/4909
runner_on_start events have zero-length strings for their stdout
fields. We don't want to display these in the ui so we omit them.
Although the stdout field is an empty string, it still has a recorded
line length of 1 that we must account for. Since we're not rendering
the blank line, we must also go back and set the event record's line
length to 0 in order to avoid deleting too many lines when we pop or
shift events off of the view while scrolling.
Add a custom regex to URLField that allows numbers to be present in the
top level domain, e.g. https://towerhost.org42
Set by variable allow_numbers_in_top_level_domain in URLField __init__,
and is set to True by default. If set to False, it will use the regex
specified in the built-in django URLValidator class.
This solution was originally implemented in LDAPServerURIField, but is
now implemented in URLField to support this behavior more generally. The
changes in LDAPServerURIField are longer needed and have been removed in
this commit.
Adds unit testing to make sure URLField changes handle regex input
and settings correctly.