)]}'
{"specs/approved/allow-glance-image-names.rst":[{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"ba731d2c845b6293a6a27231677d9264384c3edc","unresolved":false,"context_lines":[{"line_number":101,"context_line":"Security impact"},{"line_number":102,"context_line":"---------------"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"None."},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"Other end user impact"},{"line_number":107,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1a4dcd0f_561cfa69","line":104,"updated":"2015-08-14 18:26:45.000000000","message":"I think that there\u0027s a security impact. If Glance is compromised, and if an attacker deletes an image and uploads one with the same name (but different UUID), then future use of that image in Ironic will use the attacker\u0027s image. We thus depend on Glance being secure.","commit_id":"1c94fa1816c26cd9bbdb74739d50b52a09d08344"}],"specs/liberty/allow-glance-image-names.rst":[{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"88837189c694568082b07cbd4d337388d4fb526e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Currently, if Glance images are used for deploying a node with Ironic, its UUID"},{"line_number":20,"context_line":"has to be specified, which is not very convenient for an administrator."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Proposed change"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_2495a8e3","line":20,"updated":"2015-06-14 10:33:42.000000000","message":"Personally, I find specifying the UUID to be more convenient than specifying a human-readable name ... but I recognize that I might be alone in that. However, given that Glance doesn\u0027t allow images to be referenced directly by name, I\u0027d like to propose something else.","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"841e981c698a8dfdf1c3ebe2d5dfb13e9dfe9a15","unresolved":false,"context_lines":[{"line_number":29,"context_line":"operate on single image (e.g. `_show`, `_download` etc.)."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Image reference should look like \u0027glance://\u003cimage-name\u003e\u0027. If there are multiple"},{"line_number":32,"context_line":"images with the same name in Glance, exception will be thrown asking"},{"line_number":33,"context_line":"administrator to specify UUID of the desired image."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_a984b35d","line":32,"updated":"2015-06-17 08:45:48.000000000","message":"May be an implementation thing when I check the code, but the API return code returned from calls such as /v1/nodes/\u003c\u003e/validate should still be 400 and not 409. 409 should be used when the input pased conflicts with the state of the node which is not true (multiple images found with the same image name is really an invalid input from Ironic\u0027s view point).","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"6f92a15934f240c643c97fe3814dc9dcc750dc3e","unresolved":false,"context_lines":[{"line_number":29,"context_line":"operate on single image (e.g. `_show`, `_download` etc.)."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Image reference should look like \u0027glance://\u003cimage-name\u003e\u0027. If there are multiple"},{"line_number":32,"context_line":"images with the same name in Glance, exception will be thrown asking"},{"line_number":33,"context_line":"administrator to specify UUID of the desired image."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_444933b6","line":32,"in_reply_to":"fa32b979_a984b35d","updated":"2015-06-17 17:16:54.000000000","message":"OK, will update the code.","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7d51be25d3fae51c9e384254eb80f79c371bb1d7","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Image reference should look like \u0027glance://\u003cimage-name\u003e\u0027. If there are multiple"},{"line_number":32,"context_line":"images with the same name in Glance, exception will be thrown asking"},{"line_number":33,"context_line":"administrator to specify UUID of the desired image."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Alternatives"},{"line_number":36,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_14474478","line":33,"updated":"2015-06-09 07:18:32.000000000","message":"at which stage? we probably don\u0027t want to make external call in validate()...","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a7937e04c0c9c3bd73cb74b99190dbf55ec6cb5d","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Image reference should look like \u0027glance://\u003cimage-name\u003e\u0027. If there are multiple"},{"line_number":32,"context_line":"images with the same name in Glance, exception will be thrown asking"},{"line_number":33,"context_line":"administrator to specify UUID of the desired image."},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"Alternatives"},{"line_number":36,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_e0185720","line":33,"in_reply_to":"3afb71cf_14474478","updated":"2015-06-09 12:45:01.000000000","message":"pxe and ilo deploy methods call glance already during validation to check that image_source contains kernel_id and ramdisk_id fields. So if image_source is not uuid then there will be 2 calls instead of 1 in validation step for these deployment interfaces. For agent, glance is not called during validation, only during deployment.","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"88837189c694568082b07cbd4d337388d4fb526e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"------------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Continue allowing only UUIDs as image references."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Data model impact"},{"line_number":41,"context_line":"-----------------"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_449a2c16","line":39,"updated":"2015-06-14 10:33:42.000000000","message":"Another alternative:\n\nModify python-ironicclient to allow a glance image name on the command line, and then transparently query Glance to determine the UUID and pass that to Ironic. This should provide administrators the same flexibility that you are proposing, without requiring any changes to Ironic\u0027s REST API or data model, or any additional server-side calls out to Glance API.\n\nA correlary would be for Ironic\u0027s REST API to *return* the Glance Image Name for each field in driver_info or instance_info that is a glance image (in addition to the UUID). I\u0027m not sure how we\u0027d do that, but in principle, I think that\u0027s fine.","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"841e981c698a8dfdf1c3ebe2d5dfb13e9dfe9a15","unresolved":false,"context_lines":[{"line_number":36,"context_line":"------------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Continue allowing only UUIDs as image references."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Data model impact"},{"line_number":41,"context_line":"-----------------"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_e07f30a9","line":39,"in_reply_to":"fa32b979_449a2c16","updated":"2015-06-17 08:45:48.000000000","message":"This will require client to know which all fields in driver_info and instance_info are actually some glance UUIDs which might be different values for different drivers (pxe* drivers have deploy_kernel and deploy_ramdisk whereas virtual media drivers like ilo and irmc might have *deploy_iso).  While we can argue that the list is limited, we might still need to feed information of drivers into client which might not be good.","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"6f92a15934f240c643c97fe3814dc9dcc750dc3e","unresolved":false,"context_lines":[{"line_number":36,"context_line":"------------"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Continue allowing only UUIDs as image references."},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"Data model impact"},{"line_number":41,"context_line":"-----------------"},{"line_number":42,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_1f8e1879","line":39,"in_reply_to":"fa32b979_e07f30a9","updated":"2015-06-17 17:16:54.000000000","message":"Agree with Ramakrishnan, because fields are different for different drivers doing it in client would require some additional info.","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"88837189c694568082b07cbd4d337388d4fb526e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"REST API impact"},{"line_number":51,"context_line":"---------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"None."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Client (CLI) impact"},{"line_number":56,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_e49ee006","line":53,"updated":"2015-06-14 10:33:42.000000000","message":"This impacts the REST API because it changes the data type of several fields.","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"6f92a15934f240c643c97fe3814dc9dcc750dc3e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"REST API impact"},{"line_number":51,"context_line":"---------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"None."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Client (CLI) impact"},{"line_number":56,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_44013305","line":53,"in_reply_to":"fa32b979_80a2e449","updated":"2015-06-17 17:16:54.000000000","message":"Yes, it seems that there is no affect on that.","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"841e981c698a8dfdf1c3ebe2d5dfb13e9dfe9a15","unresolved":false,"context_lines":[{"line_number":50,"context_line":"REST API impact"},{"line_number":51,"context_line":"---------------"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"None."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Client (CLI) impact"},{"line_number":56,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_80a2e449","line":53,"in_reply_to":"fa32b979_e49ee006","updated":"2015-06-17 08:45:48.000000000","message":"Does this really impact the REST API ? The image name in most cases in the API is just somewhere within JSON data. Currently we already support images in the form of glance://\u003cuuid. This is just an extension to it to support glance://\u003cimage-name\u003e","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"88837189c694568082b07cbd4d337388d4fb526e","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Client (CLI) impact"},{"line_number":56,"context_line":"-------------------"},{"line_number":57,"context_line":"None."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"RPC API impact"},{"line_number":60,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_04a42455","line":57,"updated":"2015-06-14 10:33:42.000000000","message":"Affects client becaus the client must allow passing and displaying image names, not just uuids or http urls","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"6f92a15934f240c643c97fe3814dc9dcc750dc3e","unresolved":false,"context_lines":[{"line_number":54,"context_line":""},{"line_number":55,"context_line":"Client (CLI) impact"},{"line_number":56,"context_line":"-------------------"},{"line_number":57,"context_line":"None."},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"RPC API impact"},{"line_number":60,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_c4a1c347","line":57,"in_reply_to":"fa32b979_04a42455","updated":"2015-06-17 17:16:54.000000000","message":"It seems to work fine, it displays glance://\u003cimage-name\u003e","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"88837189c694568082b07cbd4d337388d4fb526e","unresolved":false,"context_lines":[{"line_number":93,"context_line":"Glance will be called every time deployment interface needs to get image"},{"line_number":94,"context_line":"metadata or download the image. UUID corresponding to a particular image name"},{"line_number":95,"context_line":"should not be cached in Ironic as image contents may be updated and its UUID"},{"line_number":96,"context_line":"will change while its name remains the same."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Other deployer impact"},{"line_number":99,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"fa32b979_a489b8cc","line":96,"updated":"2015-06-14 10:33:42.000000000","message":"I believe Vladyslav is correct -- which further makes me wonder why Ironic should support this when Glance doesn\u0027t allow direct operations by Name, and Nova does not even store references by Glance Image Name either.","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"7d51be25d3fae51c9e384254eb80f79c371bb1d7","unresolved":false,"context_lines":[{"line_number":93,"context_line":"Glance will be called every time deployment interface needs to get image"},{"line_number":94,"context_line":"metadata or download the image. UUID corresponding to a particular image name"},{"line_number":95,"context_line":"should not be cached in Ironic as image contents may be updated and its UUID"},{"line_number":96,"context_line":"will change while its name remains the same."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Other deployer impact"},{"line_number":99,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_f4602803","line":96,"updated":"2015-06-09 07:18:32.000000000","message":"huh? Glance does not allow operations directly by name?","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"a7937e04c0c9c3bd73cb74b99190dbf55ec6cb5d","unresolved":false,"context_lines":[{"line_number":93,"context_line":"Glance will be called every time deployment interface needs to get image"},{"line_number":94,"context_line":"metadata or download the image. UUID corresponding to a particular image name"},{"line_number":95,"context_line":"should not be cached in Ironic as image contents may be updated and its UUID"},{"line_number":96,"context_line":"will change while its name remains the same."},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Other deployer impact"},{"line_number":99,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3afb71cf_c52fad86","line":96,"in_reply_to":"3afb71cf_f4602803","updated":"2015-06-09 12:45:01.000000000","message":"If I understand correctly it does not. If a name is specified in glance CLI call, like glance image-show ubuntu, it first calls API list method with filter by name and then does API call to show method with UUID that was returned by list.","commit_id":"653fd33489a7a7a2878a5465d08c915fabad9971"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b8c2e0b7e02c914e78b556e5af2d97341d0b3f4d","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  require client to know which fields should contain links to images, as it"},{"line_number":43,"context_line":"  differs for different drivers (e.g. for `pxe_ipmitool` driver deploy images"},{"line_number":44,"context_line":"  are in `driver_info/deploy_{kernel,ramdisk}`, for `iscsi_ilo` there is one"},{"line_number":45,"context_line":"  deploy image in `driver_info/ilo_deploy_iso`)."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Data model impact"},{"line_number":48,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_88131b66","line":45,"updated":"2015-06-30 21:15:27.000000000","message":"Our client doesn\u0027t know about glance, so we\u0027d need to add the plumbing, have the user configure the glance info.\n\nI don\u0027t really see it as a big issue to determine which driver_info properties are glance images. Just look for the \u0027glance://\u0027 prefix. How many driver_info properties would there be in a single request?\n\nThe only problem is that Vladyslav mentioned that one could reuse the same glance name for different images so that the UUID could change. Which makes it sound like we need to get the UUID corresponding to the image name when actually getting the image.","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"b280baefcaee26a625c7852dd0e987a40240fb4c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  require client to know which fields should contain links to images, as it"},{"line_number":43,"context_line":"  differs for different drivers (e.g. for `pxe_ipmitool` driver deploy images"},{"line_number":44,"context_line":"  are in `driver_info/deploy_{kernel,ramdisk}`, for `iscsi_ilo` there is one"},{"line_number":45,"context_line":"  deploy image in `driver_info/ilo_deploy_iso`)."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Data model impact"},{"line_number":48,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_4681cafa","line":45,"in_reply_to":"ba3cc151_88131b66","updated":"2015-07-24 12:18:14.000000000","message":"Done","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b21be5ab83460779b5077e5e25fc63a17395582f","unresolved":false,"context_lines":[{"line_number":57,"context_line":"REST API impact"},{"line_number":58,"context_line":"---------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"None."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Client (CLI) impact"},{"line_number":63,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_83fdb9b2","line":60,"updated":"2015-07-23 14:28:03.000000000","message":"I think it might be good to mention here that the image name is only (I hope this is true) specified within JSON data, so that there is no change to the REST API.","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"b280baefcaee26a625c7852dd0e987a40240fb4c","unresolved":false,"context_lines":[{"line_number":57,"context_line":"REST API impact"},{"line_number":58,"context_line":"---------------"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"None."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Client (CLI) impact"},{"line_number":63,"context_line":"-------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_067c221f","line":60,"in_reply_to":"3a50d1a3_83fdb9b2","updated":"2015-07-24 12:18:14.000000000","message":"Done","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b21be5ab83460779b5077e5e25fc63a17395582f","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Client (CLI) impact"},{"line_number":63,"context_line":"-------------------"},{"line_number":64,"context_line":"None."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"RPC API impact"},{"line_number":67,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_232e25fb","line":64,"updated":"2015-07-23 14:28:03.000000000","message":"Similar to above, might be good to add a comment here that wrt the client, the user specifies the image name [how, I can\u0027t remember, via node-create -i? so user would only need to add quotes if the name has special chars?] and there is no change required for the client to display image names since the image name/uuid/http url is treated like a string by the client.","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"b280baefcaee26a625c7852dd0e987a40240fb4c","unresolved":false,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"Client (CLI) impact"},{"line_number":63,"context_line":"-------------------"},{"line_number":64,"context_line":"None."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"RPC API impact"},{"line_number":67,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_c675da32","line":64,"in_reply_to":"3a50d1a3_232e25fb","updated":"2015-07-24 12:18:14.000000000","message":"Done","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6484f89486b4f222afc2987574e7e5288bec4bdb","unresolved":false,"context_lines":[{"line_number":92,"context_line":"------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Additional network calls to Glance will be done to get UUID of an image if"},{"line_number":95,"context_line":"image reference is not UUID-like already."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Performance Impact"},{"line_number":98,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_529bc7c9","line":95,"updated":"2015-06-29 15:06:27.000000000","message":"(no actions here, just rant)\n\nGlance API *sigh*\n\nYeah it seems to work with v1 to filter by name (not sure about their library), e.g\n\n$ curl -X GET http://192.168.122.87:9292/v1/images/detail?limit\u003d20\u0026name\u003dcirros-0.3.4-x86_64-disk\n\nBut v2 seems to only allow UUID","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"141f148ef857a057312cb0e26454b89d826a102a","unresolved":false,"context_lines":[{"line_number":92,"context_line":"------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Additional network calls to Glance will be done to get UUID of an image if"},{"line_number":95,"context_line":"image reference is not UUID-like already."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Performance Impact"},{"line_number":98,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_9749a8b9","line":95,"in_reply_to":"3a50d1a3_379d34bc","updated":"2015-07-22 18:29:35.000000000","message":"If we add this feature, we\u0027ll need it to work for every version of Glance. for v2, I suppose one could do an image-list and find the info that way but it would be more expensive. Is that what you were thinking of doing? The cost should be spelled out here.","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1745105e9c0cfa664bc0e361f5439021b3b7f24e","unresolved":false,"context_lines":[{"line_number":92,"context_line":"------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Additional network calls to Glance will be done to get UUID of an image if"},{"line_number":95,"context_line":"image reference is not UUID-like already."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Performance Impact"},{"line_number":98,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_ff11e204","line":95,"in_reply_to":"3a50d1a3_9749a8b9","updated":"2015-07-22 19:37:18.000000000","message":"Indeed I thought there was a way to get the image by name with v2, but looking now (and it\u0027s late here) I can\u0027t find it.\n\nI will change my vote in the meantime","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"34f0edc984e44a380b77a7de58872ad3d50cc502","unresolved":false,"context_lines":[{"line_number":92,"context_line":"------------------"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"Additional network calls to Glance will be done to get UUID of an image if"},{"line_number":95,"context_line":"image reference is not UUID-like already."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"Performance Impact"},{"line_number":98,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_379d34bc","line":95,"in_reply_to":"ba3cc151_529bc7c9","updated":"2015-07-22 18:12:00.000000000","message":"If the v2 API does not allow finding an image by name, that makes this kind of unworkable, right? I don\u0027t want to restrict ourselves to v1 API (which is only intended to be used by nova as a proxy).","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b21be5ab83460779b5077e5e25fc63a17395582f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Glance will be called every time deployment interface needs to get image"},{"line_number":101,"context_line":"metadata or download the image. UUID corresponding to a particular image name"},{"line_number":102,"context_line":"should not be cached in Ironic as image contents may be updated and its UUID"},{"line_number":103,"context_line":"will change while its name remains the same."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Other deployer impact"},{"line_number":106,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_1ea49eb7","line":103,"updated":"2015-07-23 14:28:03.000000000","message":"I think somewhere in the spec, maybe under Proposed Changes, there ought to be a description of what Glance can/cannot do. eg, Glance:\n- allows images to be named, although the name is not guaranteed to be unique\n- does not allow direct operations by image name\n- allows an image name to be associated with a different UUID\n- provides a REST API to get information about an image given its name. This mechanism will be used to get the image\u0027s corresponding UUID given its name. Note that the API for v1 is different from that of v2.\n\n(I\u0027m not sure if the above is all true, but this is what I\u0027m guessing based on this spec \u0026 comments.)","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"b280baefcaee26a625c7852dd0e987a40240fb4c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"Glance will be called every time deployment interface needs to get image"},{"line_number":101,"context_line":"metadata or download the image. UUID corresponding to a particular image name"},{"line_number":102,"context_line":"should not be cached in Ironic as image contents may be updated and its UUID"},{"line_number":103,"context_line":"will change while its name remains the same."},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"Other deployer impact"},{"line_number":106,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_669de658","line":103,"in_reply_to":"3a50d1a3_1ea49eb7","updated":"2015-07-24 12:18:14.000000000","message":"Done","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6484f89486b4f222afc2987574e7e5288bec4bdb","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"These changes may be tested in gate by changing values that devstack writes"},{"line_number":146,"context_line":"when creating a node."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":150,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_323ac337","line":147,"updated":"2015-06-29 15:06:27.000000000","message":"and...\n\n* unittests","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"b280baefcaee26a625c7852dd0e987a40240fb4c","unresolved":false,"context_lines":[{"line_number":144,"context_line":""},{"line_number":145,"context_line":"These changes may be tested in gate by changing values that devstack writes"},{"line_number":146,"context_line":"when creating a node."},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"Upgrades and Backwards Compatibility"},{"line_number":150,"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\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_06a3c29f","line":147,"in_reply_to":"ba3cc151_323ac337","updated":"2015-07-24 12:18:14.000000000","message":"Done","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"be3c48c0e4e208cf53683d465ed85414862b3152","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Documentation Impact"},{"line_number":156,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"This ability should be mentioned in admin guide."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_49752e96","line":158,"updated":"2015-06-30 14:16:12.000000000","message":"you should also mention that using names require more calls to glance","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"b280baefcaee26a625c7852dd0e987a40240fb4c","unresolved":false,"context_lines":[{"line_number":155,"context_line":"Documentation Impact"},{"line_number":156,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"This ability should be mentioned in admin guide."},{"line_number":159,"context_line":""},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"References"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_26a03e90","line":158,"in_reply_to":"ba3cc151_49752e96","updated":"2015-07-24 12:18:14.000000000","message":"Done","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"6484f89486b4f222afc2987574e7e5288bec4bdb","unresolved":false,"context_lines":[{"line_number":161,"context_line":"References"},{"line_number":162,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"* Implementation: https://review.openstack.org/188429"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ba3cc151_92206ff9","line":164,"updated":"2015-06-29 15:06:27.000000000","message":"Not sure if it\u0027s needed here, one interested in the code should just look at the blueprint page and it will be there (just like any other spec)","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"b280baefcaee26a625c7852dd0e987a40240fb4c","unresolved":false,"context_lines":[{"line_number":161,"context_line":"References"},{"line_number":162,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"* Implementation: https://review.openstack.org/188429"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a50d1a3_e6a9f67c","line":164,"in_reply_to":"ba3cc151_92206ff9","updated":"2015-07-24 12:18:14.000000000","message":"Done","commit_id":"92b668a71db69a6f257165f26bd2d51e09083d45"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1208ae80916b1f061738a97bc924f0bb5de83746","unresolved":false,"context_lines":[{"line_number":32,"context_line":"supported by both Image API version 1 and 2."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Apart from that, image names should be substituted by UUIDs in file names when"},{"line_number":35,"context_line":"images are saved in Ironic image cache, which should be done by deployment"},{"line_number":36,"context_line":"interfaces."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Image reference should look like `Glance://\u003cimage-name\u003e`. If there are multiple"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_b1b444d1","line":35,"updated":"2015-08-05 04:43:14.000000000","message":"We already have a requirement of using different names for master file names in image cache (we do this today for non-glance images where we transform filename to a uuid like thing - \n\nhttps://github.com/openstack/ironic/blob/master/ironic/drivers/modules/image_cache.py#L105-L110\n\nCan we add a new interface method to ironic.common.BaseImageService which will provide the filename for the master filename for the cache (something like \"def get_master_filename\").  It will be very useful if image_cache and image_service can handle the conversion of image name to image uuid for master filename transparently from deployment interfaces.","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"916811e361e47585266c1b00972edb573ffd9425","unresolved":false,"context_lines":[{"line_number":32,"context_line":"supported by both Image API version 1 and 2."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Apart from that, image names should be substituted by UUIDs in file names when"},{"line_number":35,"context_line":"images are saved in Ironic image cache, which should be done by deployment"},{"line_number":36,"context_line":"interfaces."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Image reference should look like `Glance://\u003cimage-name\u003e`. If there are multiple"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_e37bbdbc","line":35,"in_reply_to":"1a4dcd0f_b1b444d1","updated":"2015-08-11 16:46:03.000000000","message":"Thanks, I forgot about that place for some reason :)","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8a584d221d308f882c6d11391955338cb09d4607","unresolved":false,"context_lines":[{"line_number":35,"context_line":"images are saved in Ironic image cache, which should be done by deployment"},{"line_number":36,"context_line":"interfaces."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Image reference should look like `Glance://\u003cimage-name\u003e`. If there are multiple"},{"line_number":39,"context_line":"images with the same name in Glance (which is allowed), exception inherited"},{"line_number":40,"context_line":"from Invalid will be thrown asking administrator to specify UUID of the desired"},{"line_number":41,"context_line":"image."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_d4152be5","line":38,"updated":"2015-07-27 16:28:20.000000000","message":"Isn\u0027t it \u0027glance\u0027, not \u0027Glance\u0027? \n\nhttps://github.com/openstack/ironic/blob/ff51384fc119669822313c064d9ab0fd6b453bce/ironic/common/image_service.py#L264","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"916811e361e47585266c1b00972edb573ffd9425","unresolved":false,"context_lines":[{"line_number":35,"context_line":"images are saved in Ironic image cache, which should be done by deployment"},{"line_number":36,"context_line":"interfaces."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"Image reference should look like `Glance://\u003cimage-name\u003e`. If there are multiple"},{"line_number":39,"context_line":"images with the same name in Glance (which is allowed), exception inherited"},{"line_number":40,"context_line":"from Invalid will be thrown asking administrator to specify UUID of the desired"},{"line_number":41,"context_line":"image."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_83643922","line":38,"in_reply_to":"3a50d1a3_d4152be5","updated":"2015-08-11 16:46:03.000000000","message":"Done","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"9a3a12bfa71b854edd2a5cb811778bb8d812d3ed","unresolved":false,"context_lines":[{"line_number":46,"context_line":"#. Continue allowing only UUIDs as image references."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"#. Implement this in client, i.e. if a link to an image is specified in form"},{"line_number":49,"context_line":"   `Glance://\u003cimage-name\u003e`, get UUID of this image by its name. But this will"},{"line_number":50,"context_line":"   require client to:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"   - know which fields should contain links to images, as it differs for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_e7855e59","line":49,"updated":"2015-07-30 22:41:04.000000000","message":"Same comment as Ruby above. I think this should be glance://, not Glance://.","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"916811e361e47585266c1b00972edb573ffd9425","unresolved":false,"context_lines":[{"line_number":46,"context_line":"#. Continue allowing only UUIDs as image references."},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"#. Implement this in client, i.e. if a link to an image is specified in form"},{"line_number":49,"context_line":"   `Glance://\u003cimage-name\u003e`, get UUID of this image by its name. But this will"},{"line_number":50,"context_line":"   require client to:"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"   - know which fields should contain links to images, as it differs for"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_c3a7a14e","line":49,"in_reply_to":"3a50d1a3_e7855e59","updated":"2015-08-11 16:46:03.000000000","message":"Done","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1208ae80916b1f061738a97bc924f0bb5de83746","unresolved":false,"context_lines":[{"line_number":82,"context_line":"If image name contains spaces or other special characters, they should be"},{"line_number":83,"context_line":"quoted when passed to CLI as it is done usually in shell, e.g.::"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":" Ironic node-update node1 add driver_info/deploy_kernel\u003d\"my \\\"image\\\"\"."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"RPC API impact"},{"line_number":88,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_11f41884","line":85,"updated":"2015-08-05 04:43:14.000000000","message":"nit: small ironic","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"916811e361e47585266c1b00972edb573ffd9425","unresolved":false,"context_lines":[{"line_number":82,"context_line":"If image name contains spaces or other special characters, they should be"},{"line_number":83,"context_line":"quoted when passed to CLI as it is done usually in shell, e.g.::"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":" Ironic node-update node1 add driver_info/deploy_kernel\u003d\"my \\\"image\\\"\"."},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"RPC API impact"},{"line_number":88,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_a3505533","line":85,"in_reply_to":"1a4dcd0f_11f41884","updated":"2015-08-11 16:46:03.000000000","message":"Done","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"9a3a12bfa71b854edd2a5cb811778bb8d812d3ed","unresolved":false,"context_lines":[{"line_number":113,"context_line":"Other end user impact"},{"line_number":114,"context_line":"---------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Glance allows unicode characters in image names, although it won\u0027t be able to"},{"line_number":117,"context_line":"get image UUID by name if unicode string is specified in filter. So only"},{"line_number":118,"context_line":"printable ASCII characters should be used for images naming."},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_474a1229","line":116,"updated":"2015-07-30 22:41:04.000000000","message":"Is there a bug open in Glance for this?\n\nI think this is an edge case and am not very worried about it, but I\u0027d like to be sure the limitation is because of Glance\u0027s filtering capabilities and not what we do in Ironic.","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"916811e361e47585266c1b00972edb573ffd9425","unresolved":false,"context_lines":[{"line_number":113,"context_line":"Other end user impact"},{"line_number":114,"context_line":"---------------------"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"Glance allows unicode characters in image names, although it won\u0027t be able to"},{"line_number":117,"context_line":"get image UUID by name if unicode string is specified in filter. So only"},{"line_number":118,"context_line":"printable ASCII characters should be used for images naming."},{"line_number":119,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_232445c3","line":116,"in_reply_to":"3a50d1a3_474a1229","updated":"2015-08-11 16:46:03.000000000","message":"I\u0027m not sure about it, will take a look at glance/glanceclient bugs, but according to tracebacks I got while testing it the problem was either in glance client or in glance.","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"9a3a12bfa71b854edd2a5cb811778bb8d812d3ed","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Performance Impact"},{"line_number":127,"context_line":"------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Glance will be called once for every image when validate_driver_interfaces or"},{"line_number":130,"context_line":"do_node_deploy conductor methods are called. UUID corresponding to a particular"},{"line_number":131,"context_line":"image name should not be cached in Ironic as image contents may be updated and"},{"line_number":132,"context_line":"its UUID will change while its name remains the same."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_e72f9e3c","line":129,"updated":"2015-07-30 22:41:04.000000000","message":"These additional calls will only happen if names are used instead of UUIDs, right? We can just check whether the image info is UUID-like or not before making the calls.","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1208ae80916b1f061738a97bc924f0bb5de83746","unresolved":false,"context_lines":[{"line_number":126,"context_line":"Performance Impact"},{"line_number":127,"context_line":"------------------"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"Glance will be called once for every image when validate_driver_interfaces or"},{"line_number":130,"context_line":"do_node_deploy conductor methods are called. UUID corresponding to a particular"},{"line_number":131,"context_line":"image name should not be cached in Ironic as image contents may be updated and"},{"line_number":132,"context_line":"its UUID will change while its name remains the same."}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_f1096cde","line":129,"in_reply_to":"3a50d1a3_e72f9e3c","updated":"2015-08-05 04:43:14.000000000","message":"I think this was implicitly conveyed. We do this already in many places like \n\n  if image_href \u003clooks like uuid\u003e","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"8a584d221d308f882c6d11391955338cb09d4607","unresolved":false,"context_lines":[{"line_number":134,"context_line":"Other deployer impact"},{"line_number":135,"context_line":"---------------------"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"When updating an image, there will be a period of time when either there are"},{"line_number":138,"context_line":"multiple images with same name (e.g. when you\u0027re uploading an image with a name"},{"line_number":139,"context_line":"that already exists in Glance, and before you deleted an old one), or there are"},{"line_number":140,"context_line":"no images with specified name in Glance (e.g. you deleted an old image and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3a50d1a3_d4ed2bb8","line":137,"updated":"2015-07-27 16:28:20.000000000","message":"to be clearer, s/an image/an image in Glance/","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"916811e361e47585266c1b00972edb573ffd9425","unresolved":false,"context_lines":[{"line_number":134,"context_line":"Other deployer impact"},{"line_number":135,"context_line":"---------------------"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"When updating an image, there will be a period of time when either there are"},{"line_number":138,"context_line":"multiple images with same name (e.g. when you\u0027re uploading an image with a name"},{"line_number":139,"context_line":"that already exists in Glance, and before you deleted an old one), or there are"},{"line_number":140,"context_line":"no images with specified name in Glance (e.g. you deleted an old image and"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_03602900","line":137,"in_reply_to":"3a50d1a3_d4ed2bb8","updated":"2015-08-11 16:46:03.000000000","message":"Done","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"1208ae80916b1f061738a97bc924f0bb5de83746","unresolved":false,"context_lines":[{"line_number":168,"context_line":"* Implement `get_image_uuid` decorator and add it to appropriate"},{"line_number":169,"context_line":"  `BaseImageService` methods."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* Change all deployment interfaces to substitute image name by its UUID in"},{"line_number":172,"context_line":"  resulting file name when saving image to cache."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_f1088c93","line":171,"updated":"2015-08-05 04:43:14.000000000","message":"This is going to be tougher to maintain.  As my comment above, it is better if it can be done automatically.","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"916811e361e47585266c1b00972edb573ffd9425","unresolved":false,"context_lines":[{"line_number":168,"context_line":"* Implement `get_image_uuid` decorator and add it to appropriate"},{"line_number":169,"context_line":"  `BaseImageService` methods."},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"* Change all deployment interfaces to substitute image name by its UUID in"},{"line_number":172,"context_line":"  resulting file name when saving image to cache."},{"line_number":173,"context_line":""},{"line_number":174,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"1a4dcd0f_8332f90e","line":171,"in_reply_to":"1a4dcd0f_f1088c93","updated":"2015-08-11 16:46:03.000000000","message":"Done","commit_id":"ed89f975eded6766345c59e31ed3fc3e596a1fb9"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"362907fea16bf62afd16df5f9b86245bdf1855d7","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Performance Impact"},{"line_number":120,"context_line":"------------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Glance will be called to get UUID of an image with particular name once for"},{"line_number":123,"context_line":"every image when deploy validation or deployment itself is called and only if"},{"line_number":124,"context_line":"image href is not an UUID already. UUID corresponding to a particular image"},{"line_number":125,"context_line":"name should not be cached in Ironic as image contents may be updated and its"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a4dcd0f_930e6b39","line":122,"updated":"2015-08-13 09:10:01.000000000","message":"This long sentence seem confusing to me.  How about\n\nWhen image name is passed as image_href, Glance will be called to get UUID of the image once for every image during deploy validation or deployment itself.","commit_id":"8ea800dc00a82a0a14e847e0e58661a3f1987e33"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"aded78aeffff45d6514df68d82ec04e615992a5b","unresolved":false,"context_lines":[{"line_number":119,"context_line":"Performance Impact"},{"line_number":120,"context_line":"------------------"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"Glance will be called to get UUID of an image with particular name once for"},{"line_number":123,"context_line":"every image when deploy validation or deployment itself is called and only if"},{"line_number":124,"context_line":"image href is not an UUID already. UUID corresponding to a particular image"},{"line_number":125,"context_line":"name should not be cached in Ironic as image contents may be updated and its"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a4dcd0f_2cfcc4b3","line":122,"in_reply_to":"1a4dcd0f_930e6b39","updated":"2015-08-13 15:38:45.000000000","message":"Done","commit_id":"8ea800dc00a82a0a14e847e0e58661a3f1987e33"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"362907fea16bf62afd16df5f9b86245bdf1855d7","unresolved":false,"context_lines":[{"line_number":162,"context_line":"* Implement `get_image_uuid` decorator and add it to appropriate"},{"line_number":163,"context_line":"  `BaseImageService` methods."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"* Change ImageCache.fetch_image method to substitute image name by its UUID."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a4dcd0f_f3448f73","line":165,"updated":"2015-08-13 09:10:01.000000000","message":"It\u0027s an implementation detail, but I would like if ImageService has a new method in it\u0027s interface\n\n  def get_unique_id()\n\nor something like that which tells what should be the name of the file saved.  I think it\u0027s time we abstract it out of fetch_image into ImageService.","commit_id":"8ea800dc00a82a0a14e847e0e58661a3f1987e33"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"aded78aeffff45d6514df68d82ec04e615992a5b","unresolved":false,"context_lines":[{"line_number":162,"context_line":"* Implement `get_image_uuid` decorator and add it to appropriate"},{"line_number":163,"context_line":"  `BaseImageService` methods."},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"* Change ImageCache.fetch_image method to substitute image name by its UUID."},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":4,"id":"1a4dcd0f_71ff0534","line":165,"in_reply_to":"1a4dcd0f_f3448f73","updated":"2015-08-13 15:38:45.000000000","message":"Surely it can be done, but it would be backwards incompatible change for image services, so I would do this change separately. For now there are only 2 cases - glance and non-glance images, so there is only one if.","commit_id":"8ea800dc00a82a0a14e847e0e58661a3f1987e33"}]}
