101 lines
3.4 KiB
Python
101 lines
3.4 KiB
Python
# Django
|
|
from django.conf import settings
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
# Tower
|
|
from awx.conf import fields, register
|
|
from awx.conf import settings_registry
|
|
|
|
# Define a conf.py file within your app and register each setting similarly to
|
|
# the example below. Any field class from Django REST Framework or subclass
|
|
# thereof can be used for validation/conversion of the setting. All keyword
|
|
# arguments to the register function (except field_class, category,
|
|
# category_slug, depends_on, placeholder) will be used to initialize
|
|
# the field_class.
|
|
|
|
register(
|
|
'ANSIBLE_COW_SELECTION',
|
|
field_class=fields.ChoiceField,
|
|
choices=[
|
|
('bud-frogs', _('Bud Frogs')),
|
|
('bunny', _('Bunny')),
|
|
('cheese', _('Cheese')),
|
|
('daemon', _('Daemon')),
|
|
('default', _('Default Cow')),
|
|
('dragon', _('Dragon')),
|
|
('elephant-in-snake', _('Elephant in Snake')),
|
|
('elephant', _('Elephant')),
|
|
('eyes', _('Eyes')),
|
|
('hellokitty', _('Hello Kitty')),
|
|
('kitty', _('Kitty')),
|
|
('luke-koala', _('Luke Koala')),
|
|
('meow', _('Meow')),
|
|
('milk', _('Milk')),
|
|
('moofasa', _('Moofasa')),
|
|
('moose', _('Moose')),
|
|
('ren', _('Ren')),
|
|
('sheep', _('Sheep')),
|
|
('small', _('Small Cow')),
|
|
('stegosaurus', _('Stegosaurus')),
|
|
('stimpy', _('Stimpy')),
|
|
('supermilker', _('Super Milker')),
|
|
('three-eyes', _('Three Eyes')),
|
|
('turkey', _('Turkey')),
|
|
('turtle', _('Turtle')),
|
|
('tux', _('Tux')),
|
|
('udder', _('Udder')),
|
|
('vader-koala', _('Vader Koala')),
|
|
('vader', _('Vader')),
|
|
('www', _('WWW')),
|
|
],
|
|
default='default',
|
|
label=_('Cow Selection'),
|
|
help_text=_('Select which cow to use with cowsay when running jobs.'),
|
|
category=_('Cows'),
|
|
# Optional; category_slug will be slugified version of category if not
|
|
# explicitly provided.
|
|
category_slug='cows',
|
|
)
|
|
|
|
|
|
def _get_read_only_ansible_cow_selection_default():
|
|
return getattr(settings, 'ANSIBLE_COW_SELECTION', 'No default cow!')
|
|
|
|
|
|
register(
|
|
'READONLY_ANSIBLE_COW_SELECTION',
|
|
field_class=fields.CharField,
|
|
# read_only must be set via kwargs even if field_class sets it.
|
|
read_only=True,
|
|
# default can be a callable to dynamically compute the value; should be in
|
|
# the plain JSON format stored in the DB and used in the API.
|
|
default=_get_read_only_ansible_cow_selection_default,
|
|
label=_('Example Read-Only Setting'),
|
|
help_text=_('Example setting that cannot be changed.'),
|
|
category=_('Cows'),
|
|
category_slug='cows',
|
|
# Optional; list of other settings this read-only setting depends on. When
|
|
# the other settings change, the cached value for this setting will be
|
|
# cleared to require it to be recomputed.
|
|
depends_on=['ANSIBLE_COW_SELECTION'],
|
|
# Optional; field is stored encrypted in the database and only $encrypted$
|
|
# is returned via the API.
|
|
encrypted=True,
|
|
)
|
|
|
|
register(
|
|
'EXAMPLE_USER_SETTING',
|
|
field_class=fields.CharField,
|
|
allow_blank=True,
|
|
label=_('Example Setting'),
|
|
help_text=_('Example setting which can be different for each user.'),
|
|
category=_('User'),
|
|
category_slug='user',
|
|
default='',
|
|
)
|
|
|
|
# Unregister the example settings above.
|
|
settings_registry.unregister('ANSIBLE_COW_SELECTION')
|
|
settings_registry.unregister('READONLY_ANSIBLE_COW_SELECTION')
|
|
settings_registry.unregister('EXAMPLE_USER_SETTING')
|