Skip to content

Commit

Permalink
correct and clarify deprecation (ansible#45234)
Browse files Browse the repository at this point in the history
* correct and clarify deprecation

(cherry picked from commit 64c594d)
  • Loading branch information
bcoca committed Sep 6, 2018
1 parent c89d9d5 commit e690eda
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 13 deletions.
2 changes: 2 additions & 0 deletions changelogs/fragments/systemd_user_dep_fixes.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
bugfixes:
- corrected and clarified 'user' option deprecation in systemd module in favor of 'scope' option.
38 changes: 25 additions & 13 deletions lib/ansible/modules/system/systemd.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,9 @@
aliases: [ daemon-reload ]
user:
description:
- run systemctl talking to the service manager of the calling user, rather than the service manager
of the system. This is deprecated and the scope paramater should be used instead.
- (deprecated) run ``systemctl`` talking to the service manager of the calling user, rather than the service manager
of the system.
- This option is deprecated and will eventually be removed in 2.11. The ``scope`` option should be used instead.
type: bool
default: 'no'
scope:
Expand Down Expand Up @@ -305,26 +306,37 @@ def main():
force=dict(type='bool'),
masked=dict(type='bool'),
daemon_reload=dict(type='bool', default=False, aliases=['daemon-reload']),
user=dict(type='bool', default=False),
scope=dict(type='str', default='system', choices=['system', 'user', 'global']),
user=dict(type='bool'),
scope=dict(type='str', choices=['system', 'user', 'global']),
no_block=dict(type='bool', default=False),
),
supports_check_mode=True,
required_one_of=[['state', 'enabled', 'masked', 'daemon_reload']],
mutually_exclusive=[['scope', 'user']],
)

systemctl = module.get_bin_path('systemctl', True)
if module.params['user'] and module.params['scope'] == 'system':
module.deprecate("The 'user' paramater is being renamed to 'scope'", version=2.8)
systemctl = systemctl + " --user"
if module.params['scope'] == 'user':
systemctl = systemctl + " --user"
if module.params['scope'] == 'global':
systemctl = systemctl + " --global"

''' Set CLI options depending on params '''
if module.params['user'] is not None:
# handle user deprecation, mutually exclusive with scope
module.deprecate("The 'user' option is being replaced by 'scope'", version='2.11')
if module.params['user']:
module.params['scope'] = 'user'
else:
module.params['scope'] = 'system'

# if scope is 'system' or None, we can ignore as there is no extra switch.
# The other choices match the corresponding switch
if module.params['scope'] not in (None, 'system'):
systemctl += " --%s" % module.params['scope']

if module.params['no_block']:
systemctl = systemctl + " --no-block"
systemctl += " --no-block"

if module.params['force']:
systemctl = systemctl + " --force"
systemctl += " --force"

unit = module.params['name']
rc = 0
out = err = ''
Expand Down
1 change: 1 addition & 0 deletions test/sanity/validate-modules/ignore.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1137,6 +1137,7 @@ lib/ansible/modules/system/selinux_permissive.py E322
lib/ansible/modules/system/seport.py E324
lib/ansible/modules/system/service.py E323
lib/ansible/modules/system/service.py E210
lib/ansible/modules/system/systemd.py E324
lib/ansible/modules/system/solaris_zone.py E324
lib/ansible/modules/system/svc.py E322
lib/ansible/modules/system/svc.py E324
Expand Down

0 comments on commit e690eda

Please sign in to comment.