<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
On 5/17/12 4:38 PM, Doug Hellmann wrote:
<blockquote
cite="mid:CADb+p3STm3jNxS8jxKjCmYvFXGxwO1qaiF_SRZ3g4WanyV+bAQ@mail.gmail.com"
type="cite"><br>
<snip><br>
<div class="gmail_quote"><br>
<div>In the wikistatus plugin I notice that you modify the
global FLAGS when wikistatus.py is imported. Is that the right
time to do that, or should it happen during the on-load
handler in the plugin class? Or maybe even in the plugin
manager, which could ask the plugin for the new options and
then modify FLAGS itself. It seems like lots of Nova code
modifies FLAGS during import, but having an explicit trigger
for that (rather than depending on import order) seems safer
to me.</div>
</div>
</blockquote>
I don't feel strongly about this -- I'm just following the example
set by existing Nova code. Can you think of a corner case where
loading it at import time would cause problems? Alternatively, can
you think of a corner case where we would want a flag to be defined
during the magic moment /between/ import time and the load callback?<br>
<br>
I can't think of a case for either, although I have the vague
feeling that the latter is slightly more possible (if still
improbable.)<br>
<br>
<blockquote
cite="mid:CADb+p3STm3jNxS8jxKjCmYvFXGxwO1qaiF_SRZ3g4WanyV+bAQ@mail.gmail.com"
type="cite">
<div class="gmail_quote">
<div><br>
</div>
<div>If the entry point for each plugin is given a unique name
(instead of being called "plugin", as the sharedfs plugin is)
we would be able to log "loading plugin X" as well as provide
options to control which plugins are activated. I don't know
if that latter idea is a goal or not.</div>
</div>
</blockquote>
If leaving in that option is free, then I'm all for it. I'm still a
bit new to entry points... is the entry-point name a totally
arbitrary string?<br>
<br>
Also, is supporting unique names the same thing as /requiring/
unique names? Would this ultimately result in us needing a
governed, hierarchical namespace?<br>
<br>
<blockquote
cite="mid:CADb+p3STm3jNxS8jxKjCmYvFXGxwO1qaiF_SRZ3g4WanyV+bAQ@mail.gmail.com"
type="cite">
<div class="gmail_quote"><br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
- Two different loading pathways -- is that useful or just
confusing?<br>
</blockquote>
<br>
<div><br>
</div>
<div>"One and only one obvious way to do it."</div>
</div>
</blockquote>
<br>
OK, I'm convinced. Outside of the common client, are entrypoints
already a hard dependency elsewhere in OpenStack such that we don't
lose anything by requiring them?<br>
<br>
<blockquote
cite="mid:CADb+p3STm3jNxS8jxKjCmYvFXGxwO1qaiF_SRZ3g4WanyV+bAQ@mail.gmail.com"
type="cite">
<div class="gmail_quote">
<div> </div>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
- Should the plugin base class interpose itself between the
plugin and python-openstackclient in order to enforce
interface versioning? Is that even possible?<br>
</blockquote>
<div><br>
</div>
<div>We could probably figure out a way to do that, but I don't
know why you would want to. What did you have in mind? Which
interface are you worried about versioning, the CLI itself?</div>
</div>
</blockquote>
<br>
I'm not sure I do want to, but here's my concern: Right now the
common client's API for extending the commandline is entirely
internal to the common client itself. When I write the sharedfs
plugin to make use of that same API, I'm treating that internal API
as external... and I don't like being the only person in the world
doing that.<br>
<br>
Of course, if the expectation is that that common client API will
soon become public/documented/frozen anyway, then there's no
problem.<br>
<br>
-Andrew<br>
<br>
</body>
</html>