<div dir="ltr">Yes, my mistake. I missed that utils.get_image_from_system_metadata just converts a passed metadata, but do not get metadata from the instance.<div>So non-inhertable properties are omitted in both result sets.</div><div><br></div><div>But compute.utils.get_image_metadata returns not trucated long properties.</div><div>It reads truncated value by utils.instance_sys_meta and updates it to full value from image_system_metadata.</div><div><br></div><div>So if replace call of compute.utils.get_image_metadata(.., instance) to utils.get_image_from_system_metadata(instance.system_metadata), it will get truncated props.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 28, 2015 at 12:33 PM, Daniel P. Berrange <span dir="ltr"><<a href="mailto:berrange@redhat.com" target="_blank">berrange@redhat.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, May 28, 2015 at 12:22:59PM +0300, Feodor Tersin wrote:<br>
> I mean the case:<br>
> - an image has long property AAA and non inheritable property BBB;<br>
> - an instance based on the image stores truncated AAA and full BBB;<br>
> - utils.get_image_from_system_metadata returns truncated AAA but not BBB;<br>
> - compute.utils.get_image_metadata updates the result of<br>
> utils.get_image_from_system_metadata by the image metadata and returns full<br>
> AAA and added BBB.<br>
><br>
> This is the difference i mean.<br>
<br>
</span>No, your last step is wrong.<br>
<br>
The code in compute_utils.get_image_metadata is this:<br>
<br>
    # Get the system metadata from the instance<br>
    system_meta = utils.instance_sys_meta(instance)<br>
<br>
    # Merge the metadata from the instance with the image's, if any<br>
    system_meta.update(image_system_meta)<br>
<br>
    # Convert the system metadata to image metadata<br>
    return utils.get_image_from_system_metadata(system_meta)<br>
<br>
So the image metadata and the instance system metadata are merged into the<br>
same dict, *before* the utils.get_image_from_system_metadata() method is<br>
invokved. So both sets of data will be truncated & non-inheritable props<br>
dropped.<br>
<div class="HOEnZb"><div class="h5"><br>
Regards,<br>
Daniel<br>
--<br>
|: <a href="http://berrange.com" target="_blank">http://berrange.com</a>      -o-    <a href="http://www.flickr.com/photos/dberrange/" target="_blank">http://www.flickr.com/photos/dberrange/</a> :|<br>
|: <a href="http://libvirt.org" target="_blank">http://libvirt.org</a>              -o-             <a href="http://virt-manager.org" target="_blank">http://virt-manager.org</a> :|<br>
|: <a href="http://autobuild.org" target="_blank">http://autobuild.org</a>       -o-         <a href="http://search.cpan.org/~danberr/" target="_blank">http://search.cpan.org/~danberr/</a> :|<br>
|: <a href="http://entangle-photo.org" target="_blank">http://entangle-photo.org</a>       -o-       <a href="http://live.gnome.org/gtk-vnc" target="_blank">http://live.gnome.org/gtk-vnc</a> :|<br>
</div></div></blockquote></div><br></div>