@@ -213,6 +213,12 @@ def become(self):
213213 :data:`True` if privilege escalation should be active.
214214 """
215215
216+ @abc .abstractmethod
217+ def become_flags (self ):
218+ """
219+ The command line arguments passed to the become executable.
220+ """
221+
216222 @abc .abstractmethod
217223 def become_method (self ):
218224 """
@@ -290,10 +296,9 @@ def become_exe(self):
290296 @abc .abstractmethod
291297 def sudo_args (self ):
292298 """
293- The list of additional arguments that should be included in a become
299+ The list of additional arguments that should be included in a sudo
294300 invocation.
295301 """
296- # TODO: split out into sudo_args/become_args.
297302
298303 @abc .abstractmethod
299304 def mitogen_via (self ):
@@ -431,6 +436,7 @@ def _become_option(self, name):
431436
432437 fallback_options = {
433438 'become_exe' ,
439+ 'become_flags' ,
434440 }
435441 if name not in fallback_options :
436442 raise
@@ -464,6 +470,9 @@ def remote_user(self):
464470 def become (self ):
465471 return self ._connection .become
466472
473+ def become_flags (self ):
474+ return self ._become_option ('become_flags' )
475+
467476 def become_method (self ):
468477 return self ._play_context .become_method
469478
@@ -529,19 +538,7 @@ def become_exe(self):
529538 return self ._become_option ('become_exe' )
530539
531540 def sudo_args (self ):
532- return [
533- mitogen .core .to_text (term )
534- for term in ansible .utils .shlex .shlex_split (
535- first_true ((
536- self ._play_context .become_flags ,
537- # Ansible <=2.7.
538- getattr (self ._play_context , 'sudo_flags' , '' ),
539- # Ansible <=2.3.
540- getattr (C , 'DEFAULT_BECOME_FLAGS' , '' ),
541- getattr (C , 'DEFAULT_SUDO_FLAGS' , '' )
542- ), default = '' )
543- )
544- ]
541+ return ansible .utils .shlex .shlex_split (self .become_flags () or '' )
545542
546543 def mitogen_via (self ):
547544 return self ._connection .get_task_var ('mitogen_via' )
@@ -676,6 +673,9 @@ def remote_user(self):
676673 def become (self ):
677674 return bool (self ._become_user )
678675
676+ def become_flags (self ):
677+ return self ._host_vars .get ('ansible_become_flags' )
678+
679679 def become_method (self ):
680680 return (
681681 self ._become_method or
@@ -771,7 +771,7 @@ def sudo_args(self):
771771 mitogen .core .to_text (term )
772772 for s in (
773773 self ._host_vars .get ('ansible_sudo_flags' ) or '' ,
774- self ._host_vars . get ( 'ansible_become_flags' ) or '' ,
774+ self .become_flags ( ) or '' ,
775775 )
776776 for term in ansible .utils .shlex .shlex_split (s )
777777 ]
0 commit comments