Which python API? For what purposes? (ie, writing an ansible plugin?
module? some other tool?)
The python code that is used by the ansible application (for ex, the
'ansible.parsing.dataloader' python module) isn't
intended to be used by other applications. ie, there is no consideration
given to forwards or backwards compatibility
of those interfaces. They were also never designed to be used outside of
the app. Nothing in particular prevents that
but it is not a good API for that use (for example, the way 'display' and
'verbosity' works makes assumptions about
__main__ setting up a 'display' instance and other code referencing
'display' from __main__ in many places).
The API will break a lot and often.
To quote the docs (
http://docs.ansible.com/ansible/latest/dev_guide/developing_api.html):
"Please note that while we make this API available it is not intended for
direct consumption, it is here for the support of the Ansible command line
tools. We try not to make breaking changes but we reserve the right to do
so at any time if it makes sense for the Ansible toolset."
If the code you are writing is an ansible plugin, I would suggest using as
little of the ansible python API as possible. ie, not much beyond
the plugin base classes.
If writing a separate app, I would not use the ansible python API at all.
On Tue, Apr 3, 2018 at 7:31 AM, Suren Baskaran wrote:
> Or in short - how to add get a command line like verbose using the API
>
>
> On Tuesday, April 3, 2018 at 11:23:29 AM UTC+5:30, Suren Baskaran wrote:
>>
>> Hi
>>
>> So when we run a ansible playbook in command line with -vvv [
>> verbosity=3] we get all these below information like "Task path" , "using
>> module" and the internals of how each hosts gets connectivity established.
>>
>>
>>
>> TASK [SHOW THE LAST 10 ALERTS ] **
>>
>>
>>
>> task path:
>> Using module file /usr/lib/python2.7/site-packag
>> es/ansible/modules/commands/command.py
>> ESTABLISH SSH CONNECTION FOR USER:
>> SSH: EXEC ssh -C -o ControlMaster=auto -o
>> ControlPersist=60s -o KbdInteractiveAuthentication=no -o
>> PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey
>> -o PasswordAuthentication=no -o User=tpeng -o ConnectTimeout=10 -o
>> ControlPath=XX '/bin/sh -c '"'"'echo ~ && sleep 0'"'"''
>> (255, '', 'ssh: connect to host XX port 22:
>> Connection timed out\r\n')
>> fatal: [gmcrou07.uk.db.com]: UNREACHABLE! => {
>> "changed": false,
>> "msg": "Failed to connect to the host via ssh: ssh: connect to
>> host port 22: Connection timed out\r\n",
>> "unreachable": true
>> }
>>
>>
>> Whereas when I set the same verbosity using the python API , I just an
>> detailed info why the SSH failed to connect like below
>>
>>
>> Failed to connect to the host via ssh: OpenSSH_7.4p1, OpenSSL
>> 1.0.2k-fips 26 Jan 2017\r\ndebug1: Reading configuration data
>> /etc/ssh/ssh_config\r\ndebug1: /etc/ssh/ssh_config line 1: Applying options
>> for *\r\ndebug1: /etc/ssh/ssh_config line 4: Deprecated option
>> \"rhostsauthentication\"\r\ndebug1: /etc/ssh/ssh_config line 8:
>> Deprecated option \"fallbacktorsh\"\r\ndebug1: /etc/ssh/ssh_config line 9:
>> Deprecated option \"usersh\"\r\ndebug1: auto-mux: Trying existing
>> master\r\ndebug1: Control socket \"/home/eqops_dev/.ansible/cp/26dab4b3e8\"
>> does not exist\r\ndebug2: resolving \"X\" port 22\r\ndebug2:
>> ssh_connect_direct: needpriv 0\r\ndebug1: Connecting to
>> gmcrou07.uk.db.com [10.236.110.107] port 22.\r\ndebug2: fd 3 setting
>> O_NONBLOCK\r\ndebug1: connect to address Xx port 22: Connection timed
>> out\r\nssh: connect to host XX port 22: Connection timed out
>>
>>
>>
>> but not the other details , not sure if am missing any callback settings.
>>
>> Appreciate some help here.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "Ansible Development" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to ansible-devel+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to ansible-devel+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.