)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"672412107bb9d4e9dc415308447dee8c9a6d5a0a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Another and I hope the last attempt to adopt Glance"},{"line_number":10,"context_line":"v2 api in Nova."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I1247b436f9cbb21eb6e3d5cbabe5345e6037ceb2"},{"line_number":13,"context_line":"Co-authored-by: Flavio Percoco \u003cflaper87@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a061dce_c6121ab4","line":11,"updated":"2016-04-05 15:07:01.000000000","message":"Add:\n\nPreviously-approved: Mitaka","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Another and I hope the last attempt to adopt Glance"},{"line_number":10,"context_line":"v2 api in Nova."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I1247b436f9cbb21eb6e3d5cbabe5345e6037ceb2"},{"line_number":13,"context_line":"Co-authored-by: Flavio Percoco \u003cflaper87@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a061dce_c791aa54","line":11,"in_reply_to":"9a061dce_c6121ab4","updated":"2016-04-08 17:09:04.000000000","message":"Done","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"f8499d09c125875a7da5664a30aa012f37c51fc9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Complete Nova support for Glance\u0027s v2"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Another and I hope the last attempt to adopt Glance"},{"line_number":10,"context_line":"v2 api in Nova."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Previously-approved: Mitaka"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"bab6814e_9c686d89","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":15},"updated":"2016-05-19 02:52:33.000000000","message":"Don\u0027t think this is appropriate for the change we are proposing.\n\nLet\u0027s add a comment saying that Glance v1 is subject to deprecation, we need Nova to move away from v1 and use v2 fully. This spec discusses how we plan to make that transition. Also, let\u0027s add a comment about testing and some unavoidable proxy changes.","commit_id":"dad65f5acca72b1447c77c44f1f0781fe4515390"}],"specs/newton/approved/use-glance-v2-api.rst":[{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"c930242bac124dd61249adb7e561189723d485d5","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Add support for Glance v2 API"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/use-glance-v2-api"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_0439a541","line":8,"updated":"2016-04-05 17:44:36.000000000","message":"I believe this is technically called the \"Image\" API.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"45d32d9f0b7f4f7df4e13a6c803e6b86ed79c603","unresolved":false,"context_lines":[{"line_number":5,"context_line":" http://creativecommons.org/licenses/by/3.0/legalcode"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":8,"context_line":"Add support for Glance v2 API"},{"line_number":9,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/use-glance-v2-api"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_c7fe7837","line":8,"in_reply_to":"9a061dce_0439a541","updated":"2016-04-06 06:07:31.000000000","message":"No, it\u0027s Glance API. Images API is the DefCore/OpenStack standard API that is supposed to be exposed by clouds to be consumed by the end users. Images API is a representative REST API. \n\nWe are looking to add support for Glance API to Nova internals and it\u0027s proxy API.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"c930242bac124dd61249adb7e561189723d485d5","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/use-glance-v2-api"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec adds the ability support for Nova to use the Glance v2 API, and start"},{"line_number":14,"context_line":"the deprecation period for the support of the Glance v1 API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"While parts of Nova already use the Glance v2 API, this is about making the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_891caec2","line":13,"updated":"2016-04-05 17:44:36.000000000","message":"Typo? delete \"ability\" or \"support\"","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/use-glance-v2-api"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec adds the ability support for Nova to use the Glance v2 API, and start"},{"line_number":14,"context_line":"the deprecation period for the support of the Glance v1 API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"While parts of Nova already use the Glance v2 API, this is about making the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_e69e7962","line":13,"in_reply_to":"9a061dce_891caec2","updated":"2016-04-08 17:09:04.000000000","message":"Done","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"4668080ef78528c0b591c85b472cf057f5ad8018","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/use-glance-v2-api"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec adds the ability support for Nova to use the Glance v2 API, and start"},{"line_number":14,"context_line":"the deprecation period for the support of the Glance v1 API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"While parts of Nova already use the Glance v2 API, this is about making the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_d5156740","line":13,"in_reply_to":"9a061dce_891caec2","updated":"2016-04-06 14:16:10.000000000","message":"Should be \"starts\" not \"start\".","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"https://blueprints.launchpad.net/nova/+spec/use-glance-v2-api"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This spec adds the ability support for Nova to use the Glance v2 API, and start"},{"line_number":14,"context_line":"the deprecation period for the support of the Glance v1 API."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"While parts of Nova already use the Glance v2 API, this is about making the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_c69b7571","line":13,"in_reply_to":"9a061dce_d5156740","updated":"2016-04-08 17:09:04.000000000","message":"Done","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":24,"context_line":"requires access to the Glance v1 API. Glance would like to deprecate that API,"},{"line_number":25,"context_line":"so to help that effort Nova should stop using Glance v1 API."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"To allow for a smooth upgrade, we need to ensure Mitaka supports using both"},{"line_number":28,"context_line":"Glance v1 and Glance v2, to give deployers time to ensure they have Glance v2"},{"line_number":29,"context_line":"deployed in a way that can be used by Nova."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_1310cda7","line":27,"range":{"start_line":27,"start_character":49,"end_line":27,"end_character":55},"updated":"2016-04-05 16:31:05.000000000","message":"Newton","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"45d32d9f0b7f4f7df4e13a6c803e6b86ed79c603","unresolved":false,"context_lines":[{"line_number":24,"context_line":"requires access to the Glance v1 API. Glance would like to deprecate that API,"},{"line_number":25,"context_line":"so to help that effort Nova should stop using Glance v1 API."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"To allow for a smooth upgrade, we need to ensure Mitaka supports using both"},{"line_number":28,"context_line":"Glance v1 and Glance v2, to give deployers time to ensure they have Glance v2"},{"line_number":29,"context_line":"deployed in a way that can be used by Nova."},{"line_number":30,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_27fe5437","line":27,"range":{"start_line":27,"start_character":49,"end_line":27,"end_character":55},"in_reply_to":"9a061dce_1310cda7","updated":"2016-04-06 06:07:31.000000000","message":"+1","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"c930242bac124dd61249adb7e561189723d485d5","unresolved":false,"context_lines":[{"line_number":43,"context_line":"Before we can stop Nova requiring Glance v1 and fully deprecate the requirement"},{"line_number":44,"context_line":"for Glance v1, we need to remove all the above uses of Glance v1."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Note we must keep compatibility for Glance v1 and Glance v2 to allow for a"},{"line_number":47,"context_line":"smooth upgrade between releases."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Note the current version of Glance v2 does not provide an efficient way to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_84a9357e","line":46,"updated":"2016-04-05 17:44:36.000000000","message":"Does this mean that Nova will keep compatibility within the transition from Glance v1 to Glance v2? The Glance API (Image API) breaks compatibility from v1-\u003ev2, so I suggest clarifying.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"45d32d9f0b7f4f7df4e13a6c803e6b86ed79c603","unresolved":false,"context_lines":[{"line_number":43,"context_line":"Before we can stop Nova requiring Glance v1 and fully deprecate the requirement"},{"line_number":44,"context_line":"for Glance v1, we need to remove all the above uses of Glance v1."},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"Note we must keep compatibility for Glance v1 and Glance v2 to allow for a"},{"line_number":47,"context_line":"smooth upgrade between releases."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Note the current version of Glance v2 does not provide an efficient way to"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_079070eb","line":46,"in_reply_to":"9a061dce_84a9357e","updated":"2016-04-06 06:07:31.000000000","message":"Yes, the compatibility will exist in Nova until we come up with future plans.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"c930242bac124dd61249adb7e561189723d485d5","unresolved":false,"context_lines":[{"line_number":47,"context_line":"smooth upgrade between releases."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Note the current version of Glance v2 does not provide an efficient way to"},{"line_number":50,"context_line":"implement the changes_since parameter that is supported by the current Nova"},{"line_number":51,"context_line":"Images API. However, Glance have plans to fix that:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"https://blueprints.launchpad.net/glance/+spec/v2-additional-filtering"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_bf2f203d","line":50,"updated":"2016-04-05 17:44:36.000000000","message":"\"changes-since\"","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"45d32d9f0b7f4f7df4e13a6c803e6b86ed79c603","unresolved":false,"context_lines":[{"line_number":47,"context_line":"smooth upgrade between releases."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Note the current version of Glance v2 does not provide an efficient way to"},{"line_number":50,"context_line":"implement the changes_since parameter that is supported by the current Nova"},{"line_number":51,"context_line":"Images API. However, Glance have plans to fix that:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"https://blueprints.launchpad.net/glance/+spec/v2-additional-filtering"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_67bdec67","line":50,"in_reply_to":"9a061dce_bf2f203d","updated":"2016-04-06 06:07:31.000000000","message":"+1","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":47,"context_line":"smooth upgrade between releases."},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"Note the current version of Glance v2 does not provide an efficient way to"},{"line_number":50,"context_line":"implement the changes_since parameter that is supported by the current Nova"},{"line_number":51,"context_line":"Images API. However, Glance have plans to fix that:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"https://blueprints.launchpad.net/glance/+spec/v2-additional-filtering"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_e6acb98e","line":50,"in_reply_to":"9a061dce_bf2f203d","updated":"2016-04-08 17:09:04.000000000","message":"I think this note is not correct, because Glance provides an efficient way to implement the \"changes_since\" parameter.\n\nnow this filter is called \"updated_at\u003dgt:\"","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":50,"context_line":"implement the changes_since parameter that is supported by the current Nova"},{"line_number":51,"context_line":"Images API. However, Glance have plans to fix that:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"https://blueprints.launchpad.net/glance/+spec/v2-additional-filtering"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Use Cases"},{"line_number":56,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_f34a7982","line":53,"updated":"2016-04-05 16:31:05.000000000","message":"Seems this needs to be listed in the Dependencies section.\n\nAlso, looks like that code was merged in mitaka:\n\nhttps://review.openstack.org/#/c/197388/\n\nBut the blueprint wasn\u0027t marked complete.\n\nSo if that is complete, how will Nova, as the client, know if the glance API it\u0027s talking to supports that if Glance isn\u0027t using microversions?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"53d922354c06ab6beedbaa27637baf389097d542","unresolved":false,"context_lines":[{"line_number":50,"context_line":"implement the changes_since parameter that is supported by the current Nova"},{"line_number":51,"context_line":"Images API. However, Glance have plans to fix that:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"https://blueprints.launchpad.net/glance/+spec/v2-additional-filtering"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Use Cases"},{"line_number":56,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_1bea1a74","line":53,"in_reply_to":"5a18252c_96a10a49","updated":"2016-04-21 02:24:07.000000000","message":"yes, currently this is being parsed under nova.image.glance _determine_curr_major_version . Either there or once glanceclient completes discovery we can add that logic there.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"067c0bb1488b26d766f60e0a7e537f9a279ce1d1","unresolved":false,"context_lines":[{"line_number":50,"context_line":"implement the changes_since parameter that is supported by the current Nova"},{"line_number":51,"context_line":"Images API. However, Glance have plans to fix that:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"https://blueprints.launchpad.net/glance/+spec/v2-additional-filtering"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Use Cases"},{"line_number":56,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a18252c_96a10a49","line":53,"in_reply_to":"9a061dce_677a0cf3","updated":"2016-04-15 01:10:10.000000000","message":"Hmm, so will nova be able to tell the v2.3 version from glanceclient?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"45d32d9f0b7f4f7df4e13a6c803e6b86ed79c603","unresolved":false,"context_lines":[{"line_number":50,"context_line":"implement the changes_since parameter that is supported by the current Nova"},{"line_number":51,"context_line":"Images API. However, Glance have plans to fix that:"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"https://blueprints.launchpad.net/glance/+spec/v2-additional-filtering"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Use Cases"},{"line_number":56,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_677a0cf3","line":53,"in_reply_to":"9a061dce_f34a7982","updated":"2016-04-06 06:07:31.000000000","message":"We bump up minor versions on changes like these. Currently, we\u0027re on v2.3\n\nhttps://github.com/openstack/glance/blob/master/glance/api/versions.py#L60\n\nCurrently, there\u0027s no plan to use micro-versions.\n\nThanks for pointing out the BP, I\u0027ve updated the details on the same.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"Since the driver requires python 2.4 it doesn\u0027t allow us to use glance client"},{"line_number":77,"context_line":"and forces to send direct http requests."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Other virt drivers that don\u0027t support Glance v2 should fallback to"},{"line_number":80,"context_line":"v1. Eventually, all drivers should support v2 and Glance\u0027s v1 should be turned"},{"line_number":81,"context_line":"off by default. The expected deadline for this switch is Ocata."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This spec doesn\u0027t intend to change the value of the existing Nova"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_2ea64810","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":3},"updated":"2016-04-05 16:31:05.000000000","message":"Is this actually an issue for any other virt drivers? I wouldn\u0027t think so, xen plugins is the only weirdo.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"99bef2aca2949d19c77a4e296019ee07c31628ae","unresolved":false,"context_lines":[{"line_number":76,"context_line":"Since the driver requires python 2.4 it doesn\u0027t allow us to use glance client"},{"line_number":77,"context_line":"and forces to send direct http requests."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Other virt drivers that don\u0027t support Glance v2 should fallback to"},{"line_number":80,"context_line":"v1. Eventually, all drivers should support v2 and Glance\u0027s v1 should be turned"},{"line_number":81,"context_line":"off by default. The expected deadline for this switch is Ocata."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This spec doesn\u0027t intend to change the value of the existing Nova"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_c9ca261a","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":3},"in_reply_to":"9a061dce_2ea64810","updated":"2016-04-05 16:36:48.000000000","message":"Also hyperv - https://github.com/openstack/nova/blob/d57a4e8be9147bd79be12d3f5adccc9289a375b6/nova/virt/hyperv/snapshotops.py#L51","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"0066500eb9e7afad197c0f5f469f4627c226fa44","unresolved":false,"context_lines":[{"line_number":76,"context_line":"Since the driver requires python 2.4 it doesn\u0027t allow us to use glance client"},{"line_number":77,"context_line":"and forces to send direct http requests."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Other virt drivers that don\u0027t support Glance v2 should fallback to"},{"line_number":80,"context_line":"v1. Eventually, all drivers should support v2 and Glance\u0027s v1 should be turned"},{"line_number":81,"context_line":"off by default. The expected deadline for this switch is Ocata."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This spec doesn\u0027t intend to change the value of the existing Nova"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_4de0bdfa","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":3},"in_reply_to":"9a061dce_2ea64810","updated":"2016-04-06 09:54:39.000000000","message":"If the XenAPI plugin is the only weird case, would https://review.openstack.org/#/c/274045/ be a good alternative?  This proposed method for accessing glance routes traffic through the compute node; so Nova can make all the decisions about how to get hold of the image, and just stream the data through to the VDI used by XenServer.\n\nI think this should work for v1 and v2?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"53d922354c06ab6beedbaa27637baf389097d542","unresolved":false,"context_lines":[{"line_number":76,"context_line":"Since the driver requires python 2.4 it doesn\u0027t allow us to use glance client"},{"line_number":77,"context_line":"and forces to send direct http requests."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Other virt drivers that don\u0027t support Glance v2 should fallback to"},{"line_number":80,"context_line":"v1. Eventually, all drivers should support v2 and Glance\u0027s v1 should be turned"},{"line_number":81,"context_line":"off by default. The expected deadline for this switch is Ocata."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This spec doesn\u0027t intend to change the value of the existing Nova"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_db4f0290","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":3},"in_reply_to":"9a061dce_4de0bdfa","updated":"2016-04-21 02:24:07.000000000","message":"That\u0027s a nice spec. I will try to follow up.\n\nThanks Bob!","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":76,"context_line":"Since the driver requires python 2.4 it doesn\u0027t allow us to use glance client"},{"line_number":77,"context_line":"and forces to send direct http requests."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Other virt drivers that don\u0027t support Glance v2 should fallback to"},{"line_number":80,"context_line":"v1. Eventually, all drivers should support v2 and Glance\u0027s v1 should be turned"},{"line_number":81,"context_line":"off by default. The expected deadline for this switch is Ocata."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This spec doesn\u0027t intend to change the value of the existing Nova"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_c19b5f71","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":3},"in_reply_to":"9a061dce_c9ca261a","updated":"2016-04-08 17:09:04.000000000","message":"Hmm. At least it uses nova.image api, which automatically makes it compatible with Glance v2, doesn\u0027t it?\n\nBut, I\u0027m going to leave this phrase here, because I didn\u0027t have a chance to test it with the existing patches. It means that some possible issues with hyperv still may exist.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"067c0bb1488b26d766f60e0a7e537f9a279ce1d1","unresolved":false,"context_lines":[{"line_number":76,"context_line":"Since the driver requires python 2.4 it doesn\u0027t allow us to use glance client"},{"line_number":77,"context_line":"and forces to send direct http requests."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"Other virt drivers that don\u0027t support Glance v2 should fallback to"},{"line_number":80,"context_line":"v1. Eventually, all drivers should support v2 and Glance\u0027s v1 should be turned"},{"line_number":81,"context_line":"off by default. The expected deadline for this switch is Ocata."},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"This spec doesn\u0027t intend to change the value of the existing Nova"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a18252c_e1119653","line":80,"range":{"start_line":79,"start_character":0,"end_line":80,"end_character":3},"in_reply_to":"9a061dce_c9ca261a","updated":"2016-04-15 01:10:10.000000000","message":"OK, I guess I don\u0027t know how to tell from just looking at that what makes it specific to glance v1.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":93,"context_line":"------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Ideally glanceclient should work as a seam for Ironic, Cinder and Nova to use"},{"line_number":96,"context_line":"to upload and download images, with a stable API. But this is not currently the"},{"line_number":97,"context_line":"case, and we have waited too long for this support to delay this work any"},{"line_number":98,"context_line":"further. However, it is assumed that this will exist in the future to avoid"},{"line_number":99,"context_line":"getting to these situation again."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_6e96804d","line":98,"range":{"start_line":96,"start_character":50,"end_line":98,"end_character":8},"updated":"2016-04-05 16:31:05.000000000","message":"So in the time that glance v2 in Nova came up in Kilo, no one could move ahead with making glanceclient better as an abstraction layer? Or is this part of the \u0027images compat layer\u0027 that I keep hearing about? If that, then I agree that right now it\u0027s a distraction and we should avoid it from holding up glance v2 adoption in nova.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":93,"context_line":"------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Ideally glanceclient should work as a seam for Ironic, Cinder and Nova to use"},{"line_number":96,"context_line":"to upload and download images, with a stable API. But this is not currently the"},{"line_number":97,"context_line":"case, and we have waited too long for this support to delay this work any"},{"line_number":98,"context_line":"further. However, it is assumed that this will exist in the future to avoid"},{"line_number":99,"context_line":"getting to these situation again."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_813b2738","line":98,"range":{"start_line":96,"start_character":50,"end_line":98,"end_character":8},"in_reply_to":"9a061dce_6e96804d","updated":"2016-04-08 17:09:04.000000000","message":"Agree, it\u0027s better to remove this section at all","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"45d32d9f0b7f4f7df4e13a6c803e6b86ed79c603","unresolved":false,"context_lines":[{"line_number":93,"context_line":"------------"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"Ideally glanceclient should work as a seam for Ironic, Cinder and Nova to use"},{"line_number":96,"context_line":"to upload and download images, with a stable API. But this is not currently the"},{"line_number":97,"context_line":"case, and we have waited too long for this support to delay this work any"},{"line_number":98,"context_line":"further. However, it is assumed that this will exist in the future to avoid"},{"line_number":99,"context_line":"getting to these situation again."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"Data model impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_221f6260","line":98,"range":{"start_line":96,"start_character":50,"end_line":98,"end_character":8},"in_reply_to":"9a061dce_6e96804d","updated":"2016-04-06 06:07:31.000000000","message":"I\u0027d like to avoid the discussion on the compat. layer. I think there are many minds that have a different view of what it looks like.\n\nBut, whoever proposed the spec has tried to present their views on the same. I don\u0027t know what alternatives could have been. The older proposed specs to Nova did have some back and forth on auto discovery support and some built-in intelligence for the non-Nova related stuff. Although, I don\u0027t recollect anything specifically talked about glanceclient but I wasn\u0027t always involved in the discussions.\n\nHaving said that, do you want a different alternative section?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":106,"context_line":"REST API impact"},{"line_number":107,"context_line":"---------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be no impact on the REST API contract. The Nova Image API will"},{"line_number":110,"context_line":"continue to proxy requests to Glance v1 until the work to bring back"},{"line_number":111,"context_line":"changes_since is complete."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_aeaed882","line":111,"range":{"start_line":109,"start_character":50,"end_line":111,"end_character":26},"updated":"2016-04-05 16:31:05.000000000","message":"As noted, it looks like this is complete, but I\u0027m not sure how \u0027discoverable\u0027 this is from nova\u0027s perspective. For example, if we have a newton nova with glance v2 support but the actual glance v2 API we\u0027re talking to is from Liberty, how do we know the changes_since support isn\u0027t available?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":106,"context_line":"REST API impact"},{"line_number":107,"context_line":"---------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be no impact on the REST API contract. The Nova Image API will"},{"line_number":110,"context_line":"continue to proxy requests to Glance v1 until the work to bring back"},{"line_number":111,"context_line":"changes_since is complete."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_7c0f962e","line":111,"range":{"start_line":109,"start_character":50,"end_line":111,"end_character":26},"in_reply_to":"9a061dce_6275da96","updated":"2016-04-08 17:09:04.000000000","message":"Yes, I didn\u0027t notice it before and copypasted as-is. True: glance has the support of \"changes-since\", but now it\u0027s called \"updated-at\u003dgte:\". This patch makes the trick and transforms one filter in the other: https://review.openstack.org/#/c/238309/17/nova/image/glance.py LL 556-559","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"53d922354c06ab6beedbaa27637baf389097d542","unresolved":false,"context_lines":[{"line_number":106,"context_line":"REST API impact"},{"line_number":107,"context_line":"---------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be no impact on the REST API contract. The Nova Image API will"},{"line_number":110,"context_line":"continue to proxy requests to Glance v1 until the work to bring back"},{"line_number":111,"context_line":"changes_since is complete."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_fb1abe7b","line":111,"range":{"start_line":109,"start_character":50,"end_line":111,"end_character":26},"in_reply_to":"9a061dce_7c0f962e","updated":"2016-04-21 02:24:07.000000000","message":"niice!","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"c930242bac124dd61249adb7e561189723d485d5","unresolved":false,"context_lines":[{"line_number":106,"context_line":"REST API impact"},{"line_number":107,"context_line":"---------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be no impact on the REST API contract. The Nova Image API will"},{"line_number":110,"context_line":"continue to proxy requests to Glance v1 until the work to bring back"},{"line_number":111,"context_line":"changes_since is complete."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_be13a10c","line":111,"range":{"start_line":109,"start_character":50,"end_line":111,"end_character":26},"in_reply_to":"9a061dce_aeaed882","updated":"2016-04-05 17:44:36.000000000","message":"I don\u0027t think v2 supports changes-since at all, but instead supports using comparative filters - for example, instead of\n\nchanges-since: 2016-03-29T22:55:00Z\n\nuse:\n\nupdated-at: gte:2016-03-29T22:55:00Z\n\n[1] https://review.openstack.org/#/c/197388/\n[2] https://review.openstack.org/#/c/192926/\n\nRegardless, I believe it is still not discoverable in any way beyond trial-and-error.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"45d32d9f0b7f4f7df4e13a6c803e6b86ed79c603","unresolved":false,"context_lines":[{"line_number":106,"context_line":"REST API impact"},{"line_number":107,"context_line":"---------------"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"There will be no impact on the REST API contract. The Nova Image API will"},{"line_number":110,"context_line":"continue to proxy requests to Glance v1 until the work to bring back"},{"line_number":111,"context_line":"changes_since is complete."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_6275da96","line":111,"range":{"start_line":109,"start_character":50,"end_line":111,"end_character":26},"in_reply_to":"9a061dce_be13a10c","updated":"2016-04-06 06:07:31.000000000","message":"Yeah, I think those are excellent questions.\n\nNova talking to Liberty won\u0027t have the support. And as far as changes-since goes, we need to determine if we really need more filters.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"Other end user impact"},{"line_number":125,"context_line":"---------------------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":130,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_4e50dc5e","line":127,"updated":"2016-04-05 16:31:05.000000000","message":"This section was None in the mitaka version of the spec. Is this added because of the proxy nature of the nova API and the glance API for listing and showing images?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":124,"context_line":"Other end user impact"},{"line_number":125,"context_line":"---------------------"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":130,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_7c2156b4","line":127,"in_reply_to":"9a061dce_4e50dc5e","updated":"2016-04-08 17:09:04.000000000","message":"I suppose this section should be in Mitaka version, but all these issues were not known by that time. And it doesn\u0027t connect with Nova, here are only basic incompatibilities between v1 and v2 that cannot be avoided. They are not critical but users must be warned about them. \n\nFor example, if an image has a custom property \u0027visibility\u0027 then it will be ignored when Nova adopts Glance v2.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  * v2 forbids to specify some image properties like ``id`` and ``size``"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"  * to filter list of images by v1\u0027s ``changes-since`` in v2 user should"},{"line_number":168,"context_line":"    use filter ``gt:updated_at``"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_c9022609","line":167,"updated":"2016-04-05 16:31:05.000000000","message":"So today with the nova images API I can list images and filter by changes-since:\n\nhttps://github.com/openstack/nova/blob/55e04230adc538366d2808a25816507f129ac4c9/nova/api/openstack/compute/images.py#L33\n\nHow is this going to be handled under the covers for the v2 work, is there going to be a translation shim that converts v1 image filters to v2 image filters when we know we\u0027re going to be talking to the v2 API?\n\nBecause I don\u0027t think we can ignore the v1 filters in the nova images API just because we\u0027re using glance v2 under the covers, that would be a break in the nova API.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  * v2 forbids to specify some image properties like ``id`` and ``size``"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"  * to filter list of images by v1\u0027s ``changes-since`` in v2 user should"},{"line_number":168,"context_line":"    use filter ``gt:updated_at``"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_773df1ba","line":167,"in_reply_to":"9a061dce_c9022609","updated":"2016-04-08 17:09:04.000000000","message":"I answered earlier: yes, Nova will be able to sort by \"changes-since\", this patch makes the trick and transforms one filter in the other: https://review.openstack.org/#/c/238309/17/nova/image/glance.py LL 556-559","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"cf5b902098a233b7fd46f580772e8331f76e5728","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  * v2 forbids to specify some image properties like ``id`` and ``size``"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"  * to filter list of images by v1\u0027s ``changes-since`` in v2 user should"},{"line_number":168,"context_line":"    use filter ``gt:updated_at``"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_e1273e62","line":167,"in_reply_to":"9a061dce_c9022609","updated":"2016-04-05 17:54:18.000000000","message":"To maintain nova images API compatibility in a setup without image API v1, nova would simply need to add a compatibility layer, which switches \"changes-since: foo\" to \"updated_at: gte:foo\".","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"45d32d9f0b7f4f7df4e13a6c803e6b86ed79c603","unresolved":false,"context_lines":[{"line_number":164,"context_line":""},{"line_number":165,"context_line":"  * v2 forbids to specify some image properties like ``id`` and ``size``"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"  * to filter list of images by v1\u0027s ``changes-since`` in v2 user should"},{"line_number":168,"context_line":"    use filter ``gt:updated_at``"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_02e4de38","line":167,"in_reply_to":"9a061dce_e1273e62","updated":"2016-04-06 06:07:31.000000000","message":"Please let\u0027s avoid the term \"compatibility layer\". And sorry for being extra cautious here. I just want to avoid unnecessary roadblocks.\n\nI think we all are using it in many ways for different purposes.\n\nBut I get Drew\u0027s point, we would need some logic that can intelligently figure out v1 and v2 quirks.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"99bef2aca2949d19c77a4e296019ee07c31628ae","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"  * to filter list of images by v1\u0027s ``changes-since`` in v2 user should"},{"line_number":168,"context_line":"    use filter ``gt:updated_at``"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Performance Impact"},{"line_number":171,"context_line":"------------------"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_8954ae21","line":169,"updated":"2016-04-05 16:36:48.000000000","message":"I feel like this list is mostly just a carry forward. I\u0027d really rather see permalinks to code in the tree pointing out where the issues are.\n\nAs I said in the email, I think there are a few things that can be sorted early that make the rest of this list make more sense. It would be nice if that was addressed.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"53d922354c06ab6beedbaa27637baf389097d542","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":"  * to filter list of images by v1\u0027s ``changes-since`` in v2 user should"},{"line_number":168,"context_line":"    use filter ``gt:updated_at``"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Performance Impact"},{"line_number":171,"context_line":"------------------"},{"line_number":172,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_6e99cec3","line":169,"in_reply_to":"9a061dce_8954ae21","updated":"2016-04-21 02:24:07.000000000","message":"#action mike to update the spec to show git commits for each item in list :)","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":175,"context_line":"Other deployer impact"},{"line_number":176,"context_line":"---------------------"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"The deployers should need to be aware that it\u0027s possible some virt drivers may"},{"line_number":179,"context_line":"not support Glance v2 yet. The details of this will be clearly documented in"},{"line_number":180,"context_line":"the release notes and proper warnings will be logged."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"These drivers will explicitly request v1 to be deployed instead of relying"},{"line_number":183,"context_line":"entirely on version discoverability."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Developer impact"},{"line_number":186,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_09241ead","line":183,"range":{"start_line":178,"start_character":0,"end_line":183,"end_character":36},"updated":"2016-04-05 16:31:05.000000000","message":"I think this is just talking about the xen plugins, which we\u0027re going to be adding glance v2 support for, right? If so, then it seems like this section would be None.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"45d32d9f0b7f4f7df4e13a6c803e6b86ed79c603","unresolved":false,"context_lines":[{"line_number":175,"context_line":"Other deployer impact"},{"line_number":176,"context_line":"---------------------"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"The deployers should need to be aware that it\u0027s possible some virt drivers may"},{"line_number":179,"context_line":"not support Glance v2 yet. The details of this will be clearly documented in"},{"line_number":180,"context_line":"the release notes and proper warnings will be logged."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"These drivers will explicitly request v1 to be deployed instead of relying"},{"line_number":183,"context_line":"entirely on version discoverability."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Developer impact"},{"line_number":186,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_e2c56a8e","line":183,"range":{"start_line":178,"start_character":0,"end_line":183,"end_character":36},"in_reply_to":"9a061dce_040d2537","updated":"2016-04-06 06:07:31.000000000","message":"+1","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":175,"context_line":"Other deployer impact"},{"line_number":176,"context_line":"---------------------"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"The deployers should need to be aware that it\u0027s possible some virt drivers may"},{"line_number":179,"context_line":"not support Glance v2 yet. The details of this will be clearly documented in"},{"line_number":180,"context_line":"the release notes and proper warnings will be logged."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"These drivers will explicitly request v1 to be deployed instead of relying"},{"line_number":183,"context_line":"entirely on version discoverability."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Developer impact"},{"line_number":186,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_f76101aa","line":183,"range":{"start_line":178,"start_character":0,"end_line":183,"end_character":36},"in_reply_to":"9a061dce_09241ead","updated":"2016-04-08 17:09:04.000000000","message":"Done","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"99bef2aca2949d19c77a4e296019ee07c31628ae","unresolved":false,"context_lines":[{"line_number":175,"context_line":"Other deployer impact"},{"line_number":176,"context_line":"---------------------"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"The deployers should need to be aware that it\u0027s possible some virt drivers may"},{"line_number":179,"context_line":"not support Glance v2 yet. The details of this will be clearly documented in"},{"line_number":180,"context_line":"the release notes and proper warnings will be logged."},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"These drivers will explicitly request v1 to be deployed instead of relying"},{"line_number":183,"context_line":"entirely on version discoverability."},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"Developer impact"},{"line_number":186,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_040d2537","line":183,"range":{"start_line":178,"start_character":0,"end_line":183,"end_character":36},"in_reply_to":"9a061dce_09241ead","updated":"2016-04-05 16:36:48.000000000","message":"Right, we should say this is going to make everything cut over in the same release.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"14acc45b7b6c30b5f8a1444689ab450d80aac94b","unresolved":false,"context_lines":[{"line_number":203,"context_line":"  sudipto"},{"line_number":204,"context_line":"  nikhil-komawar"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"Work Items"},{"line_number":207,"context_line":"----------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"* Move `nova.image` to be backed by either Glance v1 or Glance v2, defaulting"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_0174f2cc","line":206,"updated":"2016-04-05 18:06:23.000000000","message":"Is bug 1201266 handled in this somewhere?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":203,"context_line":"  sudipto"},{"line_number":204,"context_line":"  nikhil-komawar"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"Work Items"},{"line_number":207,"context_line":"----------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"* Move `nova.image` to be backed by either Glance v1 or Glance v2, defaulting"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_977b6529","line":206,"in_reply_to":"9a061dce_0174f2cc","updated":"2016-04-08 17:09:04.000000000","message":"Yes, https://review.openstack.org/#/c/238309/17/nova/image/glance.py LL 560-567","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"53d922354c06ab6beedbaa27637baf389097d542","unresolved":false,"context_lines":[{"line_number":203,"context_line":"  sudipto"},{"line_number":204,"context_line":"  nikhil-komawar"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"Work Items"},{"line_number":207,"context_line":"----------"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"* Move `nova.image` to be backed by either Glance v1 or Glance v2, defaulting"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_6e754e62","line":206,"in_reply_to":"9a061dce_977b6529","updated":"2016-04-21 02:24:07.000000000","message":"thanks!","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":213,"context_line":"  * Add another \u0027schema-based\u0027 handler, that transforms glance v2 image"},{"line_number":214,"context_line":"    output to format adopted in nova.image."},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"  * Add additional handlers that transforms v1 image filters in v2."},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":219,"context_line":"    (creation of instance in db + file uploading)."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_895e6e10","line":216,"updated":"2016-04-05 16:31:05.000000000","message":"OK, I think this is what I was looking for above, cool.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":218,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":219,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"  * Add special handler for creation active images with size \u00270\u0027 without image"},{"line_number":222,"context_line":"    data."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_49abb6d6","line":221,"range":{"start_line":221,"start_character":28,"end_line":221,"end_character":36},"updated":"2016-04-05 16:31:05.000000000","message":"creating","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":218,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":219,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"  * Add special handler for creation active images with size \u00270\u0027 without image"},{"line_number":222,"context_line":"    data."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_77f4d186","line":221,"range":{"start_line":221,"start_character":28,"end_line":221,"end_character":36},"in_reply_to":"9a061dce_49abb6d6","updated":"2016-04-08 17:09:04.000000000","message":"Done","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  * Add special handler for creation active images with size \u00270\u0027 without image"},{"line_number":222,"context_line":"    data."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    .. note::"},{"line_number":227,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_09cedeb3","line":224,"updated":"2016-04-05 16:31:05.000000000","message":"Where are we going to add this ability? Via the nova images API? Is \u0027show_multiple_locations\u0027 a v2 API only thing? If so, then I think we could omit it since it sounds like adding new proxy code to the nova API for using glance API features, which we shouldn\u0027t need to do.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"53d922354c06ab6beedbaa27637baf389097d542","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  * Add special handler for creation active images with size \u00270\u0027 without image"},{"line_number":222,"context_line":"    data."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    .. note::"},{"line_number":227,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_4e6b321e","line":224,"in_reply_to":"5a18252c_41be8aff","updated":"2016-04-21 02:24:07.000000000","message":"yes, I do not think we should expose locations via the Nova proxy API -- guess that\u0027s covered in the later PS. But I wanted to add another note that the location logic is currently being used by under the hood services like virt driver for volume. (This was just note for newer audience) (Let\u0027s continue the discussion, if needed, on newer PS)","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"4668080ef78528c0b591c85b472cf057f5ad8018","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  * Add special handler for creation active images with size \u00270\u0027 without image"},{"line_number":222,"context_line":"    data."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    .. note::"},{"line_number":227,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_19727949","line":224,"in_reply_to":"9a061dce_09cedeb3","updated":"2016-04-06 14:16:10.000000000","message":"Who will be able to set the custom locations for images? If any end user can, this represents a massive vulnerability. I also agree with Matt\u0027s point that adding new proxy code is unnecessary.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  * Add special handler for creation active images with size \u00270\u0027 without image"},{"line_number":222,"context_line":"    data."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    .. note::"},{"line_number":227,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_79168356","line":224,"in_reply_to":"9a061dce_19727949","updated":"2016-04-08 17:09:04.000000000","message":"Glance v1 allows to specify locations for images (http://docs.openstack.org/cli-reference/glance.html#glance-image-create-v1), so nova.image supports it as well. v2 also allows setting custom locations for images, but it\u0027s turned off by default and it has to be done in a separate request. \u0027show_multiple_locations\u0027 is v2 config param that enables it.\n\nI\u0027m not sure if anybody uses this functionality in Nova, but nevertheless I added this support to make it compatible.\nhttps://review.openstack.org/#/c/259097/18/nova/image/glance.py LL 517-520. \n\nBtw, Cinder has this ability too https://github.com/openstack/cinder/blob/master/cinder/image/glance.py#L301-L313","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"067c0bb1488b26d766f60e0a7e537f9a279ce1d1","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  * Add special handler for creation active images with size \u00270\u0027 without image"},{"line_number":222,"context_line":"    data."},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    .. note::"},{"line_number":227,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a18252c_41be8aff","line":224,"in_reply_to":"9a061dce_79168356","updated":"2016-04-15 01:10:10.000000000","message":"So how does a user of the nova API specify a custom location when creating an image via nova? I suppose by specifying it in the metadata when taking a snapshot of the instance:\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/servers.py#L1100\n\nhttp://developer.openstack.org/api-ref-compute-v2.1.html#createImage\n\nBut since nova is using the glance v1 API wouldn\u0027t those go under the custom \u0027properties\u0027 dict in the image? Yeah:\n\nhttps://github.com/openstack/nova/blob/43551987506a6bc57b29e85b4d6df165ab082f71/nova/utils.py#L1174\n\nhttps://github.com/openstack/nova/blob/43551987506a6bc57b29e85b4d6df165ab082f71/nova/compute/api.py#L2323\n\nhttps://github.com/openstack/nova/blob/43551987506a6bc57b29e85b4d6df165ab082f71/nova/compute/api.py#L2298\n\nSo I don\u0027t think you can set the image location field from the nova-api, metadata just goes under \u0027properties\u0027.\n\nhttp://paste.openstack.org/show/494143/\n\nNow, if we have a v1 image with a \u0027location\u0027 meta key in the \u0027properties\u0027 field, and we normalize that to just put the custom metadata properties into the v2 image, the location field could sneak in that way, unless we filter it out. Are we already doing that?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":224,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    .. note::"},{"line_number":227,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"},{"line_number":228,"context_line":"      for doing that."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"  * Add special handler to remove custom properties from the image:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_a9c9b27a","line":227,"updated":"2016-04-05 16:31:05.000000000","message":"Looking at the glance code this is only used in the v2 API, therefore if the nova images API is really just a v1 perspective of images, I don\u0027t think we should be adding this support.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"53d922354c06ab6beedbaa27637baf389097d542","unresolved":false,"context_lines":[{"line_number":224,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    .. note::"},{"line_number":227,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"},{"line_number":228,"context_line":"      for doing that."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"  * Add special handler to remove custom properties from the image:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_ce658245","line":227,"in_reply_to":"9a061dce_a9c9b27a","updated":"2016-04-21 02:24:07.000000000","message":"Yes, let\u0027s avoid if we can. More comment on later PS.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"067c0bb1488b26d766f60e0a7e537f9a279ce1d1","unresolved":false,"context_lines":[{"line_number":230,"context_line":"  * Add special handler to remove custom properties from the image:"},{"line_number":231,"context_line":"    ``purge_props`` flag in v1 vs. ``props_to_remove`` list in v2."},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"* Adopt Xen virt driver to support v2 api."},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"* Ensure the rest of the code base can use the existing image code to talk to"},{"line_number":236,"context_line":"  either Glance v1 or Glance v2, again defaulting to Glance v2 when possible."}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a18252c_9c7e4968","line":233,"updated":"2016-04-15 01:10:10.000000000","message":"Sounds like we have to add hyper-v to this list.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":237,"context_line":""},{"line_number":238,"context_line":"* Ensure all the virt drivers either support Glance v2 or fallback to v1."},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* Add a deprecation warning in the logs if users run with Glance v1."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Dependencies"},{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_8972ee47","line":240,"updated":"2016-04-05 16:31:05.000000000","message":"Unless the code really doesn\u0027t support v1, like whatever virt driver stuff isn\u0027t supporting v2 yet - but I\u0027m not sure if that\u0027s anything beyond xen.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* Add a deprecation warning in the logs if users run with Glance v1."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Dependencies"},{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Bug https://bugs.launchpad.net/nova/+bug/1539698 must be fixed before code is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_33e99181","line":242,"updated":"2016-04-05 16:31:05.000000000","message":"Why isn\u0027t https://blueprints.launchpad.net/glance/+spec/v2-additional-filtering in the dependency list?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"cf5b902098a233b7fd46f580772e8331f76e5728","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* Add a deprecation warning in the logs if users run with Glance v1."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Dependencies"},{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Bug https://bugs.launchpad.net/nova/+bug/1539698 must be fixed before code is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_a14ee66c","line":242,"in_reply_to":"9a061dce_33e99181","updated":"2016-04-05 17:54:18.000000000","message":"I think the support is already merged, but the spec page didn\u0027t get updated.\n\nhttps://review.openstack.org/#/c/197388/","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"45d32d9f0b7f4f7df4e13a6c803e6b86ed79c603","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* Add a deprecation warning in the logs if users run with Glance v1."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Dependencies"},{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Bug https://bugs.launchpad.net/nova/+bug/1539698 must be fixed before code is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_c247861b","line":242,"in_reply_to":"9a061dce_a14ee66c","updated":"2016-04-06 06:07:31.000000000","message":"Yes, thanks.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"53d922354c06ab6beedbaa27637baf389097d542","unresolved":false,"context_lines":[{"line_number":239,"context_line":""},{"line_number":240,"context_line":"* Add a deprecation warning in the logs if users run with Glance v1."},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Dependencies"},{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Bug https://bugs.launchpad.net/nova/+bug/1539698 must be fixed before code is"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_8e48aab4","line":242,"in_reply_to":"9a061dce_c247861b","updated":"2016-04-21 02:24:07.000000000","message":"Done","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":248,"context_line":"Testing"},{"line_number":249,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"The existing tempest tests will validate the Glance v2 API support, as the"},{"line_number":252,"context_line":"default will move to Glance v2."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"However, we should also make sure one of the gate jobs still tests the Glance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_29b122e2","line":251,"updated":"2016-04-05 16:31:05.000000000","message":"What does gate-tempest-dsvm-full use today? glance v2 or are both v1 and v2 in the service catalog?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"53d922354c06ab6beedbaa27637baf389097d542","unresolved":false,"context_lines":[{"line_number":248,"context_line":"Testing"},{"line_number":249,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"The existing tempest tests will validate the Glance v2 API support, as the"},{"line_number":252,"context_line":"default will move to Glance v2."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"However, we should also make sure one of the gate jobs still tests the Glance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a122d0e_aee486ab","line":251,"in_reply_to":"5a18252c_7c2ecdfb","updated":"2016-04-21 02:24:07.000000000","message":"yeah, it\u0027s a bit weird. both versions are running but client defaults to v2 and nova to v1.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2b0ab5a55dfd33ae0987314e375a44a8a3bb22f9","unresolved":false,"context_lines":[{"line_number":248,"context_line":"Testing"},{"line_number":249,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"The existing tempest tests will validate the Glance v2 API support, as the"},{"line_number":252,"context_line":"default will move to Glance v2."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"However, we should also make sure one of the gate jobs still tests the Glance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a18252c_7c2ecdfb","line":251,"in_reply_to":"5a18252c_dcc28184","updated":"2016-04-15 01:22:14.000000000","message":"I see enable_v1_api and enable_v2_api both default to true in the glance-api.conf in the gate-tempest-dsvm-full job:\n\nhttp://logs.openstack.org/29/304929/3/check/gate-tempest-dsvm-full/e06d006/logs/etc/glance/glance-api.conf.txt.gz\n\nSo that must be how it\u0027s working.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":248,"context_line":"Testing"},{"line_number":249,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"The existing tempest tests will validate the Glance v2 API support, as the"},{"line_number":252,"context_line":"default will move to Glance v2."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"However, we should also make sure one of the gate jobs still tests the Glance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_f6b58231","line":251,"in_reply_to":"9a061dce_29b122e2","updated":"2016-04-08 17:09:04.000000000","message":"Currently it\u0027s v2 support only, because it\u0027s default version. For v1 testing (if it\u0027s needed) we have to create another gate with with \"enable_v2_api\u003dFalse\" in glance config.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"067c0bb1488b26d766f60e0a7e537f9a279ce1d1","unresolved":false,"context_lines":[{"line_number":248,"context_line":"Testing"},{"line_number":249,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"The existing tempest tests will validate the Glance v2 API support, as the"},{"line_number":252,"context_line":"default will move to Glance v2."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"However, we should also make sure one of the gate jobs still tests the Glance"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5a18252c_dcc28184","line":251,"in_reply_to":"9a061dce_f6b58231","updated":"2016-04-15 01:10:10.000000000","message":"But if nova doesn\u0027t support using glance v2 and glance v1 is disabled in the gate job, how is anything working there?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":251,"context_line":"The existing tempest tests will validate the Glance v2 API support, as the"},{"line_number":252,"context_line":"default will move to Glance v2."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"However, we should also make sure one of the gate jobs still tests the Glance"},{"line_number":255,"context_line":"v1 only to avoid breaking existing deployments."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_a9c5323d","line":254,"updated":"2016-04-05 16:31:05.000000000","message":"Yeah, it seems like we\u0027re going to need a new job so we have one job testing glance v2 and another job testing glance v1.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":251,"context_line":"The existing tempest tests will validate the Glance v2 API support, as the"},{"line_number":252,"context_line":"default will move to Glance v2."},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"However, we should also make sure one of the gate jobs still tests the Glance"},{"line_number":255,"context_line":"v1 only to avoid breaking existing deployments."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_d6f83ec7","line":254,"in_reply_to":"9a061dce_a9c5323d","updated":"2016-04-08 17:09:04.000000000","message":"Yes, see my above comment.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":271,"context_line":"History"},{"line_number":272,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":".. list-table:: Revisions"},{"line_number":275,"context_line":"   :header-rows: 1"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"   * - Release Name"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_e92baae9","line":274,"updated":"2016-04-05 16:31:05.000000000","message":"Let\u0027s add a Newton row to this table.","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":271,"context_line":"History"},{"line_number":272,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":".. list-table:: Revisions"},{"line_number":275,"context_line":"   :header-rows: 1"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"   * - Release Name"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_56042ec5","line":274,"in_reply_to":"9a061dce_e92baae9","updated":"2016-04-08 17:09:04.000000000","message":"Done","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a65e02e1eef5e00e8d0da9421421333f3867755b","unresolved":false,"context_lines":[{"line_number":279,"context_line":"   * - Liberty"},{"line_number":280,"context_line":"     - Introduced"},{"line_number":281,"context_line":"   * - Mitaka"},{"line_number":282,"context_line":"     - Implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_e9044a7f","line":282,"range":{"start_line":282,"start_character":7,"end_line":282,"end_character":21},"updated":"2016-04-05 16:31:05.000000000","message":"? As in, partially implemented?","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"7f0b0c42aeeaa4d4ee5c86bc439a348870a8bf67","unresolved":false,"context_lines":[{"line_number":279,"context_line":"   * - Liberty"},{"line_number":280,"context_line":"     - Introduced"},{"line_number":281,"context_line":"   * - Mitaka"},{"line_number":282,"context_line":"     - Implementation"}],"source_content_type":"text/x-rst","patch_set":2,"id":"9a061dce_3609bade","line":282,"range":{"start_line":282,"start_character":7,"end_line":282,"end_character":21},"in_reply_to":"9a061dce_e9044a7f","updated":"2016-04-08 17:09:04.000000000","message":"Done","commit_id":"67ec9c9c6d0d6352bf41115d0b5b086f752c6c41"},{"author":{"_account_id":17976,"name":"Drew Varner","email":"avarner@linux.vnet.ibm.com","username":"avarner"},"change_message_id":"43c9a7f44d6cacae5964eba706c19049fdb5ad4d","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":".. note::"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  We must keep compatibility for Glance v1 and Glance v2 to allow for a"},{"line_number":49,"context_line":"  smooth upgrade between releases."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a18252c_95cb841e","line":48,"updated":"2016-04-11 21:18:34.000000000","message":"Suggested text: \"Nova\u0027s external API must keep compatibility regardless of whether it is using Glance v1 or Glance v2, to allow for a smooth upgrade between releases.\"\n\nRight now, it implies that Glance needs to keep compatibility in its API between v1 and v2, which has already been broken","commit_id":"c92558ef3bd37bc982663a9fad47598cc604503e"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"aafc175d7d02cd9bcaaae03a5e57f9c61e2f5995","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":".. note::"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  We must keep compatibility for Glance v1 and Glance v2 to allow for a"},{"line_number":49,"context_line":"  smooth upgrade between releases."},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Use Cases"}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a18252c_2f3ef927","line":48,"in_reply_to":"5a18252c_95cb841e","updated":"2016-04-14 13:45:00.000000000","message":"Accepted. Thanks!","commit_id":"c92558ef3bd37bc982663a9fad47598cc604503e"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"e8202baace7ec47aa135c4e2b545fe5bdc79e575","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a18252c_ee2d43a9","line":204,"updated":"2016-04-14 05:10:25.000000000","message":"What\u0027s the purpose to support\u00270\u0027 sized image?","commit_id":"c92558ef3bd37bc982663a9fad47598cc604503e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"e994b6d034e87fadc591a80d423cbc35fd4b0451","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_db7ee2e2","line":204,"in_reply_to":"1a122d0e_7b01d305","updated":"2016-04-21 01:41:28.000000000","message":"#action mike to reformat text. :)","commit_id":"c92558ef3bd37bc982663a9fad47598cc604503e"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"04c879aee67e42300b30e9fff5bbb207af76b935","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a18252c_66dc8a73","line":204,"in_reply_to":"5a18252c_12a9a690","updated":"2016-04-14 18:09:08.000000000","message":"Thanks for that link, Mike. This is a good question and I need clarification on it as well. Have added this as a side question for discussion during the summit session (line 68 https://etherpad.openstack.org/p/nova-glance-newton ).\n\nMy understanding is that this is required to store volume snapshots. The review mentioned above also describes similarly. But, is that it? or are there more reasons?","commit_id":"c92558ef3bd37bc982663a9fad47598cc604503e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4f166c915b4a26b5a2d413f438a34eceac9b5f3c","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a122d0e_7b01d305","line":204,"in_reply_to":"5a18252c_42584856","updated":"2016-04-20 00:23:27.000000000","message":"These details should be pointed out as a sub-bullet in here since I\u0027ve asked the same question in the latest patch set.","commit_id":"c92558ef3bd37bc982663a9fad47598cc604503e"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"8d5540e6e9cfbb7767c67d4e1752473e7e6d2b17","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a18252c_42584856","line":204,"in_reply_to":"5a18252c_66dc8a73","updated":"2016-04-15 03:04:31.000000000","message":"Thanks Mike for sharing the link which is helpful. And also thanks Nikhil for putting it in the summit discussion session. I\u0027m look forward to know if there are more use cases.","commit_id":"c92558ef3bd37bc982663a9fad47598cc604503e"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"aafc175d7d02cd9bcaaae03a5e57f9c61e2f5995","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":3,"id":"5a18252c_12a9a690","line":204,"in_reply_to":"5a18252c_ee2d43a9","updated":"2016-04-14 13:45:00.000000000","message":"Oh... It\u0027s a hard question, but we have to. First of all, v1 supports image activation without file upload if user provides size \u003d 0. Here\u0027s the commit https://review.openstack.org/#/c/9715/\n\nUnfortunately, nova uses this feature and there are tempest tests that cover it. Since glance v2 doesn\u0027t allow to do the same, we have to handle this situation with manual image creation.","commit_id":"c92558ef3bd37bc982663a9fad47598cc604503e"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"37ee291885adafbb5358d909dd29e4d7cd2a5482","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Currently, Nova deployers are forced to deploy both Glance v1 and Glance"},{"line_number":55,"context_line":"v2. This is because Nova currently requires Glance v1, but only Glance v2 is"},{"line_number":56,"context_line":"considered safe to be exposed publicly to End Users."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"It is assumed that Nova\u0027s lack of support for Glance v2 is causing confusion"},{"line_number":59,"context_line":"that is holding people back from deploying Glance v2. This in turn is causing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_d5dccf1a","line":56,"updated":"2016-04-15 14:31:29.000000000","message":"I\u0027d still like a footnote explaining why this is true here. Because it\u0027s not something I understand.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"Currently, Nova deployers are forced to deploy both Glance v1 and Glance"},{"line_number":55,"context_line":"v2. This is because Nova currently requires Glance v1, but only Glance v2 is"},{"line_number":56,"context_line":"considered safe to be exposed publicly to End Users."},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"It is assumed that Nova\u0027s lack of support for Glance v2 is causing confusion"},{"line_number":59,"context_line":"that is holding people back from deploying Glance v2. This in turn is causing"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_a4294ce8","line":56,"in_reply_to":"1a122d0e_d5dccf1a","updated":"2016-04-21 01:37:42.000000000","message":"+1 on adding footnote. I will let Mike update it.\n\nOn Sean\u0027s question why:\n\nThe CURRENT Glance version is v2 and v1 is SUPPORTED with glanceclient defaulting to v2. That is one reason why operators should prefer deploying v2. I think once the adoption is successful they will not have to worry about deploying v1.\n\nv1 is considered unsuitable for exposing to public for a number of reasons but to name a few -- image schema isn\u0027t exposed, list all images call shows details including all properties on image that may result into slow queries or worse, operators don\u0027t have a way to specify certain important properties (via schema again) as a part of their deployment, tags API isn\u0027t exposed as recommended by the API_WG, and a lot more!","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"37ee291885adafbb5358d909dd29e4d7cd2a5482","unresolved":false,"context_lines":[{"line_number":60,"context_line":"some problems for the DefCore effort."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Proposed change"},{"line_number":63,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The main bulk of the work is ensuring the Nova Image API contract is maintained"},{"line_number":66,"context_line":"while talking to either Glance v1 API or Glance v2 API. This will require the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_01cf29b1","line":63,"updated":"2016-04-15 14:31:29.000000000","message":"I feel like this ends up being the same boiler plate that hasn\u0027t really gotten us anywhere yet. I\u0027ve put an addendum on top of this for alternative here.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":60,"context_line":"some problems for the DefCore effort."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Proposed change"},{"line_number":63,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"The main bulk of the work is ensuring the Nova Image API contract is maintained"},{"line_number":66,"context_line":"while talking to either Glance v1 API or Glance v2 API. This will require the"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_846b701d","line":63,"in_reply_to":"1a122d0e_01cf29b1","updated":"2016-04-21 01:37:42.000000000","message":"I think your addendum looks good.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":73,"context_line":"and forces to send direct http requests."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Other virt drivers that don\u0027t support Glance v2 should fallback to"},{"line_number":76,"context_line":"v1. Eventually, all drivers should support v2 and Glance\u0027s v1 should be turned"},{"line_number":77,"context_line":"off by default. The expected deadline for this switch is Ocata."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"This spec doesn\u0027t intend to change the value of the existing Nova"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_7cca4d1c","line":76,"updated":"2016-04-15 01:47:45.000000000","message":"So from PS2 Sean said that hyper-v uses glance v1 for creating a snapshot image. From this statement, I take it we won\u0027t convert the hyper-v driver to use glance v2 in Newton (or at least it\u0027s lower priority), but we expect to have that done by the time Ocata is released - which then moves the Glance v1 API deprecation out to...P and removal in R?","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":73,"context_line":"and forces to send direct http requests."},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Other virt drivers that don\u0027t support Glance v2 should fallback to"},{"line_number":76,"context_line":"v1. Eventually, all drivers should support v2 and Glance\u0027s v1 should be turned"},{"line_number":77,"context_line":"off by default. The expected deadline for this switch is Ocata."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"This spec doesn\u0027t intend to change the value of the existing Nova"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_64d0d4c9","line":76,"in_reply_to":"5a18252c_7cca4d1c","updated":"2016-04-21 01:37:42.000000000","message":"I don\u0027t think we want to wait that far on the deprecation of v1. I have been getting asked to remove v1 in Ocata if possible. We\u0027ve the v1 Deprecation session proposed to figure out the exact constraints. \n\nHaving said that, thanks for pointing out the Nova hyper-V driver. I don\u0027t know if Mike has planned this but I will look for someone to pick this up in Newton if possible.\n\nhttps://www.openstack.org/summit/austin-2016/summit-schedule/events/9164?goback\u003d1","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":77,"context_line":"off by default. The expected deadline for this switch is Ocata."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"This spec doesn\u0027t intend to change the value of the existing Nova"},{"line_number":80,"context_line":"configurations for Glance - which include the version in the URL - but"},{"line_number":81,"context_line":"rather notify the deployer that the new expected value has changed and"},{"line_number":82,"context_line":"the configuration file should be updated. During the Ocata cycle,"},{"line_number":83,"context_line":"we\u0027ll support both, versioned and unversioned, URLs to give deployers"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_dcd9e1f4","line":80,"updated":"2016-04-15 01:47:45.000000000","message":"This is via the CONF.glance.api_servers option right?","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":77,"context_line":"off by default. The expected deadline for this switch is Ocata."},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"This spec doesn\u0027t intend to change the value of the existing Nova"},{"line_number":80,"context_line":"configurations for Glance - which include the version in the URL - but"},{"line_number":81,"context_line":"rather notify the deployer that the new expected value has changed and"},{"line_number":82,"context_line":"the configuration file should be updated. During the Ocata cycle,"},{"line_number":83,"context_line":"we\u0027ll support both, versioned and unversioned, URLs to give deployers"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_9899107c","line":80,"in_reply_to":"5a18252c_dcd9e1f4","updated":"2016-04-21 01:37:42.000000000","message":"I don\u0027t think that\u0027s it. That config doesn\u0027t have the version in it. It merely requires hostname and port info.\n\n\n\ncfg.ListOpt(\u0027api_servers\u0027,\n                help\u003d\u0027\u0027\u0027\nA list of the glance api servers endpoints available to nova. These\nshould be fully qualified urls of the form\n\"scheme://hostname:port[/path]\" (i.e. \"http://10.0.1.0:9292\" or\n\"https://my.glance.server/image\")\u0027\u0027\u0027),","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":80,"context_line":"configurations for Glance - which include the version in the URL - but"},{"line_number":81,"context_line":"rather notify the deployer that the new expected value has changed and"},{"line_number":82,"context_line":"the configuration file should be updated. During the Ocata cycle,"},{"line_number":83,"context_line":"we\u0027ll support both, versioned and unversioned, URLs to give deployers"},{"line_number":84,"context_line":"enough time to switch over. This will also allow us to have Glance v1"},{"line_number":85,"context_line":"and Glance v2 specific gates to thoroughly test the changes being"},{"line_number":86,"context_line":"made."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_5cf4b159","line":83,"updated":"2016-04-15 01:47:45.000000000","message":"Maybe in Ocata we\u0027ll be using the service catalog...that is probably Sean\u0027s dream, but not a necessary detail here.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":80,"context_line":"configurations for Glance - which include the version in the URL - but"},{"line_number":81,"context_line":"rather notify the deployer that the new expected value has changed and"},{"line_number":82,"context_line":"the configuration file should be updated. During the Ocata cycle,"},{"line_number":83,"context_line":"we\u0027ll support both, versioned and unversioned, URLs to give deployers"},{"line_number":84,"context_line":"enough time to switch over. This will also allow us to have Glance v1"},{"line_number":85,"context_line":"and Glance v2 specific gates to thoroughly test the changes being"},{"line_number":86,"context_line":"made."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_d8eee820","line":83,"in_reply_to":"5a18252c_5cf4b159","updated":"2016-04-21 01:37:42.000000000","message":":-)","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":98,"context_line":"REST API impact"},{"line_number":99,"context_line":"---------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"},{"line_number":104,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_dc8721b3","line":101,"updated":"2016-04-15 01:47:45.000000000","message":"Sean was saying there are going to be some inconsistences between glance v1 and glance v2 that will be avoidable in the API regardless of the translation layer, i.e. case insensitivity and the nested custom properties. If we can\u0027t avoid some of those with the translation code, it seems we should probably note it in the REST API impact section.\n\nFor the nested custom properties in v1, couldn\u0027t we figure out what the custom properties are from a v2 image by using a whitelist of the required properties? Maybe I\u0027m getting ahead of myself.\n\nMaybe this is handled in the other end user impact section below.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":98,"context_line":"REST API impact"},{"line_number":99,"context_line":"---------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"},{"line_number":104,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_f8d2c45a","line":101,"in_reply_to":"1a122d0e_dbef4785","updated":"2016-04-21 01:37:42.000000000","message":"I am not sure if we can transpose all those responses in Nova modules for the Images Proxy API to work seamlessly. I will let Mike comment on what he thinks.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"766d676467504fec07f37eff35690a88698dd114","unresolved":false,"context_lines":[{"line_number":98,"context_line":"REST API impact"},{"line_number":99,"context_line":"---------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"},{"line_number":104,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_b85543c3","line":101,"in_reply_to":"1a122d0e_f8d2c45a","updated":"2016-04-26 14:42:00.000000000","message":"We don\u0027t need to duplicate between end user impact and REST API impact, we aren\u0027t adding new REST methods and we aren\u0027t adding a microversion to the REST API, and it really is end user of the API that is impacted by inconsistencies, so that\u0027s better left where it is.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b1f11b1e96460134aeeed0bd02a6dc52703bd555","unresolved":false,"context_lines":[{"line_number":98,"context_line":"REST API impact"},{"line_number":99,"context_line":"---------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"},{"line_number":104,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_dbef4785","line":101,"in_reply_to":"5a18252c_dc8721b3","updated":"2016-04-20 00:21:21.000000000","message":"*not avoidable","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":98,"context_line":"REST API impact"},{"line_number":99,"context_line":"---------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"Security impact"},{"line_number":104,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_1884e008","line":101,"in_reply_to":"5a18252c_dc8721b3","updated":"2016-04-21 01:37:42.000000000","message":"I think he added that as a part of the other end user impact section. I will let you decide what\u0027s more relevant for documentation.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"37ee291885adafbb5358d909dd29e4d7cd2a5482","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"None."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Other end user impact"},{"line_number":114,"context_line":"---------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_614b7d2c","line":113,"updated":"2016-04-15 14:31:29.000000000","message":"This is an extremely useful section, thank you for this. It helps understand the fallout a lot.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"b22539a64146f47f6c7757f67420594aebeef478","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"None."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Other end user impact"},{"line_number":114,"context_line":"---------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_00dc2711","line":113,"in_reply_to":"1a122d0e_614b7d2c","updated":"2016-05-06 18:52:44.000000000","message":"++\n\ngreat work Mike!","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_9c464979","line":118,"updated":"2016-04-15 01:47:45.000000000","message":"So what does this mean for a use case / test scenario? Is this an issue on the creation of an image or showing it? Like, if I created an image with glance v1 and then show it with glance v2 as the backend, does this impact it in anyway? Or vice-versa. If I\u0027m understanding this, the issue would be you create an image with glance v2 with properties \u0027foo\u0027 and \u0027Foo\u0027 and when showing the image with glance v1 (via nova\u0027s image API proxy), we can\u0027t distinguish from \u0027foo\u0027 and \u0027Foo\u0027 since it\u0027s not case sensitive, so we just show one of them (first or last, it\u0027s arbitrary). Is that right?","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"766d676467504fec07f37eff35690a88698dd114","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_b80c23ed","line":118,"in_reply_to":"1a122d0e_189b4067","updated":"2016-04-26 14:42:00.000000000","message":"OK, then I guess it\u0027s just an implementation detail as to whether we pick \u0027foo\u0027 or \u0027Foo\u0027 as the key when showing the image details. I imagine we\u0027ll just be iterating the list and overwrite any existing keys once we make them case insensitive.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"b22539a64146f47f6c7757f67420594aebeef478","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_a0cefb57","line":118,"in_reply_to":"1a122d0e_b80c23ed","updated":"2016-05-06 18:52:44.000000000","message":"I had a chat about this with Brian Rosmaita and we don\u0027t think we can switch back to being case insensitive keys. \n\nThere are some cases when camel case keys are being proposed. Since v2 is case sensitive, we can\u0027t override the keys when people might be using both of them in production for different purposes.\n\nThis is a bad bug that we need to live with.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_189b4067","line":118,"in_reply_to":"5a18252c_9c464979","updated":"2016-04-21 01:37:42.000000000","message":"correct,\n\n* v1 is case insensitive irrespective of the way you create the props\n* v2 can\u0027t avoid or be changed wrt to case sensitivity as some users/operators may be using them already","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"2aee28a97d128cac01fd89f091b1a8b4dc4b9871","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_f548be2f","line":118,"in_reply_to":"dab17558_0adefd6c","updated":"2016-05-06 22:30:20.000000000","message":"oops, will have to add another note so that it\u0027s not left out:\n\nhow do we want to handle the \"Image list details\" call\n\nhttp://developer.openstack.org/api-ref-compute-v2.1.html#listDetailImages\n\n\u0026\n\nv2 image list that does not have \"extra properties\" (only one type of image list call):\nhttp://developer.openstack.org/api-ref-image-v2.html#listImages-v2\n\nvs.\n\nv1 image list with details call that has all the extra properties (used by nova proxy API):\nhttp://developer.openstack.org/api-ref-image-v1.html#listImagesDetailed-v1\n\nNot sure if there has been a prior agreement but would be nice to have this in the spec.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"e75c9a774c41541b833fe6ac4236860f77ceff62","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_c4d6aec4","line":118,"in_reply_to":"dab17558_5bc90178","updated":"2016-05-06 21:41:54.000000000","message":"I\u0027m low on bandwidth to test this entire workflow on devstack. Brian Rosmaita has good notes on it (email describing details -- http://lists.openstack.org/pipermail/openstack-dev/2016-February/087519.html ). The case insensitivity was reported to be due to v1 passing properties via header. With v2 that is via the request body, so (I anticipate from the obvious) when Nova starts using v2, the properties behavior will become case sensitive.\n\nIn that case, all permutations of the case sensitive properties will be returned. (That is my current understanding, to confirm this, it needs to be tested when Nova proxy is setup to use Glance v2)","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d085c83d0b96870835cb7ece8291ceeaa605c97","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_5bc90178","line":118,"in_reply_to":"dab17558_a0cefb57","updated":"2016-05-06 19:43:42.000000000","message":"Nikhil, to be clear, we\u0027re not asking that glance v2 change it\u0027s API to allow case insensitive keys, what we\u0027re saying is this is going to be a change in behavior of the nova image proxy, so when we get a v2 image with \u0027foo\u0027 and \u0027Foo\u0027 we\u0027ll have to just return one of them.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"bff39dbdd5c6f01dbe2ec7bd76a03201521e71a0","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_0adefd6c","line":118,"in_reply_to":"dab17558_afd6e3c2","updated":"2016-05-06 22:12:20.000000000","message":"(another part of misunderstanding) Also, I got a differing opinion from the Summit when Sean was saying that the case sensitivity was something Nova can\u0027t avoid, implying we will return all properties as is? (or am I having a blurred memory).\n\nOn your note from April 26:\n\n\u003eOK, then I guess it\u0027s just an implementation detail as to whether we pick \u0027foo\u0027 or \u0027Foo\u0027 as the key when showing the image details. I imagine we\u0027ll just be iterating the list and overwrite any existing keys once we make them case insensitive.\n\nIf we want to keep the Nova proxy API as is (just return one property of the case sensitive list) we will need to do:\n\nfor img in image_list:\n    for my_prop, _ in img:\n        img.get(my_prop.lower())\n\nBecause, currently we return only lower case. Also, the update call via nova proxy will only update the lower case ones.\n\nThis may slow down the image list call significantly for images that have 100s of properties and accounts that have many images although paginated. (pagination being another factor that we need to test). Current image-list calls can be slow when done via nova, I feel we should avoid any changes that hit performance here (but hey, that\u0027s just an opinion and tiny factor in getting things done).\n\n---\n\nWriting all of this down so that everyone is in loop on the bigger picture and there\u0027s no more confusion.\n\nThanks for reading!","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"842a16f33292f5d9f72158307aff78fc45b3a804","unresolved":false,"context_lines":[{"line_number":115,"context_line":""},{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_afd6e3c2","line":118,"in_reply_to":"dab17558_c4d6aec4","updated":"2016-05-06 21:50:15.000000000","message":"I hope I got the part correct when you say \"we\u0027ll have to just return one of them\" you mean Nova proxy will return one of them. I was of the other opinion that Nova proxy will return all of them.\n\nIf you mean that Nova proxy _should_ return just one property then it will mean adding logic to Nova to ensure just one of those is returned (and the behavior remains consistent with the current proxy).\n\nAnd, thanks for clarifying on you not asking Glance changes its API. (though, I got it earlier. hence the detailed clarification).","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  * in v1 user can create custom properties like \u0027owner\u0027 or \u0027created_at\u0027 and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_9cb80977","line":119,"range":{"start_line":119,"start_character":4,"end_line":119,"end_character":15},"updated":"2016-04-15 01:47:45.000000000","message":"insensitive","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":116,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"  * image properties in v1 are passed with http headers which makes them case"},{"line_number":119,"context_line":"    insensetive. In v2 image info is passed as json document and \u0027MyProperty\u0027"},{"line_number":120,"context_line":"    and \u0027myproperty\u0027 are two different properties."},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  * in v1 user can create custom properties like \u0027owner\u0027 or \u0027created_at\u0027 and"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_58a13893","line":119,"range":{"start_line":119,"start_character":4,"end_line":119,"end_character":15},"in_reply_to":"5a18252c_9cb80977","updated":"2016-04-21 01:37:42.000000000","message":"+1","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  * in v1 user can create custom properties like \u0027owner\u0027 or \u0027created_at\u0027 and"},{"line_number":123,"context_line":"    they are stored in special dictionary \u0027properties\u0027. v2 images have flat"},{"line_number":124,"context_line":"    structure, which means that all custom properties are located on the same"},{"line_number":125,"context_line":"    level as base properties. It leads to the fact if v1 image has a custom"},{"line_number":126,"context_line":"    property that has a name coincided with the name of base property, then"},{"line_number":127,"context_line":"    this property will be ignored in v2. Example:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_dc23a1bb","line":124,"updated":"2016-04-15 01:47:45.000000000","message":"Going back to my question above, if we have an image created in glance v2, and we\u0027re showing it from the nova image api proxy (which is like glance v1), are we able to detect what the custom properties are and return them in the \u0027properties\u0027 metadata dict? I\u0027d think so given we should know what the \u0027base\u0027 property keys are for v2 images.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"  * in v1 user can create custom properties like \u0027owner\u0027 or \u0027created_at\u0027 and"},{"line_number":123,"context_line":"    they are stored in special dictionary \u0027properties\u0027. v2 images have flat"},{"line_number":124,"context_line":"    structure, which means that all custom properties are located on the same"},{"line_number":125,"context_line":"    level as base properties. It leads to the fact if v1 image has a custom"},{"line_number":126,"context_line":"    property that has a name coincided with the name of base property, then"},{"line_number":127,"context_line":"    this property will be ignored in v2. Example:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_7870740b","line":124,"in_reply_to":"5a18252c_dc23a1bb","updated":"2016-04-21 01:37:42.000000000","message":"I think the issue is bit more than detecting the custom properties. In v1 a user can potentially create a custom property called \"owner\" as it\u0027s stored in a different namespace of \u0027extra properties\u0027 whereas the property structure in v2 is flat which will result into the missing prop.\n\nmmhh, now that I think about it. It seems to be like a REST impact. But I will let Mike confirm as he has dig into the edge cases and knows alternatives or better.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            \"licence\": \"gpl v2\","},{"line_number":152,"context_line":"          }"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"  * v2 forbids for user to specify some image properties like ``id`` or  ``size``"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_9c14894d","line":154,"updated":"2016-04-15 01:47:45.000000000","message":"So if I\u0027m using the nova CLI and do:\n\nnova image-create --metadata id\u003d666 myserver myimage\n\nAnd we\u0027re using glance v2 in the backend, what happens? I\u0027m assuming creating the image in glance v2 fails, so the snapshot operation fails for nova, right?","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            \"licence\": \"gpl v2\","},{"line_number":152,"context_line":"          }"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"  * v2 forbids for user to specify some image properties like ``id`` or  ``size``"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_180ea08b","line":154,"in_reply_to":"5a18252c_9c14894d","updated":"2016-04-21 01:37:42.000000000","message":"yes, the snapshot creation being a two step process in nova, the user should get back a synchronous response on the failure of creation of image so, this is less of issue. \n\nThe first of the calls made to glance (via nova by the user) is image create where the record is created. the snapshot process won\u0027t start as that is done as a part of image upload.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  to support Glance v1 and Glance v2:"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"  * Add another \u0027schema-based\u0027 handler, that transforms glance v2 image"},{"line_number":196,"context_line":"    output to format adopted in nova.image."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"  * Add additional handlers that transforms v1 image filters in v2."},{"line_number":199,"context_line":"    Related feature request: https://bugs.launchpad.net/nova/+bug/1201266"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_1c019906","line":196,"range":{"start_line":196,"start_character":21,"end_line":196,"end_character":42},"updated":"2016-04-15 01:47:45.000000000","message":"which is glance v1...right?","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":193,"context_line":"  to support Glance v1 and Glance v2:"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"  * Add another \u0027schema-based\u0027 handler, that transforms glance v2 image"},{"line_number":196,"context_line":"    output to format adopted in nova.image."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"  * Add additional handlers that transforms v1 image filters in v2."},{"line_number":199,"context_line":"    Related feature request: https://bugs.launchpad.net/nova/+bug/1201266"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_b8920cf4","line":196,"range":{"start_line":196,"start_character":21,"end_line":196,"end_character":42},"in_reply_to":"5a18252c_1c019906","updated":"2016-04-21 01:37:42.000000000","message":"ATM, yeah it\u0027s purely based on v1 . actually, nova.image.api is barebone (which is good).\n\nall changes relate to nova.image.glance","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":199,"context_line":"    Related feature request: https://bugs.launchpad.net/nova/+bug/1201266"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_e711a653","line":202,"range":{"start_line":202,"start_character":17,"end_line":202,"end_character":25},"updated":"2016-04-15 01:47:45.000000000","message":"s/instance/image/?\n\nOr does this mean \u0027image instance\u0027? It\u0027s confusing since we common refer to server VMs as instances.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":199,"context_line":"    Related feature request: https://bugs.launchpad.net/nova/+bug/1201266"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_186fc0fc","line":202,"range":{"start_line":202,"start_character":17,"end_line":202,"end_character":25},"in_reply_to":"5a18252c_e711a653","updated":"2016-04-21 01:37:42.000000000","message":"great catch! I think the intent was to say \u0027an instance\u0027 or a record of the entity (here image) (more abstract manner).\n\nBut we need to explicitly say that it\u0027s image and in bracket (instance snapshot).","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_8729d28c","line":204,"updated":"2016-04-15 01:47:45.000000000","message":"What nova use case requires this today?","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"766d676467504fec07f37eff35690a88698dd114","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_f86e9b2d","line":204,"in_reply_to":"1a122d0e_db0a62d1","updated":"2016-04-26 14:42:00.000000000","message":"OK I found that code:\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L2337-L2340\n\nWhich was added in https://review.openstack.org/#/c/170243/\n\nI don\u0027t full grok that yet (I haven\u0027t read into the related bug reports on that patch), but would be good to understand the implications of that for this work.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":201,"context_line":"  * Add transformation to 2-stepped image creation"},{"line_number":202,"context_line":"    (creation of instance in db + file uploading)."},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_db0a62d1","line":204,"in_reply_to":"5a18252c_8729d28c","updated":"2016-04-21 01:37:42.000000000","message":"I am a bit worried about this too.\n\nThis is needed for the volume snapshots is what I\u0027ve been told (rbd stuff but I haven\u0027t found the nova code that does it). Also, there\u0027s a very old review on it https://review.openstack.org/#/c/9715/ \n\nI don\u0027t like the fact that such behind the scenes auto-magical things are happening. The very purpose of Glance is to provide consistent metadata, so irrespective of what\u0027s being uploaded (first and foremost) the checksum and size on the image (or stored entity) should match with what\u0027s in the back-end.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_6753d617","line":207,"updated":"2016-04-15 01:47:45.000000000","message":"See my comments in patch set 2 on this, I don\u0027t see how you can set the location value on an image created from nova today. You can create an image with a \u0027location\u0027 metadata custom property, but that\u0027s in the \u0027properties\u0027 dict, not a base property, so it shouldn\u0027t be treated the same as the image.location value in glance, right?\n\nThe concern I had was if you created a glance v1 image with a custom \u0027location\u0027 metadata and when we transform it to glance v2 format, the \u0027properties\u0027 dict is flattened with the base image properties and that \u0027location\u0027 property becomes part of the v2 image. That would seem to be new behavior in the nova api that it sounds like we probably don\u0027t want given the security exposure with show_multiple_locations.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"b22539a64146f47f6c7757f67420594aebeef478","unresolved":false,"context_lines":[{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_80abf788","line":207,"in_reply_to":"1a122d0e_3286f9b9","updated":"2016-05-06 18:52:44.000000000","message":"+1","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8e917ca9f8acf7fea6adbf474d9bc156c4edc23","unresolved":false,"context_lines":[{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_3286f9b9","line":207,"in_reply_to":"1a122d0e_7c2cc8ab","updated":"2016-04-15 13:28:06.000000000","message":"Yeah, I might write a functional API test in nova or update one of the nova image API tests in Tempest to verify that location never comes back in the response.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0ffc46601644830206e5554eb28410d3fc2a8834","unresolved":false,"context_lines":[{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_e77a4623","line":207,"in_reply_to":"5a18252c_6753d617","updated":"2016-04-15 01:56:48.000000000","message":"Also, today when showing image details in nova (via the nova image API proxy for glance v1), nova doesn\u0027t show the location (direct_url or whatever it\u0027s called):\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/views/images.py#L38\n\nI don\u0027t think that changes at all with this spec. Maybe we should be clear about that - or just in general, the image show keys don\u0027t change for the nova image api proxy (which implies why there is no REST API impact above).","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"ccb356f914762f9f3797cea7d90644aefa72be23","unresolved":false,"context_lines":[{"line_number":204,"context_line":"  * Add special handler for creating active images with size \u00270\u0027 without image"},{"line_number":205,"context_line":"    data."},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_7c2cc8ab","line":207,"in_reply_to":"5a18252c_e77a4623","updated":"2016-04-15 12:45:49.000000000","message":"Hi Matt,\n\nLet\u0027s not show locations in/via Nova API proxy.\n\nThis is an optionally returned parameter from Glance API as sometimes the locations can contain sensitive information like user/pass; we avoid returning by restricting via config option \u0026 restrict partial CRUD access via policy.\n\nHope that clarifies?","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"},{"line_number":211,"context_line":"      for doing that."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"  * Add special handler to remove custom properties from the image:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_5bc81255","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":6},"updated":"2016-04-21 01:37:42.000000000","message":"I don\u0027t know why we need this? Is there is use case for enabling multiple locations? \n\nI am absolutely against exposing such behavior. locations were supposed to be for admin only stuff however, the recent usage has led to incorrect messaging.\n\nI want see if people should start using artifacts for copy on writes or dependency management etc stuff if that\u0027s what this is needed for.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"b22539a64146f47f6c7757f67420594aebeef478","unresolved":false,"context_lines":[{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"},{"line_number":211,"context_line":"      for doing that."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"  * Add special handler to remove custom properties from the image:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_60e25305","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":6},"in_reply_to":"1a122d0e_1849d7b7","updated":"2016-05-06 18:52:44.000000000","message":"The problem is bigger than that. As per the service catalog standardization I want to know if will differentiate between private and public installations. If we don\u0027t/can\u0027t then we have the issue of single Glance installation expected to expose multiple locations and that is a BIG security risk. \n\nIf we will allow differentiation between private and public Glance installation then how can we test that on devstack with the same port being used by a g-api service? Or do we need to come up with separate testing for this. If so, I do not think Glance team should do that work, it should be done as a separate CI job by the specific drivers that need this setup. For sure, it has assumptions on the deployment model so it should not be a standard model.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"766d676467504fec07f37eff35690a88698dd114","unresolved":false,"context_lines":[{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"},{"line_number":211,"context_line":"      for doing that."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"  * Add special handler to remove custom properties from the image:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_1849d7b7","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":6},"in_reply_to":"1a122d0e_5bc81255","updated":"2016-04-26 14:42:00.000000000","message":"I think regardless of this, the nova image API will not show locations in the response because it\u0027s not in the image view builder:\n\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/views/images.py#L38\n\nThat\u0027s why I was wondering earlier if \u0027locations\u0027 or \u0027direct_url\u0027 could somehow leak out of the nova image API via the metadata dict but those are special properties on the image in glance it sounds like and therefore shouldn\u0027t be part of the metadata dict in the response.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"fb042a31f203f8658741cc7a3a6c6de6460dfb20","unresolved":false,"context_lines":[{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"},{"line_number":211,"context_line":"      for doing that."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"  * Add special handler to remove custom properties from the image:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_be49fb8d","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":6},"in_reply_to":"dab17558_1e21274e","updated":"2016-05-06 20:24:29.000000000","message":"Also, please add why we need this point to make it clear if this should be part of glance v2 integration or not.\n\nIf it\u0027s a plugin thing then it should not be part of this spec, I think. This spec is dealing with Nova work needed to integrate Glance not what specific plugins/drivers are assuming deployment model -- something that\u0027s handled by the likes of \"devstack ceph plugin\".","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"fcf5c3c2f639b0f3c677f3b121962268d99fb75c","unresolved":false,"context_lines":[{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"},{"line_number":211,"context_line":"      for doing that."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"  * Add special handler to remove custom properties from the image:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_1e21274e","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":6},"in_reply_to":"dab17558_3b919df1","updated":"2016-05-06 20:21:40.000000000","message":"Mike,\n\nCan you please add more info on why we need to enable this in glance config (I\u0027m assuming by default)? \n\nOr do you mean that this needs to be done by the operator? It would be good to clarify such details so that the description is not so confusing.\n\nLet me say that, Glance by default SHOULD NOT expose locations (and this part does not involved Nova proxy API), purely the understanding of the out-of-the-box Glance installation.\n\nWhether show_multiple_locations\u003dTrue or not will depend on the devstack plugin for that driver for testing it well.\n\nA default pull on devstack.org will not have show multiple locations enabled.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d085c83d0b96870835cb7ece8291ceeaa605c97","unresolved":false,"context_lines":[{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"},{"line_number":211,"context_line":"      for doing that."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"  * Add special handler to remove custom properties from the image:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_dbb051e0","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":6},"in_reply_to":"dab17558_60e25305","updated":"2016-05-06 19:43:42.000000000","message":"Sorry, I\u0027m not really following. I don\u0027t think Nova allows setting location on an image via the proxy API we have today, and we don\u0027t intend to allow that with the v2 integration. And the nova image proxy API doesn\u0027t show locations or the direct_url, and we won\u0027t add that as part of the v2 integration.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"34707727560aa09a3855fa44cd565375adef845e","unresolved":false,"context_lines":[{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"},{"line_number":211,"context_line":"      for doing that."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"  * Add special handler to remove custom properties from the image:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_2a1e61ba","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":6},"in_reply_to":"dab17558_be49fb8d","updated":"2016-05-06 22:16:43.000000000","message":"I\u0027ve added a comment to get more clarity here: \n\nhttps://review.openstack.org/#/c/259097/18/nova/image/glance.py@484","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"209ff3dc26e1cdf7a78a28ceda8a7013276a485e","unresolved":false,"context_lines":[{"line_number":207,"context_line":"  * Add the ability to set custom location for an image."},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"    .. note::"},{"line_number":210,"context_line":"      ``show_multiple_locations`` option must be enabled in glance config"},{"line_number":211,"context_line":"      for doing that."},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"  * Add special handler to remove custom properties from the image:"}],"source_content_type":"text/x-rst","patch_set":4,"id":"dab17558_3b919df1","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":6},"in_reply_to":"dab17558_dbb051e0","updated":"2016-05-06 19:52:36.000000000","message":"Note that the devstack ceph plugin for the ceph job enables showing multiple locations:\n\nhttps://github.com/openstack/devstack-plugin-ceph/blob/master/devstack/lib/ceph#L471\n\nAnd that\u0027s used by the rbd image backend in nova to do fast image snapshots, see:\n\nhttps://review.openstack.org/#/c/205282/","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":218,"context_line":"* Ensure the rest of the code base can use the existing image code to talk to"},{"line_number":219,"context_line":"  either Glance v1 or Glance v2, again defaulting to Glance v2 when possible."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"* Ensure all the virt drivers either support Glance v2 or fallback to v1."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"* Add a deprecation warning in the logs if users run with Glance v1."},{"line_number":224,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_c77bca79","line":221,"updated":"2016-04-15 01:47:45.000000000","message":"Above it sounded like hyper-v wasn\u0027t being planned to be worked on in newton, but deadline for that to use glance v2 was ocata. Again, maybe this is just saying make sure things still work with glance v1 if the virt driver work doesn\u0027t get done in newton.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":218,"context_line":"* Ensure the rest of the code base can use the existing image code to talk to"},{"line_number":219,"context_line":"  either Glance v1 or Glance v2, again defaulting to Glance v2 when possible."},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"* Ensure all the virt drivers either support Glance v2 or fallback to v1."},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"* Add a deprecation warning in the logs if users run with Glance v1."},{"line_number":224,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_9bd58ae6","line":221,"in_reply_to":"5a18252c_c77bca79","updated":"2016-04-21 01:37:42.000000000","message":"yeah, I think Mike needs to confirm his thoughts here as well.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"13f692b7e419ee0bd02fd631eb5947040c0d346f","unresolved":false,"context_lines":[{"line_number":264,"context_line":"   * - Mitaka"},{"line_number":265,"context_line":"     - Partial implemented"},{"line_number":266,"context_line":"   * - Newton"},{"line_number":267,"context_line":"     - Implementation"}],"source_content_type":"text/x-rst","patch_set":4,"id":"5a18252c_47e7ba3f","line":267,"range":{"start_line":267,"start_character":7,"end_line":267,"end_character":21},"updated":"2016-04-15 01:47:45.000000000","message":"I\u0027d probably just put \u0027Re-proposed\u0027 here.","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"82eee21eed32494e4d22c2ac9183e63f9ae3dbac","unresolved":false,"context_lines":[{"line_number":264,"context_line":"   * - Mitaka"},{"line_number":265,"context_line":"     - Partial implemented"},{"line_number":266,"context_line":"   * - Newton"},{"line_number":267,"context_line":"     - Implementation"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a122d0e_7bfb4e79","line":267,"range":{"start_line":267,"start_character":7,"end_line":267,"end_character":21},"in_reply_to":"5a18252c_47e7ba3f","updated":"2016-04-21 01:37:42.000000000","message":"+1","commit_id":"d5037d9a73be8682df0fa589301ae48476646ada"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"The Nova Images API still needs to work (within reason). It should be"},{"line_number":97,"context_line":"moved to be backed by Glance v2. The case sensitivity issue regarding"},{"line_number":98,"context_line":"metadata is a known issue and will be an API change we can\u0027t avoid."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"A Nova installation should always work on only one version of the"},{"line_number":101,"context_line":"Glance API in production. Flipping back and forth deep in the code"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_95e9c8e8","line":98,"range":{"start_line":98,"start_character":41,"end_line":98,"end_character":66},"updated":"2016-05-17 15:17:16.000000000","message":"But should probably document in the Nova api-ref docs. I was going to say the docs could say if the CONF.glance.use_v2\u003dTrue, then the results could be wrong/missing/incomplete, but a user of the API won\u0027t know how Nova is configured, so we probably just need to say the proxy API is deprecated - and Sean is working on that in another spec here:\n\nhttps://review.openstack.org/#/c/312209/","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"f86fa85fc064854ccd930d758dbca6588bf73a6d","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"The Nova Images API still needs to work (within reason). It should be"},{"line_number":97,"context_line":"moved to be backed by Glance v2. The case sensitivity issue regarding"},{"line_number":98,"context_line":"metadata is a known issue and will be an API change we can\u0027t avoid."},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"A Nova installation should always work on only one version of the"},{"line_number":101,"context_line":"Glance API in production. Flipping back and forth deep in the code"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_fa5bb62c","line":98,"range":{"start_line":98,"start_character":41,"end_line":98,"end_character":66},"in_reply_to":"dab17558_95e9c8e8","updated":"2016-05-18 08:27:49.000000000","message":"I stuck to use_glance_v1 - unless you are too particular about changing it. Reworded a bit.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Detailed Changes"},{"line_number":107,"context_line":"----------------"},{"line_number":108,"context_line":"Introduce a top level CONF item use_glance_v1\u003dTrue (which will be"},{"line_number":109,"context_line":"deprecated as soon as v2 fully works). This will remove the need for"},{"line_number":110,"context_line":"auto discovery in Glance. The ``api_servers`` config specifies"},{"line_number":111,"context_line":"versionless API servers today, so is consistent with that."}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_55976039","line":108,"range":{"start_line":108,"start_character":32,"end_line":108,"end_character":50},"updated":"2016-05-17 15:17:16.000000000","message":"nit: we have a [glance] config section in nova.conf, so this should be:\n\n  CONF.glance.use_v2\u003dFalse\n\nBTW, I only say CONF.glance.use_v2 because that\u0027s what we were talking about in the summit recap notes:\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2016-May/094380.html\n\nAnd in the etherpad:\n\nhttps://etherpad.openstack.org/p/newton-nova-glance","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Detailed Changes"},{"line_number":107,"context_line":"----------------"},{"line_number":108,"context_line":"Introduce a top level CONF item use_glance_v1\u003dTrue (which will be"},{"line_number":109,"context_line":"deprecated as soon as v2 fully works). This will remove the need for"},{"line_number":110,"context_line":"auto discovery in Glance. The ``api_servers`` config specifies"},{"line_number":111,"context_line":"versionless API servers today, so is consistent with that."},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_55e5a0d9","line":109,"range":{"start_line":108,"start_character":51,"end_line":109,"end_character":37},"updated":"2016-05-17 15:17:16.000000000","message":"At the summit we said it would be deprecated immediately, but maybe it makes more sense to not deprecate it until we actually have the working stack tested against a CI job that disables glance v1 and enables only glance v2, and sets the nova CONF.glance.use_v1\u003dFalse value in that job and it\u0027s passing.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"f86fa85fc064854ccd930d758dbca6588bf73a6d","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Detailed Changes"},{"line_number":107,"context_line":"----------------"},{"line_number":108,"context_line":"Introduce a top level CONF item use_glance_v1\u003dTrue (which will be"},{"line_number":109,"context_line":"deprecated as soon as v2 fully works). This will remove the need for"},{"line_number":110,"context_line":"auto discovery in Glance. The ``api_servers`` config specifies"},{"line_number":111,"context_line":"versionless API servers today, so is consistent with that."},{"line_number":112,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_9a4b8a59","line":109,"range":{"start_line":108,"start_character":51,"end_line":109,"end_character":37},"in_reply_to":"dab17558_55e5a0d9","updated":"2016-05-18 08:27:49.000000000","message":"Done","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":132,"context_line":"REST API impact"},{"line_number":133,"context_line":"---------------"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The Nova Images API will have incompatibility when it comes to case"},{"line_number":136,"context_line":"sensitivity of metadata. This is unavoidable."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_3513bc66","line":135,"updated":"2016-05-17 15:17:16.000000000","message":"Wasn\u0027t there also an issue with nested image properties? Or do we have a way to translate that from a v2 to v1 response?","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"f86fa85fc064854ccd930d758dbca6588bf73a6d","unresolved":false,"context_lines":[{"line_number":132,"context_line":"REST API impact"},{"line_number":133,"context_line":"---------------"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The Nova Images API will have incompatibility when it comes to case"},{"line_number":136,"context_line":"sensitivity of metadata. This is unavoidable."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Security impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_5a6802bb","line":135,"in_reply_to":"dab17558_3513bc66","updated":"2016-05-18 08:27:49.000000000","message":"We should be able to address this issue via code in the proxy. Hence this is not really an impact IMHO. Updated the spec as per.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6b8a0f383dbd45b49ce2d901dce218e1b952b551","unresolved":false,"context_lines":[{"line_number":133,"context_line":"---------------"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The Nova Images API will have incompatibility when it comes to case"},{"line_number":136,"context_line":"sensitivity of metadata. This is unavoidable."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Security impact"},{"line_number":139,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_df56d05a","line":136,"updated":"2016-05-17 13:26:22.000000000","message":"I think we should also remove the images API in a Microversion, to signal that it is deprecated. Now that may well be part of another spec, I need to check.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":133,"context_line":"---------------"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The Nova Images API will have incompatibility when it comes to case"},{"line_number":136,"context_line":"sensitivity of metadata. This is unavoidable."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Security impact"},{"line_number":139,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_757424ce","line":136,"in_reply_to":"dab17558_55c92125","updated":"2016-05-17 15:17:16.000000000","message":"Right: https://review.openstack.org/#/c/312209/","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"da17bbd00c16c6dd57213aa8262260cb030d91ac","unresolved":false,"context_lines":[{"line_number":133,"context_line":"---------------"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The Nova Images API will have incompatibility when it comes to case"},{"line_number":136,"context_line":"sensitivity of metadata. This is unavoidable."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Security impact"},{"line_number":139,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_55c92125","line":136,"in_reply_to":"dab17558_df56d05a","updated":"2016-05-17 13:44:14.000000000","message":"Proxy deprecation is another spec, because we want to do it consistently.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6b8a0f383dbd45b49ce2d901dce218e1b952b551","unresolved":false,"context_lines":[{"line_number":148,"context_line":"Other end user impact"},{"line_number":149,"context_line":"---------------------"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"  * Image properties in v1 are passed with http headers which makes them case"},{"line_number":154,"context_line":"    insensitive. In v2 image info is passed as json document and \u0027MyProperty\u0027"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_bf866cb6","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":22},"updated":"2016-05-17 13:26:22.000000000","message":"how are we dealing with this, I guess we need some docs changes?","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":148,"context_line":"Other end user impact"},{"line_number":149,"context_line":"---------------------"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"End user must remember about several incompatibilities between v1 and v2 apis:"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"  * Image properties in v1 are passed with http headers which makes them case"},{"line_number":154,"context_line":"    insensitive. In v2 image info is passed as json document and \u0027MyProperty\u0027"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_58a31500","line":151,"range":{"start_line":151,"start_character":8,"end_line":151,"end_character":22},"in_reply_to":"dab17558_bf866cb6","updated":"2016-05-17 15:17:16.000000000","message":"Yeah, as noted above, the end API user won\u0027t know about the config settings in Nova for this global flag telling us to use glance v1 or v2, so we can\u0027t call that out in the api-ref. But with https://review.openstack.org/#/c/312209/ we can basically say the nova images proxy API is deprecated and when the deployment moves to supporting glance v2 it will be subtly broken in certain cases, like case insensitivity on image properties.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6b8a0f383dbd45b49ce2d901dce218e1b952b551","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  * In v1 image list returns full images info, including their custom"},{"line_number":158,"context_line":"    properties. For performance sake v2 returns only base image properties and"},{"line_number":159,"context_line":"    omits custom."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"  * in v1 user can create custom properties like \u0027owner\u0027 or \u0027created_at\u0027 and"},{"line_number":162,"context_line":"    they are stored in special dictionary \u0027properties\u0027. v2 images have flat"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_7f45246d","line":159,"updated":"2016-05-17 13:26:22.000000000","message":"Could we not do a detail list for the regular v1 image list? or is that just not available at all?","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  * In v1 image list returns full images info, including their custom"},{"line_number":158,"context_line":"    properties. For performance sake v2 returns only base image properties and"},{"line_number":159,"context_line":"    omits custom."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"  * in v1 user can create custom properties like \u0027owner\u0027 or \u0027created_at\u0027 and"},{"line_number":162,"context_line":"    they are stored in special dictionary \u0027properties\u0027. v2 images have flat"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_b8e04127","line":159,"in_reply_to":"dab17558_75b70585","updated":"2016-05-17 15:17:16.000000000","message":"Agree with Sean. Also, it sounds like this is how we can handle nested properties in a v2-\u003ev1 translation, i.e. the base properties on the v2 response are the top-level v1 response properties, and anything custom are the image.properties nested values in the v1 response, so that doesn\u0027t break the nova v1 images proxy API.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"da17bbd00c16c6dd57213aa8262260cb030d91ac","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  * In v1 image list returns full images info, including their custom"},{"line_number":158,"context_line":"    properties. For performance sake v2 returns only base image properties and"},{"line_number":159,"context_line":"    omits custom."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"  * in v1 user can create custom properties like \u0027owner\u0027 or \u0027created_at\u0027 and"},{"line_number":162,"context_line":"    they are stored in special dictionary \u0027properties\u0027. v2 images have flat"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_75b70585","line":159,"in_reply_to":"dab17558_7f45246d","updated":"2016-05-17 13:44:14.000000000","message":"Honestly, it\u0027s ok that it\u0027s slow. We should return them all and slowness is a feature to get people off this API.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"f86fa85fc064854ccd930d758dbca6588bf73a6d","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  * In v1 image list returns full images info, including their custom"},{"line_number":158,"context_line":"    properties. For performance sake v2 returns only base image properties and"},{"line_number":159,"context_line":"    omits custom."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"  * in v1 user can create custom properties like \u0027owner\u0027 or \u0027created_at\u0027 and"},{"line_number":162,"context_line":"    they are stored in special dictionary \u0027properties\u0027. v2 images have flat"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_8b1a1e6d","line":159,"in_reply_to":"dab17558_b8e04127","updated":"2016-05-18 08:27:49.000000000","message":"Done. This will be taken care of. So i don\u0027t think this bullet should speak about this. The last bullet actually speaks about addressing the same.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6b8a0f383dbd45b49ce2d901dce218e1b952b551","unresolved":false,"context_lines":[{"line_number":191,"context_line":"          }"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    To define what properties are custom and what are base v2 uses json-schema"},{"line_number":194,"context_line":"    format. User can get image schema by url \u0027/v2/schemas/image\u0027."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"  * v2 forbids for user to specify some image properties like ``id`` or"},{"line_number":197,"context_line":"    ``size``."}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_1f80588a","line":194,"updated":"2016-05-17 13:26:22.000000000","message":"Can\u0027t we easily hide this change from the end user in the image API proxy?","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":191,"context_line":"          }"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    To define what properties are custom and what are base v2 uses json-schema"},{"line_number":194,"context_line":"    format. User can get image schema by url \u0027/v2/schemas/image\u0027."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"  * v2 forbids for user to specify some image properties like ``id`` or"},{"line_number":197,"context_line":"    ``size``."}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_38b571ec","line":194,"in_reply_to":"dab17558_1f80588a","updated":"2016-05-17 15:17:16.000000000","message":"Yeah, it sounds like we should be able to, which is what I was saying above. But I\u0027d need Mike to confirm.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6b8a0f383dbd45b49ce2d901dce218e1b952b551","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    format. User can get image schema by url \u0027/v2/schemas/image\u0027."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"  * v2 forbids for user to specify some image properties like ``id`` or"},{"line_number":197,"context_line":"    ``size``."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_ba931aa2","line":197,"updated":"2016-05-17 13:26:22.000000000","message":"what about the changes_since param? is ln242 about that?","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    format. User can get image schema by url \u0027/v2/schemas/image\u0027."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"  * v2 forbids for user to specify some image properties like ``id`` or"},{"line_number":197,"context_line":"    ``size``."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Performance Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_84923455","line":197,"in_reply_to":"dab17558_ba931aa2","updated":"2016-05-17 15:17:16.000000000","message":"There were details in a previous patch set about how changes_since can be translated for v2, and I think some of the existing v2 integration patches already account for that.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f729d1bb84601690543ba443d92ffb4541db6682","unresolved":false,"context_lines":[{"line_number":196,"context_line":"  * v2 forbids for user to specify some image properties like ``id`` or"},{"line_number":197,"context_line":"    ``size``."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Performance Impact"},{"line_number":201,"context_line":"------------------"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_75da6479","line":199,"updated":"2016-05-17 13:48:32.000000000","message":"So I should summarise my worries about the v1 proxy -\u003e v2 work.\n\nThere are some things we can\u0027t hide from the user, and thats OK:\n\n* some image props names are not allowed in v2, so you can\u0027t set them\n* properties are now case sensitive\n\nBut there are things we can hide from the user. Should they use the API just like v1, and it could work with v2, it should work just the same.\n\nFor example, if the proxy today returns:\n\n  {image:{\"name\":\"image1\",\"properties\":{\"foo\":\"bar\"}}}\n\nWhen we start using glance v2 behind the proxy, thats valid, so we should be able to return exactly the same thing, i.e.:\n\n  {image:{\"name\":\"image1\",\"properties\":{\"foo\":\"bar\"}}}\n\nEven though if you call the v2 API you would get:\n\n  {image:{\"name\":\"image1\", \"foo\":\"bar\"}}\n\nNow I read the above as saying thats not what we are doing here. I could be miss-reading that.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"f86fa85fc064854ccd930d758dbca6588bf73a6d","unresolved":false,"context_lines":[{"line_number":196,"context_line":"  * v2 forbids for user to specify some image properties like ``id`` or"},{"line_number":197,"context_line":"    ``size``."},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"Performance Impact"},{"line_number":201,"context_line":"------------------"},{"line_number":202,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_4b65d6df","line":199,"in_reply_to":"dab17558_75da6479","updated":"2016-05-18 08:27:49.000000000","message":"Addressed.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6b8a0f383dbd45b49ce2d901dce218e1b952b551","unresolved":false,"context_lines":[{"line_number":229,"context_line":"  nikhil-komawar"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"Work Items"},{"line_number":232,"context_line":"----------"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"* Move `nova.image` to be backed by either Glance v1 or Glance v2, defaulting"},{"line_number":235,"context_line":"  to Glance v2. Do this by refactoring the models that consume the images API"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_dafa5e74","line":232,"updated":"2016-05-17 13:26:22.000000000","message":"Hmm, this is what I thought we had agreed at the summit, a different approach:\n\n* add flag use_glance_v2_only, default is False\n* make use_glance_v2_only\u003dTrue work\n  * make the image API proxy work with glance v2\n  * add the v2 version of nova.image, libvirt upload and download via v2\n  * add xenapi\u0027s glance_v2 plugin for upload and download\n* add gate tests for using the above code path, using existing tempest tests\n* make use_glance_v2_only default to True\n* deprecate use_glance_v2_only and all the glance_v1 code","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6b8a0f383dbd45b49ce2d901dce218e1b952b551","unresolved":false,"context_lines":[{"line_number":259,"context_line":"  * Add special handler to remove custom properties from the image:"},{"line_number":260,"context_line":"    ``purge_props`` flag in v1 vs. ``props_to_remove`` list in v2."},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"* Adopt Xen virt driver to support v2 api."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"* Ensure the rest of the code base can use the existing image code to talk to"},{"line_number":265,"context_line":"  either Glance v1 or Glance v2, again defaulting to Glance v2 when possible."}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_dadffe66","line":262,"range":{"start_line":262,"start_character":2,"end_line":262,"end_character":7},"updated":"2016-05-17 13:26:22.000000000","message":"adapt?","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6b8a0f383dbd45b49ce2d901dce218e1b952b551","unresolved":false,"context_lines":[{"line_number":262,"context_line":"* Adopt Xen virt driver to support v2 api."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"* Ensure the rest of the code base can use the existing image code to talk to"},{"line_number":265,"context_line":"  either Glance v1 or Glance v2, again defaulting to Glance v2 when possible."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"* Ensure all the virt drivers either support Glance v2 or fallback to v1."},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_1a0226b4","line":265,"range":{"start_line":265,"start_character":33,"end_line":265,"end_character":76},"updated":"2016-05-17 13:26:22.000000000","message":"I thought we agreed a very different approach, see ln232","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":262,"context_line":"* Adopt Xen virt driver to support v2 api."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"* Ensure the rest of the code base can use the existing image code to talk to"},{"line_number":265,"context_line":"  either Glance v1 or Glance v2, again defaulting to Glance v2 when possible."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"* Ensure all the virt drivers either support Glance v2 or fallback to v1."},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_44b16cdf","line":265,"range":{"start_line":265,"start_character":33,"end_line":265,"end_character":76},"in_reply_to":"dab17558_1a0226b4","updated":"2016-05-17 15:17:16.000000000","message":"Yeah this work items section could be more clear on the plan we came to at the summit and hashed out in detail again last week with Sudipto, Nikhil and Mike.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"f86fa85fc064854ccd930d758dbca6588bf73a6d","unresolved":false,"context_lines":[{"line_number":262,"context_line":"* Adopt Xen virt driver to support v2 api."},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"* Ensure the rest of the code base can use the existing image code to talk to"},{"line_number":265,"context_line":"  either Glance v1 or Glance v2, again defaulting to Glance v2 when possible."},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"* Ensure all the virt drivers either support Glance v2 or fallback to v1."},{"line_number":268,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_ab6282d6","line":265,"range":{"start_line":265,"start_character":33,"end_line":265,"end_character":76},"in_reply_to":"dab17558_44b16cdf","updated":"2016-05-18 08:27:49.000000000","message":"Done.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a1a3332a51f46a42a7d7d02bbebe5dcfc5368b31","unresolved":false,"context_lines":[{"line_number":277,"context_line":"Testing"},{"line_number":278,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"The existing tempest tests will validate the Glance v2 API support, as the"},{"line_number":281,"context_line":"default will move to Glance v2."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"However, we should also make sure one of the gate jobs still tests the Glance"},{"line_number":284,"context_line":"v1 only to avoid breaking existing deployments."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_af747167","line":284,"range":{"start_line":280,"start_character":0,"end_line":284,"end_character":47},"updated":"2016-05-17 15:17:16.000000000","message":"This needs updating based on our discussion last week. The gate jobs today enable glance v1 and v2. The CONF.glance.use_v2 option defaults to False so patches will test against v1. Then we\u0027ll add a job that disables glance v1 and enables only glance v2, and configures nova to set CONF.glance.use_v2\u003dTrue and we\u0027ll run that job against the top-level change in the glance v2 integration series for this blueprint. At that point we deprecate the use_v2 option once we know it\u0027s passing tests with the v2 stack only.","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"f86fa85fc064854ccd930d758dbca6588bf73a6d","unresolved":false,"context_lines":[{"line_number":277,"context_line":"Testing"},{"line_number":278,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"The existing tempest tests will validate the Glance v2 API support, as the"},{"line_number":281,"context_line":"default will move to Glance v2."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"However, we should also make sure one of the gate jobs still tests the Glance"},{"line_number":284,"context_line":"v1 only to avoid breaking existing deployments."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_cb9f06b3","line":284,"range":{"start_line":280,"start_character":0,"end_line":284,"end_character":47},"in_reply_to":"dab17558_af747167","updated":"2016-05-18 08:27:49.000000000","message":"Done","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"6b8a0f383dbd45b49ce2d901dce218e1b952b551","unresolved":false,"context_lines":[{"line_number":290,"context_line":"* Glance API version configuration option needs to be documented"},{"line_number":291,"context_line":"* Release Notes should note the partial deprecation of Glance v1 support"},{"line_number":292,"context_line":"* Release Note should warn about any virt drivers that are unable to run with"},{"line_number":293,"context_line":"  Glance v2."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"References"},{"line_number":296,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"dab17558_ffa3d440","line":293,"updated":"2016-05-17 13:26:22.000000000","message":"What about the API docs and the image API issues?","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":9775,"name":"Sudipta Biswas","email":"sbiswas7@in.ibm.com","username":"sudswas"},"change_message_id":"f86fa85fc064854ccd930d758dbca6588bf73a6d","unresolved":false,"context_lines":[{"line_number":290,"context_line":"* Glance API version configuration option needs to be documented"},{"line_number":291,"context_line":"* Release Notes should note the partial deprecation of Glance v1 support"},{"line_number":292,"context_line":"* Release Note should warn about any virt drivers that are unable to run with"},{"line_number":293,"context_line":"  Glance v2."},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"References"},{"line_number":296,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":6,"id":"bab6814e_abb9e230","line":293,"in_reply_to":"dab17558_ffa3d440","updated":"2016-05-18 08:27:49.000000000","message":"Done","commit_id":"41e11e04e97ec6818a60afe2bead82342fc95e61"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"31523f6498e7c4eb8fafb441116749c9348220e5","unresolved":false,"context_lines":[{"line_number":113,"context_line":"once we have a CI job that disables glance v1 API and enables"},{"line_number":114,"context_line":"glance V2 APIs by setting the flag to False and eventually passes"},{"line_number":115,"context_line":"all the tests."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"If there are differences in the code between glance v1 / v2 methods"},{"line_number":118,"context_line":"and classes should be built independently for the glance v1 vs. v2"},{"line_number":119,"context_line":"interaction. This allows us to delete the v1 code in the future"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bab6814e_11390642","line":116,"updated":"2016-05-19 02:23:19.000000000","message":"This was dropped from the last patch set, and seem valid still:\n\n\"Enable a new upload/download_vhd_glancev2 interface for the xenapi\nplugin. Nova will decide when to call v2 or v1 based on the top level\nconf variable.\"\n\nAlthough under work items it just generically says make xen and the other virt drivers work with glance v2, so that works for me.","commit_id":"dad65f5acca72b1447c77c44f1f0781fe4515390"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7ab871bd138b183c57c20ed180f98c4310641960","unresolved":false,"context_lines":[{"line_number":127,"context_line":"Data model impact"},{"line_number":128,"context_line":"-----------------"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"None."},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"REST API impact"},{"line_number":133,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bab6814e_31452a70","line":130,"updated":"2016-05-19 02:32:31.000000000","message":"In the follow on addendum spec from Sean, John Wood had asked if v1 image refs in the instances table would need to be changed to v1, but we don\u0027t store the image_href in the instances table, we store the image id:\n\nhttps://github.com/openstack/nova/blob/76dfb4ba9fa0fed1350021591956c4e8143b1ce9/nova/compute/api.py#L1151\n\nThis is from a recent devstack of mine:\n\nmysql\u003e select id,display_name,image_ref from nova.instances;\n+----+--------------------------------------------+--------------------------------------+\n| id | display_name                               | image_ref                            |\n+----+--------------------------------------------+--------------------------------------+\n|  1 | tempest.common.compute-instance-2088491349 | b5ad17e1-f9ca-4f5e-9d70-84488ecddffa |\n|  2 | tempest.common.compute-instance-420004008  | 5c86a6ef-9451-45dc-b6a2-5253aafd1862 |\n|  3 | server-desc-test                           | 324cc928-bd3f-4f98-9ff7-c980fe47eb78 |\n+----+--------------------------------------------+--------------------------------------+\n3 rows in set (0.00 sec)\n\nSo this should be OK.\n\nIf at some point we stored the image_href in the instances table, then we would have had a breaking change on our hands probably when we just started storing only uuids.\n\nAt some point we should make the nova.objects.Instance.image_ref type a UUID field rather than just a string.","commit_id":"dad65f5acca72b1447c77c44f1f0781fe4515390"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"6cc535bb00326ddac36259d4511e335975135e9a","unresolved":false,"context_lines":[{"line_number":133,"context_line":"---------------"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"The Nova Images API will have incompatibility when it comes to case"},{"line_number":136,"context_line":"sensitivity of metadata. This is unavoidable."},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"Security impact"},{"line_number":139,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"bab6814e_9c5ead10","line":136,"range":{"start_line":136,"start_character":44,"end_line":136,"end_character":45},"updated":"2016-05-19 02:49:37.000000000","message":"Matt is right on PS6 https://review.openstack.org/#/c/301741/6/specs/newton/approved/use-glance-v2-api.rst@132\n\nThere is a small impact as that impact directly comes from Glance v2: \n\nNow (using v2) the users won\u0027t be able to set the extra properties that have matching key with the base properties -- though this explanation exists in \"other end user impact\". But it is a REST impact as well.","commit_id":"dad65f5acca72b1447c77c44f1f0781fe4515390"}]}
