<div dir="ltr">Thanks Jay.<div><br></div><div>The scheduler plugin is not a scheduler filter.</div><div><br></div><div>We implemented a scheduler instead of using nova native scheduler.</div><div><br></div><div>One of our scheduler component need to fetch image metadata by image_id( at this time, there is not instance ).</div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 14, 2014 at 9:29 AM, Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 08/13/2014 08:31 PM, zhiwei wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi all,<br>
<br>
We wrote a nova schedule plugin that need to fetch image metadata by<br>
image_id, but encountered one thing, we did not have the glance context.<br>
<br>
Our solution is to configure OpenStack admin user and password to<br>
nova.conf, as you know this is not good.<br>
<br>
So, I want to ask if there are any other ways to do this?<br>
</blockquote>
<br></div></div>
You should not have to do a separate fetch of image metadata in a scheduler filter (which is what I believe you meant by "plugin" above?).<br>
<br>
The filter object's host_passes() method has a filter_properties parameter that contains the request_spec, that in turn contains the image, which in turn contains the image "metadata". You can access it like so:<br>


<br>
 def host_passes(self, host_state, filter_properties):<br>
     request_spec = filter_properties['request_<u></u>spec']<br>
     image_info = request_spec['image']<br>
     # Certain image attributes are accessed via top-level keys, like<br>
     # size, disk_format, container_format and checksum<br>
     image_size = image_info['size']<br>
     # Other attributes can be accessed in the "properties" collection<br>
     # of key/value pairs<br>
     image_props =  image.get('properties', {})<br>
     for key, value in image_props.items():<br>
         # do something...<br>
<br>
Best,<br>
-jay<br>
<br>
<br>
<br>
______________________________<u></u>_________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.<u></u>org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><br>
</blockquote></div><br></div>