The typical pattern is to pass the AnsibleModule instance to your functions.

On Fri, May 21, 2021 at 9:43 AM Gabriel Machado <[email protected]>
wrote:

> Hi,
>
> I'm developping a module for linux with several functions.
> Most of the functions i develop need to launch binary executables.
> I know, the best practice is to use module.run_command() function to
> launch commands. But i instantiate the module object in the main()
> function. So, the module object cannot be used in the functions i develop.
>
> What should i do :
> - Pass the module as a variable to myfunctions (myfunctions(module)) ?
> - Instantiate another AnsibleModule object in each function ?
> - Use os.subprocess() function or equivalent in my functions ?
>
> Why using os.subprocess() is not recommended ?
>
> ### begin - code example ###
> myfunction1(module)
>   return module.run_command("/usr/bin/ip route show")[1]
>
> def main():
>   module = AnsibleModule(argument_spec = dict())
>   result = dict()
>   result['routes'] = myfunction1(module)
>
>   return module.exit_json(**result)
> ### end - code example ###
>
> Have a nice weekend.
> Gabriel.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/fbcc904e-5269-4d20-a0ba-09a244889df4n%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/fbcc904e-5269-4d20-a0ba-09a244889df4n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Matt Martz
@sivel
sivel.net

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAD8N0v8Mdo0QeSDXXdHSUJexO7t0GYuXTwiO0R7fkhT5sNDhBg%40mail.gmail.com.

Reply via email to