diff --git a/changelogs/fragments/10684-django-improvements.yml b/changelogs/fragments/10684-django-improvements.yml new file mode 100644 index 0000000000..a8ca1cfbe9 --- /dev/null +++ b/changelogs/fragments/10684-django-improvements.yml @@ -0,0 +1,4 @@ +minor_changes: + - django module utils - simplify/consolidate the common settings for the command line (https://github.com/ansible-collections/community.general/pull/10684). + - django_check - simplify/consolidate the common settings for the command line (https://github.com/ansible-collections/community.general/pull/10684). + - django_createcachetable - simplify/consolidate the common settings for the command line (https://github.com/ansible-collections/community.general/pull/10684). diff --git a/plugins/module_utils/django.py b/plugins/module_utils/django.py index 7b61502d59..bb33c662a0 100644 --- a/plugins/module_utils/django.py +++ b/plugins/module_utils/django.py @@ -8,7 +8,7 @@ __metaclass__ = type from ansible.module_utils.common.dict_transformations import dict_merge -from ansible_collections.community.general.plugins.module_utils.cmd_runner import cmd_runner_fmt +from ansible_collections.community.general.plugins.module_utils import cmd_runner_fmt from ansible_collections.community.general.plugins.module_utils.python_runner import PythonRunner from ansible_collections.community.general.plugins.module_utils.module_helper import ModuleHelper @@ -25,26 +25,36 @@ django_std_args = dict( ) _django_std_arg_fmts = dict( + apps=cmd_runner_fmt.as_list(), + check=cmd_runner_fmt.as_bool("--check"), command=cmd_runner_fmt.as_list(), - settings=cmd_runner_fmt.as_opt_eq_val("--settings"), + database_dash=cmd_runner_fmt.as_opt_eq_val("--database"), + database_stacked_dash=cmd_runner_fmt.stack(cmd_runner_fmt.as_opt_val)("--database"), + deploy=cmd_runner_fmt.as_bool("--deploy"), + dry_run=cmd_runner_fmt.as_bool("--dry-run"), + fail_level=cmd_runner_fmt.as_opt_val("--fail-level"), + no_color=cmd_runner_fmt.as_fixed("--no-color"), + noinput=cmd_runner_fmt.as_fixed("--noinput"), pythonpath=cmd_runner_fmt.as_opt_eq_val("--pythonpath"), + settings=cmd_runner_fmt.as_opt_eq_val("--settings"), + skip_checks=cmd_runner_fmt.as_bool("--skip-checks"), + tags=cmd_runner_fmt.stack(cmd_runner_fmt.as_opt_val)("--tag"), traceback=cmd_runner_fmt.as_bool("--traceback"), verbosity=cmd_runner_fmt.as_opt_val("--verbosity"), - no_color=cmd_runner_fmt.as_fixed("--no-color"), - skip_checks=cmd_runner_fmt.as_bool("--skip-checks"), version=cmd_runner_fmt.as_fixed("--version"), ) -_django_database_args = dict( +_database_dash = dict( database=dict(type="str", default="default"), ) _args_menu = dict( std=(django_std_args, _django_std_arg_fmts), - database=(_django_database_args, {"database": cmd_runner_fmt.as_opt_eq_val("--database")}), - noinput=({}, {"noinput": cmd_runner_fmt.as_fixed("--noinput")}), - dry_run=({}, {"dry_run": cmd_runner_fmt.as_bool("--dry-run")}), - check=({}, {"check": cmd_runner_fmt.as_bool("--check")}), + database=(_database_dash, {"database": _django_std_arg_fmts["database_dash"]}), # deprecate, remove in 13.0.0 + noinput=({}, {"noinput": cmd_runner_fmt.as_fixed("--noinput")}), # deprecate, remove in 13.0.0 + dry_run=({}, {"dry_run": cmd_runner_fmt.as_bool("--dry-run")}), # deprecate, remove in 13.0.0 + check=({}, {"check": cmd_runner_fmt.as_bool("--check")}), # deprecate, remove in 13.0.0 + database_dash=(_database_dash, {}), ) diff --git a/plugins/modules/django_check.py b/plugins/modules/django_check.py index df902d04d9..1af74c3aee 100644 --- a/plugins/modules/django_check.py +++ b/plugins/modules/django_check.py @@ -88,7 +88,6 @@ version: """ from ansible_collections.community.general.plugins.module_utils.django import DjangoModuleHelper -from ansible_collections.community.general.plugins.module_utils.cmd_runner import cmd_runner_fmt class DjangoCheck(DjangoModuleHelper): @@ -102,15 +101,11 @@ class DjangoCheck(DjangoModuleHelper): ), supports_check_mode=True, ) - arg_formats = dict( - databases=cmd_runner_fmt.stack(cmd_runner_fmt.as_opt_val)("--database"), - deploy=cmd_runner_fmt.as_bool("--deploy"), - fail_level=cmd_runner_fmt.as_opt_val("--fail-level"), - tags=cmd_runner_fmt.stack(cmd_runner_fmt.as_opt_val)("--tag"), - apps=cmd_runner_fmt.as_list(), - ) django_admin_cmd = "check" - django_admin_arg_order = "databases deploy fail_level tags apps" + django_admin_arg_order = "database_stacked_dash deploy fail_level tags apps" + + def __init_module__(self): + self.vars.set("database_stacked_dash", self.vars.databases, output=False) def main(): diff --git a/plugins/modules/django_createcachetable.py b/plugins/modules/django_createcachetable.py index 4d849624a9..995ff5dc28 100644 --- a/plugins/modules/django_createcachetable.py +++ b/plugins/modules/django_createcachetable.py @@ -60,10 +60,13 @@ class DjangoCreateCacheTable(DjangoModuleHelper): supports_check_mode=True, ) django_admin_cmd = "createcachetable" - django_admin_arg_order = "noinput database dry_run" - _django_args = ["noinput", "database", "dry_run"] + django_admin_arg_order = "noinput database_dash dry_run" + _django_args = ["database_dash"] _check_mode_arg = "dry_run" + def __init_module__(self): + self.vars.set("database_dash", self.vars.database, output=False) + def main(): DjangoCreateCacheTable.execute()