)]}'
{"ironic/conf/ansible.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"50cdb2d91cf09c394d735e42ef74d1777564b6a4","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                      \"It may be overridden by per-node \""},{"line_number":135,"context_line":"                      \"\u0027ansible_clean_steps_config\u0027 option in node\u0027s \""},{"line_number":136,"context_line":"                      \"\u0027driver_info\u0027 field.\")),"},{"line_number":137,"context_line":"    cfg.StrOpt(\u0027default_ansible_python_interpreter\u0027,"},{"line_number":138,"context_line":"               help\u003d_(\"Absolute path to the python interpreter on the \""},{"line_number":139,"context_line":"                      \"managed machines. By default, ansible uses \""},{"line_number":140,"context_line":"                      \"/usr/bin/python\")),"}],"source_content_type":"text/x-python","patch_set":12,"id":"5fc1f717_13d14255","line":137,"updated":"2019-03-07 14:41:46.000000000","message":"Why \"default\"? Is it because we want to override it in driver_info (which is not implemented here)?","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d8df2821c17789f6da0fb6427e0a482ea781e0e2","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                      \"It may be overridden by per-node \""},{"line_number":135,"context_line":"                      \"\u0027ansible_clean_steps_config\u0027 option in node\u0027s \""},{"line_number":136,"context_line":"                      \"\u0027driver_info\u0027 field.\")),"},{"line_number":137,"context_line":"    cfg.StrOpt(\u0027default_ansible_python_interpreter\u0027,"},{"line_number":138,"context_line":"               help\u003d_(\"Absolute path to the python interpreter on the \""},{"line_number":139,"context_line":"                      \"managed machines. By default, ansible uses \""},{"line_number":140,"context_line":"                      \"/usr/bin/python\")),"}],"source_content_type":"text/x-python","patch_set":12,"id":"5fc1f717_93c21233","line":137,"in_reply_to":"5fc1f717_13d14255","updated":"2019-03-07 15:10:29.000000000","message":"yes the idea is to override in driver_info\nI was thinking more of fixing the issue we have with ironic-standalone but I can add the implementation in this patch","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"50cdb2d91cf09c394d735e42ef74d1777564b6a4","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    cfg.StrOpt(\u0027default_ansible_python_interpreter\u0027,"},{"line_number":138,"context_line":"               help\u003d_(\"Absolute path to the python interpreter on the \""},{"line_number":139,"context_line":"                      \"managed machines. By default, ansible uses \""},{"line_number":140,"context_line":"                      \"/usr/bin/python\")),"},{"line_number":141,"context_line":"]"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5fc1f717_b3c5ce90","line":140,"updated":"2019-03-07 14:41:46.000000000","message":"btw let\u0027s switch the CI to /usr/bin/python3 (to prove this works)","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d8df2821c17789f6da0fb6427e0a482ea781e0e2","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    cfg.StrOpt(\u0027default_ansible_python_interpreter\u0027,"},{"line_number":138,"context_line":"               help\u003d_(\"Absolute path to the python interpreter on the \""},{"line_number":139,"context_line":"                      \"managed machines. By default, ansible uses \""},{"line_number":140,"context_line":"                      \"/usr/bin/python\")),"},{"line_number":141,"context_line":"]"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"5fc1f717_13ece2c5","line":140,"in_reply_to":"5fc1f717_b3c5ce90","updated":"2019-03-07 15:10:29.000000000","message":"I have a test running on another patch depending on this one but I guess it makes sense to just switch it here!","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"720e41d85d5926a232ce519e8988d80db2f8f921","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                      \"It may be overridden by per-node \""},{"line_number":135,"context_line":"                      \"\u0027ansible_clean_steps_config\u0027 option in node\u0027s \""},{"line_number":136,"context_line":"                      \"\u0027driver_info\u0027 field.\")),"},{"line_number":137,"context_line":"    cfg.StrOpt(\u0027default_ansible_python_interpreter\u0027,"},{"line_number":138,"context_line":"               help\u003d_(\"Absolute path to the python interpreter on the \""},{"line_number":139,"context_line":"                      \"managed machines. By default, ansible uses \""},{"line_number":140,"context_line":"                      \"/usr/bin/python\")),"}],"source_content_type":"text/x-python","patch_set":14,"id":"5fc1f717_d4d720bf","line":137,"range":{"start_line":137,"start_character":24,"end_line":137,"end_character":32},"updated":"2019-03-07 16:57:03.000000000","message":"We should probably remove \"ansible_\", since the configuration section is already called [ansible]","commit_id":"a181970c37ca75ab37f92de17115e2467b9b953e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"b461815caa3d2236ad9c7d5103cab201846c5414","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                      \"It may be overridden by per-node \""},{"line_number":135,"context_line":"                      \"\u0027ansible_clean_steps_config\u0027 option in node\u0027s \""},{"line_number":136,"context_line":"                      \"\u0027driver_info\u0027 field.\")),"},{"line_number":137,"context_line":"    cfg.StrOpt(\u0027default_ansible_python_interpreter\u0027,"},{"line_number":138,"context_line":"               help\u003d_(\"Absolute path to the python interpreter on the \""},{"line_number":139,"context_line":"                      \"managed machines. By default, ansible uses \""},{"line_number":140,"context_line":"                      \"/usr/bin/python\")),"}],"source_content_type":"text/x-python","patch_set":14,"id":"5fc1f717_2895e4e4","line":137,"range":{"start_line":137,"start_character":24,"end_line":137,"end_character":32},"in_reply_to":"5fc1f717_d4d720bf","updated":"2019-03-07 17:42:43.000000000","message":"agree","commit_id":"a181970c37ca75ab37f92de17115e2467b9b953e"}],"ironic/drivers/modules/ansible/deploy.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"50cdb2d91cf09c394d735e42ef74d1777564b6a4","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    inventory \u003d os.path.join(root, \u0027inventory\u0027)"},{"line_number":129,"context_line":"    ironic_vars \u003d {\u0027ironic\u0027: extra_vars}"},{"line_number":130,"context_line":"    if CONF.ansible.default_ansible_python_interpreter:"},{"line_number":131,"context_line":"        ironic_vars[\u0027ansible_python_interpreter\u0027] \u003d\\"},{"line_number":132,"context_line":"            CONF.ansible.default_ansible_python_interpreter"},{"line_number":133,"context_line":"        ironic_vars \u003d collections.OrderedDict(sorted(ironic_vars.items()))"},{"line_number":134,"context_line":"    args \u003d [CONF.ansible.ansible_playbook_script, playbook,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5fc1f717_53d7ca4c","line":131,"updated":"2019-03-07 14:41:46.000000000","message":"nit: I\u0027d prefer we used brackets instead of \\ for line continuation","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d8df2821c17789f6da0fb6427e0a482ea781e0e2","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    inventory \u003d os.path.join(root, \u0027inventory\u0027)"},{"line_number":129,"context_line":"    ironic_vars \u003d {\u0027ironic\u0027: extra_vars}"},{"line_number":130,"context_line":"    if CONF.ansible.default_ansible_python_interpreter:"},{"line_number":131,"context_line":"        ironic_vars[\u0027ansible_python_interpreter\u0027] \u003d\\"},{"line_number":132,"context_line":"            CONF.ansible.default_ansible_python_interpreter"},{"line_number":133,"context_line":"        ironic_vars \u003d collections.OrderedDict(sorted(ironic_vars.items()))"},{"line_number":134,"context_line":"    args \u003d [CONF.ansible.ansible_playbook_script, playbook,"}],"source_content_type":"text/x-python","patch_set":12,"id":"5fc1f717_73f3e69f","line":131,"in_reply_to":"5fc1f717_53d7ca4c","updated":"2019-03-07 15:10:29.000000000","message":"leftover from testing, I\u0027ll change it straight away","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"50cdb2d91cf09c394d735e42ef74d1777564b6a4","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    if CONF.ansible.default_ansible_python_interpreter:"},{"line_number":131,"context_line":"        ironic_vars[\u0027ansible_python_interpreter\u0027] \u003d\\"},{"line_number":132,"context_line":"            CONF.ansible.default_ansible_python_interpreter"},{"line_number":133,"context_line":"        ironic_vars \u003d collections.OrderedDict(sorted(ironic_vars.items()))"},{"line_number":134,"context_line":"    args \u003d [CONF.ansible.ansible_playbook_script, playbook,"},{"line_number":135,"context_line":"            \u0027-i\u0027, inventory,"},{"line_number":136,"context_line":"            \u0027-e\u0027, json.dumps(ironic_vars),"}],"source_content_type":"text/x-python","patch_set":12,"id":"5fc1f717_f3cb56a2","line":133,"updated":"2019-03-07 14:41:46.000000000","message":"why do you need this? seems worth a comment if it\u0027s really needed","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d8df2821c17789f6da0fb6427e0a482ea781e0e2","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    if CONF.ansible.default_ansible_python_interpreter:"},{"line_number":131,"context_line":"        ironic_vars[\u0027ansible_python_interpreter\u0027] \u003d\\"},{"line_number":132,"context_line":"            CONF.ansible.default_ansible_python_interpreter"},{"line_number":133,"context_line":"        ironic_vars \u003d collections.OrderedDict(sorted(ironic_vars.items()))"},{"line_number":134,"context_line":"    args \u003d [CONF.ansible.ansible_playbook_script, playbook,"},{"line_number":135,"context_line":"            \u0027-i\u0027, inventory,"},{"line_number":136,"context_line":"            \u0027-e\u0027, json.dumps(ironic_vars),"}],"source_content_type":"text/x-python","patch_set":12,"id":"5fc1f717_537eeae4","line":133,"in_reply_to":"5fc1f717_f3cb56a2","updated":"2019-03-07 15:10:29.000000000","message":"this is mainly to make testing easier\neverything is dumped to json from dict and since dict is not ordered, I found it hard to test the output properly\nmaybe I\u0027m seeing this from a wrong perspective...\nadvice welcome! :)","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"720e41d85d5926a232ce519e8988d80db2f8f921","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    if CONF.ansible.default_ansible_python_interpreter:"},{"line_number":131,"context_line":"        ironic_vars[\u0027ansible_python_interpreter\u0027] \u003d ("},{"line_number":132,"context_line":"            CONF.ansible.default_ansible_python_interpreter)"},{"line_number":133,"context_line":"        ironic_vars \u003d collections.OrderedDict(sorted(ironic_vars.items()))"},{"line_number":134,"context_line":"    args \u003d [CONF.ansible.ansible_playbook_script, playbook,"},{"line_number":135,"context_line":"            \u0027-i\u0027, inventory,"},{"line_number":136,"context_line":"            \u0027-e\u0027, json.dumps(ironic_vars),"}],"source_content_type":"text/x-python","patch_set":14,"id":"5fc1f717_94faf83f","line":133,"range":{"start_line":133,"start_character":0,"end_line":133,"end_character":74},"updated":"2019-03-07 16:57:03.000000000","message":"See suggestion in the next file.","commit_id":"a181970c37ca75ab37f92de17115e2467b9b953e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"b461815caa3d2236ad9c7d5103cab201846c5414","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    if CONF.ansible.default_ansible_python_interpreter:"},{"line_number":131,"context_line":"        ironic_vars[\u0027ansible_python_interpreter\u0027] \u003d ("},{"line_number":132,"context_line":"            CONF.ansible.default_ansible_python_interpreter)"},{"line_number":133,"context_line":"        ironic_vars \u003d collections.OrderedDict(sorted(ironic_vars.items()))"},{"line_number":134,"context_line":"    args \u003d [CONF.ansible.ansible_playbook_script, playbook,"},{"line_number":135,"context_line":"            \u0027-i\u0027, inventory,"},{"line_number":136,"context_line":"            \u0027-e\u0027, json.dumps(ironic_vars),"}],"source_content_type":"text/x-python","patch_set":14,"id":"5fc1f717_a888f4c5","line":133,"range":{"start_line":133,"start_character":0,"end_line":133,"end_character":74},"in_reply_to":"5fc1f717_94faf83f","updated":"2019-03-07 17:42:43.000000000","message":"Done","commit_id":"a181970c37ca75ab37f92de17115e2467b9b953e"}],"ironic/tests/unit/drivers/modules/ansible/test_deploy.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"720e41d85d5926a232ce519e8988d80db2f8f921","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            \u0027env\u0027, \u0027ANSIBLE_CONFIG\u003d/path/to/config\u0027,"},{"line_number":182,"context_line":"            \u0027ansible-playbook\u0027, \u0027/path/to/playbooks/deploy\u0027, \u0027-i\u0027,"},{"line_number":183,"context_line":"            \u0027/path/to/playbooks/inventory\u0027, \u0027-e\u0027,"},{"line_number":184,"context_line":"            \u0027{\"ansible_python_interpreter\": \"/usr/bin/python3\", \u0027"},{"line_number":185,"context_line":"            \u0027\"ironic\": {\"foo\": \"bar\"}}\u0027,"},{"line_number":186,"context_line":"            \u0027--tags\u003dspam\u0027, \u0027--skip-tags\u003dham\u0027,"},{"line_number":187,"context_line":"            \u0027--private-key\u003d/path/to/key\u0027, \u0027-vvv\u0027, \u0027--timeout\u003d100\u0027)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5fc1f717_d4008037","line":185,"range":{"start_line":184,"start_character":12,"end_line":185,"end_character":38},"updated":"2019-03-07 16:57:03.000000000","message":"I suggest you use mock.ANY here, then extract this argument, JSON-decode it, and compute with expected. Something like\n\n vars \u003d execute_mock.call_args[0][7]\n self.assertEqual({...}, json.loads(vars))","commit_id":"a181970c37ca75ab37f92de17115e2467b9b953e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"b461815caa3d2236ad9c7d5103cab201846c5414","unresolved":false,"context_lines":[{"line_number":181,"context_line":"            \u0027env\u0027, \u0027ANSIBLE_CONFIG\u003d/path/to/config\u0027,"},{"line_number":182,"context_line":"            \u0027ansible-playbook\u0027, \u0027/path/to/playbooks/deploy\u0027, \u0027-i\u0027,"},{"line_number":183,"context_line":"            \u0027/path/to/playbooks/inventory\u0027, \u0027-e\u0027,"},{"line_number":184,"context_line":"            \u0027{\"ansible_python_interpreter\": \"/usr/bin/python3\", \u0027"},{"line_number":185,"context_line":"            \u0027\"ironic\": {\"foo\": \"bar\"}}\u0027,"},{"line_number":186,"context_line":"            \u0027--tags\u003dspam\u0027, \u0027--skip-tags\u003dham\u0027,"},{"line_number":187,"context_line":"            \u0027--private-key\u003d/path/to/key\u0027, \u0027-vvv\u0027, \u0027--timeout\u003d100\u0027)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5fc1f717_68920cf9","line":185,"range":{"start_line":184,"start_character":12,"end_line":185,"end_character":38},"in_reply_to":"5fc1f717_d4008037","updated":"2019-03-07 17:42:43.000000000","message":"thanks!","commit_id":"a181970c37ca75ab37f92de17115e2467b9b953e"}],"releasenotes/notes/add-ansible-python-interpreter-2035e0f23d407aaf.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"50cdb2d91cf09c394d735e42ef74d1777564b6a4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds option \u0027[ansible]default_ansible_python_interpreter\u0027 to allow"},{"line_number":4,"context_line":"    to choose the python interpreter that ansible uses on managed machines."},{"line_number":5,"context_line":"    By default, ansible uses /usr/bin/python as interpreter, making the"},{"line_number":6,"context_line":"    assumption that that path is always present on remote managed systems."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5fc1f717_d3c2da85","line":3,"updated":"2019-03-07 14:41:46.000000000","message":"nit: `` around options, also I\u0027d s/to allow//","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d8df2821c17789f6da0fb6427e0a482ea781e0e2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds option \u0027[ansible]default_ansible_python_interpreter\u0027 to allow"},{"line_number":4,"context_line":"    to choose the python interpreter that ansible uses on managed machines."},{"line_number":5,"context_line":"    By default, ansible uses /usr/bin/python as interpreter, making the"},{"line_number":6,"context_line":"    assumption that that path is always present on remote managed systems."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5fc1f717_b36cee36","line":3,"in_reply_to":"5fc1f717_d3c2da85","updated":"2019-03-07 15:10:29.000000000","message":"yes, thanks, that was a typo!","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"50cdb2d91cf09c394d735e42ef74d1777564b6a4","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds option \u0027[ansible]default_ansible_python_interpreter\u0027 to allow"},{"line_number":4,"context_line":"    to choose the python interpreter that ansible uses on managed machines."},{"line_number":5,"context_line":"    By default, ansible uses /usr/bin/python as interpreter, making the"},{"line_number":6,"context_line":"    assumption that that path is always present on remote managed systems."},{"line_number":7,"context_line":"    This might not be always the case, for example in custom build"},{"line_number":8,"context_line":"    images or python3 native distributions."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5fc1f717_73bf66fb","line":5,"updated":"2019-03-07 14:41:46.000000000","message":"nit: ``/usr/bin/python``","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d8df2821c17789f6da0fb6427e0a482ea781e0e2","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Adds option \u0027[ansible]default_ansible_python_interpreter\u0027 to allow"},{"line_number":4,"context_line":"    to choose the python interpreter that ansible uses on managed machines."},{"line_number":5,"context_line":"    By default, ansible uses /usr/bin/python as interpreter, making the"},{"line_number":6,"context_line":"    assumption that that path is always present on remote managed systems."},{"line_number":7,"context_line":"    This might not be always the case, for example in custom build"},{"line_number":8,"context_line":"    images or python3 native distributions."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5fc1f717_f3459671","line":5,"in_reply_to":"5fc1f717_73bf66fb","updated":"2019-03-07 15:10:29.000000000","message":"Done","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"50cdb2d91cf09c394d735e42ef74d1777564b6a4","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    By default, ansible uses /usr/bin/python as interpreter, making the"},{"line_number":6,"context_line":"    assumption that that path is always present on remote managed systems."},{"line_number":7,"context_line":"    This might not be always the case, for example in custom build"},{"line_number":8,"context_line":"    images or python3 native distributions."},{"line_number":9,"context_line":"    With this option the operator has the ability to set the absolute"},{"line_number":10,"context_line":"    path of the python interpreter on the remote machines, for example"},{"line_number":11,"context_line":"    /usr/bin/python3."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5fc1f717_93bc5206","line":8,"updated":"2019-03-07 14:41:46.000000000","message":"nit: Python 3","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d8df2821c17789f6da0fb6427e0a482ea781e0e2","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    By default, ansible uses /usr/bin/python as interpreter, making the"},{"line_number":6,"context_line":"    assumption that that path is always present on remote managed systems."},{"line_number":7,"context_line":"    This might not be always the case, for example in custom build"},{"line_number":8,"context_line":"    images or python3 native distributions."},{"line_number":9,"context_line":"    With this option the operator has the ability to set the absolute"},{"line_number":10,"context_line":"    path of the python interpreter on the remote machines, for example"},{"line_number":11,"context_line":"    /usr/bin/python3."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5fc1f717_134b8284","line":8,"in_reply_to":"5fc1f717_93bc5206","updated":"2019-03-07 15:10:29.000000000","message":"Done","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"50cdb2d91cf09c394d735e42ef74d1777564b6a4","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    images or python3 native distributions."},{"line_number":9,"context_line":"    With this option the operator has the ability to set the absolute"},{"line_number":10,"context_line":"    path of the python interpreter on the remote machines, for example"},{"line_number":11,"context_line":"    /usr/bin/python3."},{"line_number":12,"context_line":"    The same interpreter will be used in all operations that use the"},{"line_number":13,"context_line":"    ansible deploy interface."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5fc1f717_33379eb3","line":11,"updated":"2019-03-07 14:41:46.000000000","message":"nit: ditto re ``","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d8df2821c17789f6da0fb6427e0a482ea781e0e2","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    images or python3 native distributions."},{"line_number":9,"context_line":"    With this option the operator has the ability to set the absolute"},{"line_number":10,"context_line":"    path of the python interpreter on the remote machines, for example"},{"line_number":11,"context_line":"    /usr/bin/python3."},{"line_number":12,"context_line":"    The same interpreter will be used in all operations that use the"},{"line_number":13,"context_line":"    ansible deploy interface."}],"source_content_type":"text/x-yaml","patch_set":12,"id":"5fc1f717_b35f0e40","line":11,"in_reply_to":"5fc1f717_33379eb3","updated":"2019-03-07 15:10:29.000000000","message":"Done","commit_id":"60e881e5abebd948ca113f780de4715d89f45269"}]}
