<font size=2 face="sans-serif">OpenStackClient (OSC) doesn't and won't
allow "unsupported" CLI options.  With the transition to
OSC, the plan is to deprecate the neutron client CLI which will implicitly
include the deprecation of such options.</font>
<br>
<br><font size=2 face="sans-serif">Richard Theis (rtheis)</font>
<br><font size=2 face="sans-serif">rtheis@us.ibm.com</font>
<br>
<br>
<br>
<br><font size=1 color=#5f5f5f face="sans-serif">From:      
 </font><font size=1 face="sans-serif">reedip banerjee <reedip14@gmail.com></font>
<br><font size=1 color=#5f5f5f face="sans-serif">To:      
 </font><font size=1 face="sans-serif">openstack-dev@lists.openstack.org</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Date:      
 </font><font size=1 face="sans-serif">03/17/2016 10:09 PM</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Subject:    
   </font><font size=1 face="sans-serif">[openstack-dev]
[Neutron][python-neutronclient] Adding new options to the existing Neutron
CLIs</font>
<br>
<hr noshade>
<br>
<br>
<br><font size=3>Dear All Neutron Developers and Reviewers,</font>
<br>
<br><font size=3>I have a query/concern related to the parsing of options
in python-neutronclient.</font>
<br><font size=3>I would like to bring this up, as it "may" also
impact the transition of the CLIs to the openstack client as well.</font>
<br>
<br><font size=3>NeutronClient is pretty special in its behavior, and has
one pretty powerful feature of parsing extra options. This feature states
that, if the CLI does not support an option but the API does, and the user
passes a value for this option, then the "unsupported" CLI option
is parsed , and forwarded to the Neutron Server for processing.</font>
<br>
<br><font size=3>Example:</font>
<br><font size=3>Currently "neutron net-create" does not support
--router:external. If you see the output of "neutron net-create -h"
you would not find "--router-external". However, this option
is supported in the API since Juno [2]. So therefore , if a user executes
the following CLI </font>
<br><font size=3><i>" neutron net-create TestNetwork --router-external" </i></font>
<br>
<br><font size=3>then [1] would be observed as an output.</font>
<br>
<br><font size=3>Now the query/concern comes next....</font>
<br><font size=3>Any option which is not supported by the CLI is open to
the above parsing.</font>
<br><font size=3>Therefore , for net-create and net-update, all the following
are possible:</font>
<br>
<br><font size=3><i>neutron net-create --router:external=True TESTNetwork
--(A)</i></font>
<br><font size=3><i>neutron net-create --router:external TESTNetwork  --(B)</i></font>
<br><font size=3><i>neutron net-create TESTNetwork --router:external --(C)</i></font>
<br><font size=3><i>neutron net-create TESTNetwork --router:external=True --(D)</i></font>
<br><font size=3><i>neutron net-create TESTNetwork --router:external
True --(E)</i></font>
<p><font size=3>However, user is not aware of the --router:external option
because it is not visible in the HELP section ( this is true for other
CLI options as well).</font>
<p><font size=3>In order to demonstrate these options to the User, we have
to update add_known_arguments function to display them. And once they are
known to the CLI, the parsing changes, and some of the options from (A)
to (E) may not be supported ( Please see [3] for an ongoing, though now
dormant, discussion ). </font>
<p><font size=3>Note that this discussion is not limited only to net-create,
but possibly other CLIs as well which do not completely expose the Options
which the API can support.I am , however, taking the<i> net-create</i>
example as a case-study.</font>
<p><font size=3>I would like to know how we can move forward in this regards:</font>
<p><font size=3>-- Should NeutronClient continue to support all options
from (A) to (E), but deprecate some of them in Openstack Client?</font>
<p><font size=3>-- Should we deprecate them in NeutronClient itself, so
that the users are comfortable with the options when the migration to Openstack
Client occurs?</font>
<p><font size=3>-- Any other suggestions....</font>
<p><font size=3 color=#2f2f2f face="Arial">[1]: </font><a href=http://paste.openstack.org/show/491032/><font size=3 color=blue face="Arial"><u>http://paste.openstack.org/show/491032/</u></font></a>
<p><font size=3 color=#2f2f2f face="Arial">[2]: </font><a href="http://docs.openstack.org/juno/install-guide/install/apt/content/neutron_initial-external-network.html"><font size=3 color=blue face="Arial"><u>http://docs.openstack.org/juno/install-guide/install/apt/content/neutron_initial-external-network.html</u></font></a>
<p><font size=3>[3]: </font><a href=https://review.openstack.org/#/c/137279/><font size=3 color=blue><u>https://review.openstack.org/#/c/137279/</u></font></a>
<br>
<br><font size=3>-- </font>
<br><font size=3>Thanks and Regards,<br>
Reedip Banerjee</font>
<br><font size=3>IRC: reedip</font>
<br>
<br><font size=3><br>
<br>
</font><tt><font size=2>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe<br>
</font></tt><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"><tt><font size=2>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</font></tt></a><tt><font size=2><br>
</font></tt>
<br>
<br>