<div dir="ltr"><div>Hey all,</div><div><br></div><div>As some of you will know there is work going on to replace Mistral with Ansible. There is an initial spec[1]   and a few in-flight patches here to create the initial playbooks. In doing this work, I hit an issue I wanted to get some input in.</div><div><br></div><div>first the tl;dr - what is our policy on changing the output from tripleoclient? It is proving difficult to keep it the same and in some cases changes will be required (we won't have Mistral execution IDs to print for example).</div><div><br></div><div>As a quick reminder, in the current code we print from tripleoclient and Mistral sends messages via Zaqar to tripleoclient (which it then prints). This allows for "real time" updates from workflows. For example, introspection will print updates as introspection of nodes is completed. With Ansible it is tricky to have this same result.</div><div><br></div><div>I can think of three options;</div><div><br></div><div>1. We run Ansible in the background, essentially hiding it and then polling OpenStack services to look for the expected state changes. We can then display this to the user.</div><div><br></div><div>2. We go for a "ansible native" approach and stream the ansible output to the user. This will be familiar to anyone familiar with Ansible but it will mean the output completely changes. This is also the easiest option (from an implementation point of view)<br></div><div><br></div><div>3. I have not tested this idea, but I think we could have a custom Ansible module that writes messages to a tempfile. tripleoclient could then consume them and display them to the user. This would be similar to idea 1, but rather than polling services we constantly read a file and display those "messages" from ansible. This would be closest to the current Mistral and Zaqar solution.<br></div><div><br></div><div><br></div><div>Personally I am a bit torn. One of the reasons we want to use Ansible is because developers/users are more familiar with debugging it. However, if we hide ansible that might not help very much. So I think in the long run option 2 might be best. However, that completely changes the output, it limits us to what Ansible can output and frankly, in my experience, Ansible output is ugly and often hard to read. <br></div><div><br></div><div>I am curious to know what y'all think and hopefully there are some other options too.<br></div><div><br></div><div>Thanks,</div><div>Dougal<br></div><div><br></div><div><br></div><div>[1] <a href="https://review.opendev.org/#/c/679272/">https://review.opendev.org/#/c/679272/</a></div><div>[2] <a href="https://review.opendev.org/#/q/status:open+topic:mistral_to_ansible">https://review.opendev.org/#/q/status:open+topic:mistral_to_ansible</a></div></div>