Hi Jay.

The case is: When heat create a stack, it will first call our
scheduler(will pass image_id), our scheduler will get image metadata by
image_id.

Our scheduler will build a placement policy through image metadata, then
start booting VM.


Thanks.


On Thu, Aug 14, 2014 at 10:28 AM, Jay Pipes <[email protected]> wrote:

> On 08/13/2014 10:22 PM, zhiwei wrote:
>
>> Thanks Jay.
>>
>> The scheduler plugin is not a scheduler filter.
>>
>> We implemented a scheduler instead of using nova native scheduler.
>>
>
> OK. Any reason why you did this? Without any details on what your
> scheduler does, it's tough to give advice on how to solve your problems.
>
>
>  One of our scheduler component need to fetch image metadata by image_id(
>> at this time, there is not instance ).
>>
>
> Why? Again, the request_spec contains all the information you need about
> the image...
>
> Best,
> -jay
>
>  On Thu, Aug 14, 2014 at 9:29 AM, Jay Pipes <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>     On 08/13/2014 08:31 PM, zhiwei wrote:
>>
>>         Hi all,
>>
>>         We wrote a nova schedule plugin that need to fetch image metadata
>> by
>>         image_id, but encountered one thing, we did not have the glance
>>         context.
>>
>>         Our solution is to configure OpenStack admin user and password to
>>         nova.conf, as you know this is not good.
>>
>>         So, I want to ask if there are any other ways to do this?
>>
>>
>>     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?).
>>
>>     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:
>>
>>       def host_passes(self, host_state, filter_properties):
>>           request_spec = filter_properties['request___spec']
>>
>>           image_info = request_spec['image']
>>           # Certain image attributes are accessed via top-level keys, like
>>           # size, disk_format, container_format and checksum
>>           image_size = image_info['size']
>>           # Other attributes can be accessed in the "properties"
>> collection
>>           # of key/value pairs
>>           image_props =  image.get('properties', {})
>>           for key, value in image_props.items():
>>               # do something...
>>
>>     Best,
>>     -jay
>>
>>
>>
>>     _________________________________________________
>>     OpenStack-dev mailing list
>>     [email protected].__org
>>     <mailto:[email protected]>
>>     http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev
>> <http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev>
>>
>>
>>
>>
>>
>> _______________________________________________
>> OpenStack-dev mailing list
>> [email protected]
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
>
> _______________________________________________
> OpenStack-dev mailing list
> [email protected]
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to