<div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Feb 25, 2014 at 5:44 PM, Sylvain Bauza <span dir="ltr"><<a href="mailto:sylvain.bauza@gmail.com" target="_blank">sylvain.bauza@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Thanks Doug for replying,<div><br></div><div class="gmail_extra">
<br><br><div class="gmail_quote">2014-02-25 23:10 GMT+01:00 Doug Hellmann <span dir="ltr"><<a href="mailto:doug.hellmann@dreamhost.com" target="_blank">doug.hellmann@dreamhost.com</a>></span>:<div class=""><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-size:small"><br></div><div class="gmail_extra"><div class="gmail_quote"><div><div>
 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">
<div>Do you have any idea on how I could get my goal, ie. having a static input plus some extra variable inputs ? I was also thinking about playing with __getattr__ and __setattr__ but I'm not sure the Registry could handle that.</div>


</div></blockquote><div><br></div></div><div><div style="font-size:small">Why don't you know what the data is going to look like before you receive it?</div></div><div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr"><div>One last important point, this API endpoint (Host) is admin-only in case of you mention the potential security issues it could lead.</div></div></blockquote><div><br></div></div><div><div style="font-size:small">


My issue with this sort of API isn't security, it's that describing how to use it for an end user is more difficult than having a clearly defined static set of inputs and outputs.</div></div><div><div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote"><div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div><div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br></blockquote></div></div></div></div></div>

</blockquote></div></div></div></div></blockquote></div></div></div></div></div></blockquote><div><br></div></div><div>tl;dr: Admin can provide extra key/value pairs for defining a single Host thanks to the API, so we should have possibility to have dynamic key/value pairs for Host.</div>

<div><br></div><div>Ok, sounds like I have to explain the use-case there. Basically, Climate provides an API where admin has to enroll hosts for provisioning purposes. The thing is, we only need to get the hostname because we place a call to Nova for getting the metrics.</div>

<div>Based on these metrics, we do allow users to put requests for leases based on given metrics (like VCPUs or memory limits) and we elect some hosts.</div><div><br></div><div>As the Nova scheduler is not yet available as a service, we do need to implement our own possibilities for adding metrics that are not provided by Nova, and thus we allow the possibility to add extra key/value pairs within the API call for adding a Host.</div>

<div><br></div><div>With API v1 (Flask with no input validation), the possibility was quite easy, as we were getting the dict and diretly passing it to the Manager. Now, I have to find some way to still leave the possibility to add extra metrics.</div>

<div><br></div><div>Example of a Host request body is : </div><div>{ 'name': foo,</div><div>  'fruits': 'bananas',</div><div>  'vgpus': 2}</div><div><br></div><div>As 'fruits' and 'vgpus' are dynamic keys, I should be able to accept them anyway using WSME.</div>

<div><br></div><div>Hope it's clearer now, because at the moment I'm thinking of bypassing WSME for handling the POST/PUT requests...<div class="gmail_default" style="font-size:small;display:inline"></div></div>
</div></div></div></blockquote><div><br></div><div><div class="gmail_default" style="font-size:small">So you're not segregating the dynamic part of the API at all from the static part?</div><div class="gmail_default" style="font-size:small">
<br></div><div class="gmail_default" style="font-size:small">Doug</div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><div class="gmail_default" style="font-size:small;display:inline"></div></div><span class="HOEnZb"><font color="#888888"><div><br></div><div>-Sylvain</div>
</font></span></div></div></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div></div>