<div dir="ltr"><div><div><div>A few of us[0] met earlier today to discuss further steps with the CLI. We agreed on the following next steps:<br></div><br></div><div>1) Over the next week @bizhang is going to explore how we can add value to coreapi-cli[1] - in particular see about adding polling for operations that return tasks<br><br></div>2) We want to send a note out to pulp-list to ask users the following questions:<br><br><div style="margin-left:40px"><span id="gmail-m_-1957959285152308667m_-7283250141723434352gmail-:hv.co" class="gmail-m_-1957959285152308667m_-7283250141723434352gmail-tL8wMe gmail-m_-1957959285152308667m_-7283250141723434352gmail-EMoHub" style="text-align:left" dir="ltr">- What commands or functionality in the CLI do you rely on the most?</span><br><span id="gmail-m_-1957959285152308667m_-7283250141723434352gmail-:hv.co" class="gmail-m_-1957959285152308667m_-7283250141723434352gmail-tL8wMe gmail-m_-1957959285152308667m_-7283250141723434352gmail-EMoHub" style="text-align:left" dir="ltr">- Are there things you wish the CLI had or did?</span><br><span id="gmail-m_-1957959285152308667m_-7283250141723434352gmail-:hv.co" class="gmail-m_-1957959285152308667m_-7283250141723434352gmail-tL8wMe gmail-m_-1957959285152308667m_-7283250141723434352gmail-EMoHub" style="text-align:left" dir="ltr">- Why do you use the CLI over using the REST API directly?</span><br><span id="gmail-m_-1957959285152308667m_-7283250141723434352gmail-:hv.co" class="gmail-m_-1957959285152308667m_-7283250141723434352gmail-tL8wMe gmail-m_-1957959285152308667m_-7283250141723434352gmail-EMoHub" style="text-align:left" dir="ltr">- Do you strictly use the CLI or do you use other things like Katello or the REST API?</span><br><span id="gmail-m_-1957959285152308667m_-7283250141723434352gmail-:hv.co" class="gmail-m_-1957959285152308667m_-7283250141723434352gmail-tL8wMe gmail-m_-1957959285152308667m_-7283250141723434352gmail-EMoHub" style="text-align:left" dir="ltr">- Would you prefer a CLI or a basic web UI (that leverages something like Django admin)?<br></span></div><br><br></div>[0] dawalker, daviddavis, bizhang, asmacdo, dkliban<br>[1] <a href="http://www.coreapi.org/">http://www.coreapi.org/</a><br><div><div><span id="gmail-m_-1957959285152308667m_-7283250141723434352gmail-:hv.co" class="gmail-m_-1957959285152308667m_-7283250141723434352gmail-tL8wMe gmail-m_-1957959285152308667m_-7283250141723434352gmail-EMoHub" style="text-align:left" dir="ltr"></span></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 21, 2018 at 11:26 AM, Bihan Zhang <span dir="ltr"><<a href="mailto:bizhang@redhat.com" target="_blank">bizhang@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I'm +1 to shipping a CLI out with our GA. According to our last community survey ~47% of users used a CLI, vs ~33% using a REST API (the last ~20% uses Katello/Sat UI/Foreman) [0].¬†</div><div><br></div><div>I think there should be some single call operations that the CLI does support- for example creating a pulp_python remote from a requirements.txt. The pulp_python REST API remote endpoint expects a dictionary of projects, and specifiers; the same information present in a requirements.txt, but it would be inappropriate for the endpoint to only support remote creation from a requirements.txt, since there's many other formats this information might be present in (Pipfile, Pipfile.lock, pyproject.toml, etc)</div><div>So the REST API should be left generic, but the CLI should support parsing these files and sending a formatted request to the endpoint.</div><div><br></div><div>The role of CLI should be to make workflows easier but I think for the GA we should have minimal workflows. We should start with a 1-1 mapping for core endpoints, with perhaps one additional 'pulp-cli quickstart' command that will create a repository, a remote, a publisher, and a distribution with a single command. Any additional workflow features can be added by user request.</div><div><br></div><div>And plugins can ship out their own CLI features (or not) separately.</div><div><br></div><div>[0] <a href="https://pulpproject.org/2017/08/08/community-survey-results/" target="_blank">https://pulpproject.org/2017/0<wbr>8/08/community-survey-results/</a></div><div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Mon, May 21, 2018 at 10:24 AM, Bryan Kearney <span dir="ltr"><<a href="mailto:bkearney@redhat.com" target="_blank">bkearney@redhat.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="h5"><span>On 05/21/2018 09:56 AM, David Davis wrote:<br>
>>¬†that the CLI does no "single call" operations. Those are already<br>
> handled veyr well by httpie.<br>
> <br>
> If a user wants for example to update an object<br>
> (repo/remote/distribution/etc)<wbr>, then they have to switch from the CLI to<br>
> httpie?<br>
<br>
<br>
</span>I assume pulp is focused on sysadmins, yes? If so, are there other tools<br>
targeted at this audience that does not have a cli?<br>
<span class="m_-2223166753565123412m_-7989451361612031132gmail-m_7266290257399833136HOEnZb"><font color="#888888"><br>
-- bk<br>
<br>
<br>
<br>
</font></span><br></div></div><span class="">______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com" target="_blank">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
<br></span></blockquote></div><br></div></div>
<br>______________________________<wbr>_________________<br>
Pulp-dev mailing list<br>
<a href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-dev" rel="noreferrer" target="_blank">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
<br></blockquote></div><br></div>