<div dir="ltr">Sorry to bring back this thread, but I am thinking through some operational aspects and want to make sure that my assumptions are correct and won't impact things later on (have been accounted for in the design).<div><br></div><div>1. Any documentation requirements? Since there are both core and plugin commands. A user on a pulp instance would be able to find out what commands are available to them (in other words not needing to know which plugins are installed). Perhaps being able to ship/make available this same information as an actor knowing which plugins I am shipping (or should be there).</div><div><br></div><div>2. I can see an operator wanting to update or patch the cli without changing other pulp software - so I'm assuming this is a separate deliverable or would this be just part of core/plugins? If they are separate I guess a new cli may be released when needed but if not pulp software can continue to be updated. My brain can't put together the words to describe that dependency relationship, but hopefully that workflow is clear.<br><div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div><br>I'm coming from a mindset that a minimal set of commands might be available initially and that it will be easy to add new ones as the need becomes clear and patch a system without causing concern that other things are changed.  However I do see this might be a short term problem to solve.</div></div></div></div></div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 11, 2020 at 3:21 PM Brian Bouterse <<a href="mailto:bmbouter@redhat.com">bmbouter@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I think having the commands namespaced by the plugin name would be an organized way to see what capabilities a given plugin is shipping. I imagine for pulpcore's commands they could be namespaced under 'core' or 'pulpcore'.</div><div><br></div><div>Also +1 to 'pulp' command name.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 11, 2020 at 6:42 AM David Davis <<a href="mailto:daviddavis@redhat.com" target="_blank">daviddavis@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">In some places, the API in Pulp 3 is very different from Pulp 2 but where it's possible and makes sense, I think we will want to do this. Perhaps this is a good argument for having plugin name after the "pulp" command (eg "pulp rpm ...", "pulp file ..."). <br clear="all"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>David</div></div></div></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 7, 2020 at 8:47 AM Konstantin M. Khankin <<a href="mailto:khankin.konstantin@gmail.com" target="_blank">khankin.konstantin@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Is it an option to keep the Pulp 2 CLI syntax as much as possible?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">чт, 7 мая 2020 г. в 15:28, Dennis Kliban <<a href="mailto:dkliban@redhat.com" target="_blank">dkliban@redhat.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 7, 2020 at 7:13 AM Tatiana Tereshchenko <<a href="mailto:ttereshc@redhat.com" target="_blank">ttereshc@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">+1 to `pulp` command.<br><div><br></div><div>I think for me as a user, the most logical would be to have a plugin name first and then follow the URL pattern.</div><div>The majority of commands are plugin specific. If I work with multiple plugins, it also makes it easy for me as a user to just change the plugin name in front for the commands which have the same structure in different plugins.</div><div>It also makes it visually clear that I work with a specific plugin, in comparison to when the plugin name is somewhere in the 3rd/4th place.</div><div>It will also allow not to guess in commands like the `pulp repositories rpm rpm`  which one is the plugin name and which one is a repo type.</div><div><br></div></div></blockquote><div>I agree that this would make much more clear to the user which 'rpm' is the plugin type and which 'rpm' is the resource type.<br></div><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 dir="ltr"><div></div><div>+1 for <br></div><div>pulp rpm content packages</div><div>pulp rpm repositories rpm</div><div>pulp rpm repositories mirror</div><div>...</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 6, 2020 at 7:58 PM Dennis Kliban <<a href="mailto:dkliban@redhat.com" target="_blank">dkliban@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, May 6, 2020 at 12:30 PM David Davis <<a href="mailto:daviddavis@redhat.com" target="_blank">daviddavis@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Matthias and I met today to go over some plans for a prototype. I wrote some notes[0] down. As part of the prototype, we'd propose two deliverables (one this week and one next week):<div><br></div><div>1. A set of ~2-3 click commands that use the bindings to interact with Pulp</div><div>2. Some openapi-generator templates that will be able to generate such commands from the schema</div><div><br></div><div>There is a question we had about how the commands for typed resources will be structured in the CLI. To illustrate with two endpoints:</div><div><br></div></div></blockquote><div><br></div><div>We should call the command 'pulp' instead of pulp-cli.<br></div><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 dir="ltr"><div></div><div># rpm.package content (/pulp/api/v3/content/rpm/packages/):</div><div>- pulp-cli rpm content packages ...</div><div>- pulp-cli content rpm packages ...</div><div>- pulp-cli rpm packages content ...</div><div>- ???</div></div></blockquote><div><br></div><div>I was thinking we should structure the commands similar to the URLs in the REST API.</div><div><br></div><div>pulp content rpm packages<br></div><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 dir="ltr"><div><br></div><div># file.file repositories (/pulp/api/v3/repositories/file/file/):</div><div>- pulp-cli file repositories file ...</div><div>- pulp-cli repositories file file ...</div><div>- pulp-cli file file repositories ...</div><div>- ???</div><div><div><br></div></div></div></blockquote><div>pulp repositories file <br></div><div><br></div><div>Plugins that provide multiple types of the same resource would need to be more descriptive. Though I can see a practical reason for requiring all resources to be that descriptive. <br></div><div><br></div><div>pulp repositories rpm rpm</div><div>pulp repositories rpm mirror<br></div><div><br></div><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 dir="ltr"><div><div></div><div>[0] <a href="https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig?view#Prototype" target="_blank">https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig?view#Prototype</a></div><div><br><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>David</div></div></div></div></div></div></div></div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 30, 2020 at 1:42 PM David Davis <<a href="mailto:daviddavis@redhat.com" target="_blank">daviddavis@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Today we met to discuss some ideas for a technical design for how the CLI would work. Here's a copy of our notes:</div><div><br></div><div><a href="https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig#Technical-discussion" target="_blank">https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig#Technical-discussion</a><br></div><div><br></div><div>And there is a rough design in the document as well:</div><div><br></div><div><a href="https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig#Design" target="_blank">https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig#Design</a> <br></div><div><br></div>I have also entered the CLI user stories from our meeting last week into redmine under the Pulp CLI project:<div><br></div><div><a href="https://pulp.plan.io/versions/93" target="_blank">https://pulp.plan.io/versions/93</a></div><div><br></div><div>And I've filed a user story that we talked about today that would handle sync, publish, and distribution of repos. Feedback welcome:</div><div><br></div><div><a href="https://pulp.plan.io/issues/6626" target="_blank">https://pulp.plan.io/issues/6626</a><br></div><div><br></div><div>Matthias and I are planning to meet next week to look at creating a proof of concept that would provide 2-3 commands. If anyone is interested in joining us, please let me know and I can add you.<br clear="all"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>David</div></div></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 28, 2020 at 8:06 AM David Davis <<a href="mailto:daviddavis@redhat.com" target="_blank">daviddavis@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I've also started working on some questions about how the CLI will work. Feel free to add some of your own:<div><br></div><div><a href="https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig?view#Technical-discussion" target="_blank">https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig?view#Technical-discussion</a><br clear="all"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>David</div></div></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 28, 2020 at 8:05 AM David Davis <<a href="mailto:daviddavis@redhat.com" target="_blank">daviddavis@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I have set up a meeting to discuss the CLI technical design. Below are the details. I think a video conference might be easier for technical discussion but am open to consider meeting on #pulp-meeting again.<div><br></div><div>URL: <a href="https://meet.google.com/vgx-bzbb-wnh" target="_blank">https://meet.google.com/vgx-bzbb-wnh</a></div><div>Date/time: April 30, 2020 at 9:00am ET (1pm UTC)<br clear="all"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>David</div></div></div></div></div></div></div></div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Apr 24, 2020 at 10:29 AM David Davis <<a href="mailto:daviddavis@redhat.com" target="_blank">daviddavis@redhat.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Today we met in #pulp-meeting on freenode to discuss the user stories for a Pulp 3 CLI MVP. The document with the user stories is available below. I'd like to ask for any feedback from users or plugin writers. <div><br></div><div>The goal of the CLI MVP is to cover the pulp_file happy path (sync, publish, distribute) and make it possible for plugin writers to generate and write their own commands. I'm imagining that plugins will release their own sets of CLI commands after we complete the initial MVP.<div><br></div><div><a href="https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig" target="_blank">https://hackmd.io/aH9RqAS_TrGyxoi1UGRgig</a></div><div><br></div><div>Feedback is welcome. I plan to enter these user stories into redmine next week.<br clear="all"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>David</div></div></div></div></div></div></div></div></div></div></div>
</blockquote></div>
</blockquote></div>
</blockquote></div>
</blockquote></div>
_______________________________________________<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/listinfo/pulp-dev</a><br>
</blockquote></div></div>
_______________________________________________<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/listinfo/pulp-dev</a><br>
</blockquote></div>
</blockquote></div></div>
_______________________________________________<br>
Pulp-list mailing list<br>
<a href="mailto:Pulp-list@redhat.com" target="_blank">Pulp-list@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-list" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pulp-list</a></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr">Ханкин Константин<br></div>
_______________________________________________<br>
Pulp-list mailing list<br>
<a href="mailto:Pulp-list@redhat.com" target="_blank">Pulp-list@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-list" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pulp-list</a></blockquote></div>
_______________________________________________<br>
Pulp-list mailing list<br>
<a href="mailto:Pulp-list@redhat.com" target="_blank">Pulp-list@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/pulp-list" rel="noreferrer" target="_blank">https://www.redhat.com/mailman/listinfo/pulp-list</a></blockquote></div>
_______________________________________________<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/listinfo/pulp-dev</a><br>
</blockquote></div>