[openstack-dev] [Nova][Glance] Nova + Glance_v2 = Love

Flavio Percoco flavio at redhat.com
Fri Jan 8 14:32:39 UTC 2016

On 24/12/15 16:49 +0300, Mikhail Fedosin wrote:
>Hello, it's another topic about glance v2 adoption in Nova, but it's different
>from the others. I want to declare that there is a set of commits, that make
>Nova version agnostic and allow to work with both glance apis. The idea of the
>solution is to determine the current api version in the beginning and make
>appropriate requests after.
>(https://review.openstack.org/#/c/228578/, https://review.openstack.org/#/c/
>238309/, https://review.openstack.org/#/c/259097/)
>Indeed, it requires some additional (and painful) work, but now all tempest
>tests pass in Jenkins.
>Note: this thread is not about xenplugin, there is another topic, called
>'Xenplugin + Glance_v2 = Hate'
>Here the main issues we faced and how we've solved them:
>1. "changes-since" filter for image-list is not supported in v2 api. Steve
>Lewis made a great job and implemented a set of filters with comparison
>operators https://review.openstack.org/#/c/197388/. Filtering by
>'changes-since' is completely similar to 'gte:updated_at'.
>2. Filtering by custom properties must have prefix 'property-'. In v2 it's not
>3. V2 states that all custom properties must be image attributes, but Nova
>assumes that they are included in 'properties' dictionary. It's fixed with
>glanceclient's method 'is_base_property(prop_name)', that returns False in case
>of custom property.
>4. is_public=True/False is visibility="public"/"private" respectively.
>5. Deleting custom image properties in Nova is performed with 'purge_props'
>flag. If it's set to True, then all prop names, that are not included in
>updated data, will be removed. In case of v2 we have to explicitly specify prop
>names in the list param 'remove_props'. To implement this behaviour, if
>'purge_props' is set, we make additional 'get' request to determine the
>existing properties and put in 'remove_prop' list only those, that are not in
>6. My favourite:
>There is an ability to activate an empty image by just providing 'size = 0':
>https://review.openstack.org/#/c/9715/, in this case image will be a collection
>of metadata. Glance v2 doesn't support this "feature" and that's why we have to
>implement a very dirty workaround:
>    * v2 requires, that disk_format and container-format must be set before the
>activation. if these params are not provided to 'create' method then we
>hardcode it to 'qcow2' and 'bare'.
>    * we call 'upload' method with empty data (data = '') to activate image.
>Me (and the rest glance team) think that this image activation with zero-size
>is inconsistent and we won't implement it in v2. So, I'm going to ask if Nova
>really needs this feature and maybe it's possible to make it work without it.
>In conclusion, I want to congratulate you with this huge progress and say there
>is a big chance that we can deprecate glance v1 in Mitaka cycle.

Thanks for all your efforts here. Lets work closely with the Nova core
team to help this patches move forward. There has been feedback
already, which is great.


>And Merry Christmas!
>Best regards,
>Mikhail Fedosin

>OpenStack Development Mailing List (not for usage questions)
>Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe

Flavio Percoco
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20160108/f1b6e575/attachment.pgp>

More information about the OpenStack-dev mailing list