)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"bea253776866a8c68d2b1786d5e61ad5f59c7773","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This spec provides a future-proof mechanism for providing a"},{"line_number":10,"context_line":"self-describing hash for each image."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I6d6d6c7e9252d015d778a2836b25deb110d20b5d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dfeb2761_c6d406c0","line":12,"updated":"2017-04-04 01:45:28.000000000","message":"add:\n\nAPIImpact: new field in response","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"}],"specs/pike/approved/glance/multihash.rst":[{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"7b8f64e3fd21f2045581305f5b9d10c2fe69e3b9","unresolved":false,"context_lines":[{"line_number":22,"context_line":"unintentional corruption, it should not be used to verify data integrity"},{"line_number":23,"context_line":"against tampering. A more collision-resistant hashing algorithm should"},{"line_number":24,"context_line":"be used for broader data integrity coverage."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Proposed change"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_28911d4f","line":25,"updated":"2017-04-04 19:52:18.000000000","message":"Would be helpful to discuss how this relates to signed images in the existing feature gap and the interaction of these features in the proposed change.","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":22,"context_line":"unintentional corruption, it should not be used to verify data integrity"},{"line_number":23,"context_line":"against tampering. A more collision-resistant hashing algorithm should"},{"line_number":24,"context_line":"be used for broader data integrity coverage."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"Proposed change"},{"line_number":27,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_e2dcd475","line":25,"in_reply_to":"dfeb2761_28911d4f","updated":"2017-04-06 14:26:36.000000000","message":"Great question. I had not considered it at all. From the Image Signing and Verification Spec:\n\n\"Glance already supports computing checksums of images when an image is uploaded, and this checksum is stored with the image. This same hash (which by default is MD5) will be used for the signature verification.\"\n\nIt would probably make sense for this to be updated to use the multihash field if set. Thoughts on including that bit of work within this spec?","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7990e92a0cdcd4c530bb34f06dcc6c0e5bd68e4b","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This spec proposes adding a new field to the image metadata. The"},{"line_number":30,"context_line":"proposed key name for this field is ``multihash``. The proposed value is"},{"line_number":31,"context_line":"a multihash [0]_ formatted sha512 hexdigest. The hexdigest will be obtained"},{"line_number":32,"context_line":"using the current hashlib library. The digest length and hash function"},{"line_number":33,"context_line":"type will be prepended as described in the documentation [0]_ for the"},{"line_number":34,"context_line":"multihash format."}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_59fa4c42","line":31,"range":{"start_line":31,"start_character":27,"end_line":31,"end_character":43},"updated":"2017-04-01 22:22:18.000000000","message":"so this would be what\u0027s in the hashlib table as \u0027sha2-512\u0027, 0x13 ?","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This spec proposes adding a new field to the image metadata. The"},{"line_number":30,"context_line":"proposed key name for this field is ``multihash``. The proposed value is"},{"line_number":31,"context_line":"a multihash [0]_ formatted sha512 hexdigest. The hexdigest will be obtained"},{"line_number":32,"context_line":"using the current hashlib library. The digest length and hash function"},{"line_number":33,"context_line":"type will be prepended as described in the documentation [0]_ for the"},{"line_number":34,"context_line":"multihash format."}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_b74a8c52","line":31,"range":{"start_line":31,"start_character":27,"end_line":31,"end_character":43},"in_reply_to":"dfeb2761_59fa4c42","updated":"2017-04-06 14:26:36.000000000","message":"yes and added to spec","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7990e92a0cdcd4c530bb34f06dcc6c0e5bd68e4b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"This spec proposes adding a new field to the image metadata. The"},{"line_number":30,"context_line":"proposed key name for this field is ``multihash``. The proposed value is"},{"line_number":31,"context_line":"a multihash [0]_ formatted sha512 hexdigest. The hexdigest will be obtained"},{"line_number":32,"context_line":"using the current hashlib library. The digest length and hash function"},{"line_number":33,"context_line":"type will be prepended as described in the documentation [0]_ for the"},{"line_number":34,"context_line":"multihash format."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_39c78815","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":33},"updated":"2017-04-01 22:22:18.000000000","message":"So no new python dependencies for this ... that\u0027s good.","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":29,"context_line":"This spec proposes adding a new field to the image metadata. The"},{"line_number":30,"context_line":"proposed key name for this field is ``multihash``. The proposed value is"},{"line_number":31,"context_line":"a multihash [0]_ formatted sha512 hexdigest. The hexdigest will be obtained"},{"line_number":32,"context_line":"using the current hashlib library. The digest length and hash function"},{"line_number":33,"context_line":"type will be prepended as described in the documentation [0]_ for the"},{"line_number":34,"context_line":"multihash format."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_9747884c","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":33},"in_reply_to":"dfeb2761_39c78815","updated":"2017-04-06 14:26:36.000000000","message":"correct","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7990e92a0cdcd4c530bb34f06dcc6c0e5bd68e4b","unresolved":false,"context_lines":[{"line_number":37,"context_line":"fields."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Requesting the image metadata of an image without the ``multihash``"},{"line_number":40,"context_line":"value set, will result in an empty value for the ``multihash`` field in"},{"line_number":41,"context_line":"the metadata response."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Downloading an image without the ``multihash`` value set, will result in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_3979c8fb","line":40,"range":{"start_line":40,"start_character":29,"end_line":40,"end_character":40},"updated":"2017-04-01 22:22:18.000000000","message":"Might as well say null here (I imagine this will be a string, so could be an empty string, but I don\u0027t think you want that).","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":37,"context_line":"fields."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"Requesting the image metadata of an image without the ``multihash``"},{"line_number":40,"context_line":"value set, will result in an empty value for the ``multihash`` field in"},{"line_number":41,"context_line":"the metadata response."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Downloading an image without the ``multihash`` value set, will result in"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_570a20d2","line":40,"range":{"start_line":40,"start_character":29,"end_line":40,"end_character":40},"in_reply_to":"dfeb2761_3979c8fb","updated":"2017-04-06 14:26:36.000000000","message":"Done","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5ae6bc4cf05e67af736b18d94a3014d489f29547","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"1. Update the value of the ``checksum`` field with the hexdigest of a"},{"line_number":53,"context_line":"   different hashing algorithm. This will likely break client-side"},{"line_number":54,"context_line":"   checksum verification code."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"2. Add a new non-multihash checksum field. This is a less future proof"},{"line_number":57,"context_line":"   approach that will likely result in a new spec in a few years to add"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_e7a9127c","line":54,"updated":"2017-04-05 09:04:20.000000000","message":"Yeah, adding a new field is the right way to go from an API compatibility/stability/interoperability/pick-your-bility standpoint.","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"1. Update the value of the ``checksum`` field with the hexdigest of a"},{"line_number":53,"context_line":"   different hashing algorithm. This will likely break client-side"},{"line_number":54,"context_line":"   checksum verification code."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"2. Add a new non-multihash checksum field. This is a less future proof"},{"line_number":57,"context_line":"   approach that will likely result in a new spec in a few years to add"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_979b0871","line":54,"in_reply_to":"dfeb2761_e7a9127c","updated":"2017-04-06 14:26:36.000000000","message":"\"pick-your-bility\"\n\nquote of the day :)","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"7b8f64e3fd21f2045581305f5b9d10c2fe69e3b9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"   ~14s for sha512. The implementation of the sha512 algorithm within"},{"line_number":66,"context_line":"   hashlib demonstrates reasonable performance and should be considered"},{"line_number":67,"context_line":"   collision-resistant for many years."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Data model impact"},{"line_number":70,"context_line":"-----------------"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_a5d9d8f3","line":68,"updated":"2017-04-04 19:52:18.000000000","message":"the multihash could be added as an image metadata property.","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":65,"context_line":"   ~14s for sha512. The implementation of the sha512 algorithm within"},{"line_number":66,"context_line":"   hashlib demonstrates reasonable performance and should be considered"},{"line_number":67,"context_line":"   collision-resistant for many years."},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"Data model impact"},{"line_number":70,"context_line":"-----------------"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_825188db","line":68,"in_reply_to":"dfeb2761_a5d9d8f3","updated":"2017-04-06 14:26:36.000000000","message":"I don\u0027t know what you mean. What\u0027s the difference between this statement and what\u0027s proposed?","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7990e92a0cdcd4c530bb34f06dcc6c0e5bd68e4b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"-----------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Triggers: None"},{"line_number":73,"context_line":"* Expand: A new column (``multihash``) will be added to the images table"},{"line_number":74,"context_line":"* Migrate: None"},{"line_number":75,"context_line":"* Contract: None"},{"line_number":76,"context_line":"* Conflicts: None"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_5945acb2","line":73,"range":{"start_line":73,"start_character":12,"end_line":73,"end_character":22},"updated":"2017-04-01 22:22:18.000000000","message":"Will this be a string datatype?","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":70,"context_line":"-----------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Triggers: None"},{"line_number":73,"context_line":"* Expand: A new column (``multihash``) will be added to the images table"},{"line_number":74,"context_line":"* Migrate: None"},{"line_number":75,"context_line":"* Contract: None"},{"line_number":76,"context_line":"* Conflicts: None"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_02e21804","line":73,"range":{"start_line":73,"start_character":12,"end_line":73,"end_character":22},"in_reply_to":"dfeb2761_25e4a8e0","updated":"2017-04-06 14:26:36.000000000","message":"Done","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"7b8f64e3fd21f2045581305f5b9d10c2fe69e3b9","unresolved":false,"context_lines":[{"line_number":70,"context_line":"-----------------"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Triggers: None"},{"line_number":73,"context_line":"* Expand: A new column (``multihash``) will be added to the images table"},{"line_number":74,"context_line":"* Migrate: None"},{"line_number":75,"context_line":"* Contract: None"},{"line_number":76,"context_line":"* Conflicts: None"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_25e4a8e0","line":73,"range":{"start_line":73,"start_character":12,"end_line":73,"end_character":22},"in_reply_to":"dfeb2761_5945acb2","updated":"2017-04-04 19:52:18.000000000","message":"I presume the column will a string/varchar based on the external multihash link.\n\nWill this column default to Null on expand?","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"7b8f64e3fd21f2045581305f5b9d10c2fe69e3b9","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Triggers: None"},{"line_number":73,"context_line":"* Expand: A new column (``multihash``) will be added to the images table"},{"line_number":74,"context_line":"* Migrate: None"},{"line_number":75,"context_line":"* Contract: None"},{"line_number":76,"context_line":"* Conflicts: None"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_85d8141e","line":74,"updated":"2017-04-04 19:52:18.000000000","message":"We could calculate a multihash for each image. Why not do so?","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"* Triggers: None"},{"line_number":73,"context_line":"* Expand: A new column (``multihash``) will be added to the images table"},{"line_number":74,"context_line":"* Migrate: None"},{"line_number":75,"context_line":"* Contract: None"},{"line_number":76,"context_line":"* Conflicts: None"},{"line_number":77,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_0289f821","line":74,"in_reply_to":"dfeb2761_85d8141e","updated":"2017-04-06 14:26:36.000000000","message":"So...slow...\n\nI think it makes more sense to calculate this on download when the data is already flying over the wire.","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"7b8f64e3fd21f2045581305f5b9d10c2fe69e3b9","unresolved":false,"context_lines":[{"line_number":72,"context_line":"* Triggers: None"},{"line_number":73,"context_line":"* Expand: A new column (``multihash``) will be added to the images table"},{"line_number":74,"context_line":"* Migrate: None"},{"line_number":75,"context_line":"* Contract: None"},{"line_number":76,"context_line":"* Conflicts: None"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_e585a0d0","line":75,"updated":"2017-04-04 19:52:18.000000000","message":"So the multihash will not be an indexed column?","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":72,"context_line":"* Triggers: None"},{"line_number":73,"context_line":"* Expand: A new column (``multihash``) will be added to the images table"},{"line_number":74,"context_line":"* Migrate: None"},{"line_number":75,"context_line":"* Contract: None"},{"line_number":76,"context_line":"* Conflicts: None"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"REST API impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_a2924cf5","line":75,"in_reply_to":"dfeb2761_e585a0d0","updated":"2017-04-06 14:26:36.000000000","message":"Added to expand.","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7990e92a0cdcd4c530bb34f06dcc6c0e5bd68e4b","unresolved":false,"context_lines":[{"line_number":132,"context_line":"* Update the sections of code that calculate the ``checksum`` to also"},{"line_number":133,"context_line":"  calculate ``multihash``"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* Lazy update the ``multihash`` field on image download"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"* Update internal checksum verification code to use the ``multihash``"},{"line_number":138,"context_line":"  field and fallback to ``checksum`` field when not present"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_99521467","line":135,"range":{"start_line":135,"start_character":2,"end_line":135,"end_character":55},"updated":"2017-04-01 22:22:18.000000000","message":"So you won\u0027t calculate this on upload (as is done with the current checksum)?  Not sure how I feel about that.  In most cases, the multihash won\u0027t be used for verification until after a download has occurred, except for the person uploading an image who wants to make sure Glance got the correct bits.  (Although there will still be the md5 for a quick check.)  But this does mean that the first image consumer will have to download the image first and then re-request the image record to get the multihash value.  I\u0027m not sure that\u0027s bad, but you should probably point it out explicitly in the Proposed Change section above.","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"7b8f64e3fd21f2045581305f5b9d10c2fe69e3b9","unresolved":false,"context_lines":[{"line_number":132,"context_line":"* Update the sections of code that calculate the ``checksum`` to also"},{"line_number":133,"context_line":"  calculate ``multihash``"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* Lazy update the ``multihash`` field on image download"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"* Update internal checksum verification code to use the ``multihash``"},{"line_number":138,"context_line":"  field and fallback to ``checksum`` field when not present"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_e8f575ee","line":135,"range":{"start_line":135,"start_character":2,"end_line":135,"end_character":55},"in_reply_to":"dfeb2761_99521467","updated":"2017-04-04 19:52:18.000000000","message":"Probably too ambiguous to just say Lazy update here. Lazy update could be a task, could be calculated on first download (that\u0027s gonna be a bit odd in the impl.)","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":132,"context_line":"* Update the sections of code that calculate the ``checksum`` to also"},{"line_number":133,"context_line":"  calculate ``multihash``"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"* Lazy update the ``multihash`` field on image download"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"* Update internal checksum verification code to use the ``multihash``"},{"line_number":138,"context_line":"  field and fallback to ``checksum`` field when not present"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_6263241c","line":135,"range":{"start_line":135,"start_character":2,"end_line":135,"end_character":55},"in_reply_to":"dfeb2761_e8f575ee","updated":"2017-04-06 14:26:36.000000000","message":"@Brian It WOULD be calculated on upload. This is covered on line 132. This line is additional work.\n\n@Steve Updates","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"7b8f64e3fd21f2045581305f5b9d10c2fe69e3b9","unresolved":false,"context_lines":[{"line_number":138,"context_line":"  field and fallback to ``checksum`` field when not present"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"* Update docs"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"Dependencies"},{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":144,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_88eee9ea","line":141,"updated":"2017-04-04 19:52:18.000000000","message":"Would be very valuable to add support for verifying image data using multihash to glance client. \n\nThis would help greatly with getting the feature used.","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"7990e92a0cdcd4c530bb34f06dcc6c0e5bd68e4b","unresolved":false,"context_lines":[{"line_number":142,"context_line":"Dependencies"},{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The multihash specification [0]_"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Testing"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_d9bc1c6b","line":145,"updated":"2017-04-01 22:22:18.000000000","message":"I\u0027m a little worried about this because it doesn\u0027t seem to be obviously consistent with RFC 6920 (although as far as I can tell, that\u0027s still a draft, not a standard).  We should get some advice from maybe the security group about whether it makes sense to use this.  It seems pretty well adopted, though, so this probably isn\u0027t much of a worry.","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11642,"name":"Jesse J. Cook","email":"jesse.cook@rackspace.com","username":"crashenx"},"change_message_id":"6f243720e933c3317d3462aaac9aacae7ae8a2fe","unresolved":false,"context_lines":[{"line_number":142,"context_line":"Dependencies"},{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The multihash specification [0]_"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Testing"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bff0334d_8204e818","line":145,"in_reply_to":"dfeb2761_276eda2e","updated":"2017-04-06 14:26:36.000000000","message":"Ack, I\u0027ll try to poke around (maybe Brian can help ;)","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5ae6bc4cf05e67af736b18d94a3014d489f29547","unresolved":false,"context_lines":[{"line_number":142,"context_line":"Dependencies"},{"line_number":143,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"The multihash specification [0]_"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"Testing"},{"line_number":148,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":3,"id":"dfeb2761_276eda2e","line":145,"in_reply_to":"dfeb2761_d9bc1c6b","updated":"2017-04-05 09:04:20.000000000","message":"I would check around with the rest of openstack to see if there are any emerging preferences on this. It would be unfortunate if glance went off in the multihash direction while another project went another way. Hashes like this are something that a variety of resources are likely going to want. Having the same key and the same format of value across all of them would be great.\n\nmultiformats look like they have a lot of thought put into them but I don\u0027t know much about their adoption.\n\n(Also, just as an aside, the fact that the type value is looked up in a table, and is variable length (see the blake2b examples), is really weird to me. I\u0027d think you want fixed length for type and length fields, and variable length on the value, but maybe there\u0027s something I don\u0027t understand about multihash)","commit_id":"b28959c43d83e7eadca766ef0278fdb95955393f"}]}
