)]}'
{"specs/ussuri/approved/glance/copy-existing-image.rst":[{"author":{"_account_id":30054,"name":"Grégoire Unbekandt","email":"gregoire.unbekandt@gmail.com","username":"yebinama"},"change_message_id":"2ed8a5c84215ee652228b38937ff673181e8820d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"This spec is depend on `Ability to import an image in multiple stores` [1]"},{"line_number":49,"context_line":"to import the image in multiple stores. In addition to above changes, this"},{"line_number":50,"context_line":"spec proposes to enhance the image import API to specify additional input"},{"line_number":51,"context_line":"`copy_image_from_id` in the json payload."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_6cf2af07","line":48,"updated":"2019-11-19 16:18:23.000000000","message":"This spec depends","commit_id":"e323a2ca53dd64d190faad1f1a6fb40e546d4817"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7d13553df508e7ee0e804eed285ca638265cbea0","unresolved":false,"context_lines":[{"line_number":45,"context_line":"Proposed change"},{"line_number":46,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"This spec is depend on `Ability to import an image in multiple stores` [1]"},{"line_number":49,"context_line":"to import the image in multiple stores. In addition to above changes, this"},{"line_number":50,"context_line":"spec proposes to enhance the image import API to specify additional input"},{"line_number":51,"context_line":"`copy_image_from_id` in the json payload."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_64d15b2f","line":48,"in_reply_to":"3fa7e38b_6cf2af07","updated":"2019-11-20 05:50:16.000000000","message":"Done","commit_id":"e323a2ca53dd64d190faad1f1a6fb40e546d4817"},{"author":{"_account_id":30054,"name":"Grégoire Unbekandt","email":"gregoire.unbekandt@gmail.com","username":"yebinama"},"change_message_id":"2ed8a5c84215ee652228b38937ff673181e8820d","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* If an unavailable store is specified, the Api should reject the request."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* If base image deleted while copying the data to new stores, then the"},{"line_number":74,"context_line":"  copying process will be terminated and copied data will be removed as well."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* If `allowed_failure` is set to \u0027false\u0027 (default behavior) and an error occurs"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_b23a3c95","line":73,"updated":"2019-11-19 16:18:23.000000000","message":"typo: If base image is deleted","commit_id":"e323a2ca53dd64d190faad1f1a6fb40e546d4817"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7d13553df508e7ee0e804eed285ca638265cbea0","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* If an unavailable store is specified, the Api should reject the request."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* If base image deleted while copying the data to new stores, then the"},{"line_number":74,"context_line":"  copying process will be terminated and copied data will be removed as well."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* If `allowed_failure` is set to \u0027false\u0027 (default behavior) and an error occurs"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_84d6d726","line":73,"in_reply_to":"3fa7e38b_b23a3c95","updated":"2019-11-20 05:50:16.000000000","message":"Done","commit_id":"e323a2ca53dd64d190faad1f1a6fb40e546d4817"},{"author":{"_account_id":30054,"name":"Grégoire Unbekandt","email":"gregoire.unbekandt@gmail.com","username":"yebinama"},"change_message_id":"2ed8a5c84215ee652228b38937ff673181e8820d","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    POST /v2/images/{image_id}/import"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"This modifies the existing REST API to add one new optional body field"},{"line_number":152,"context_line":"`copy_image_from_id`."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"New body field:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_5203c80c","line":151,"updated":"2019-11-19 16:18:23.000000000","message":"Instead of adding a new field, I think we should add a new method (ex: copy_image).\nIf we use \u0027copy_image_from_id\u0027, user will always specify current image id as the image must already be in `Active` state (eg: already imported to a store). \nIf user specify another image id, it must have the same md5,... as the current one. I can\u0027t find an example where an id of another image would be sent by a user.\n\ncurl -i -X POST -H \"X-Auth-Token: $token\"\n             -H \"Content-Type: application/json\"\n             -d \u0027{\"method\":{\"name\":\"copy_image\"},\n                  \"stores\": [\"ceph1\", \"ceph2\"],\n                  \"allow_failure\": false}\u0027\n             $image_url/v2/images/{image_id}/import","commit_id":"e323a2ca53dd64d190faad1f1a6fb40e546d4817"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7d13553df508e7ee0e804eed285ca638265cbea0","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    POST /v2/images/{image_id}/import"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"This modifies the existing REST API to add one new optional body field"},{"line_number":152,"context_line":"`copy_image_from_id`."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"New body field:"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_24d7e324","line":151,"in_reply_to":"3fa7e38b_5203c80c","updated":"2019-11-20 05:50:16.000000000","message":"Sounds good","commit_id":"e323a2ca53dd64d190faad1f1a6fb40e546d4817"},{"author":{"_account_id":30054,"name":"Grégoire Unbekandt","email":"gregoire.unbekandt@gmail.com","username":"yebinama"},"change_message_id":"2ed8a5c84215ee652228b38937ff673181e8820d","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Implementation tasks may consist of:"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"* Copy exiting image into staging area"},{"line_number":232,"context_line":"* Add python-glanceclient support"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_d216d84a","line":231,"updated":"2019-11-19 16:18:23.000000000","message":"typo \"existing\"","commit_id":"e323a2ca53dd64d190faad1f1a6fb40e546d4817"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7d13553df508e7ee0e804eed285ca638265cbea0","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"Implementation tasks may consist of:"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"* Copy exiting image into staging area"},{"line_number":232,"context_line":"* Add python-glanceclient support"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"Dependencies"}],"source_content_type":"text/x-rst","patch_set":2,"id":"3fa7e38b_44dc5f44","line":231,"in_reply_to":"3fa7e38b_d216d84a","updated":"2019-11-20 05:50:16.000000000","message":"Done","commit_id":"e323a2ca53dd64d190faad1f1a6fb40e546d4817"},{"author":{"_account_id":30054,"name":"Grégoire Unbekandt","email":"gregoire.unbekandt@gmail.com","username":"yebinama"},"change_message_id":"37b1b7a0cdfa8f7a64528f162e41f05f9fc656b2","unresolved":false,"context_lines":[{"line_number":61,"context_line":"copy/import this data in specified multiple stores. To copy the existing image"},{"line_number":62,"context_line":"into staging area, we will traverse through the locations of the image, if"},{"line_number":63,"context_line":"image has multiple locations then preference will be given to the location"},{"line_number":64,"context_line":"which has file store associated with it. If image is does not associated with"},{"line_number":65,"context_line":"file store, then we will choose the first location and copy(download) image"},{"line_number":66,"context_line":"from that location to staging area. Failure mechanism will be same as dependent"},{"line_number":67,"context_line":"spec `Ability to import an image in multiple stores` [1]."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_b1a0b3a6","line":64,"updated":"2019-11-25 09:59:46.000000000","message":"Typo: \"If image is not associated\"","commit_id":"0a8656b004a39b413f159600c85fc97e71745284"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"da71d2cf014afc26b4b10ec57b9ada552bc91b0b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"copy/import this data in specified multiple stores. To copy the existing image"},{"line_number":62,"context_line":"into staging area, we will traverse through the locations of the image, if"},{"line_number":63,"context_line":"image has multiple locations then preference will be given to the location"},{"line_number":64,"context_line":"which has file store associated with it. If image is does not associated with"},{"line_number":65,"context_line":"file store, then we will choose the first location and copy(download) image"},{"line_number":66,"context_line":"from that location to staging area. Failure mechanism will be same as dependent"},{"line_number":67,"context_line":"spec `Ability to import an image in multiple stores` [1]."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_9197b739","line":64,"in_reply_to":"3fa7e38b_b1a0b3a6","updated":"2019-11-25 10:09:49.000000000","message":"Done","commit_id":"0a8656b004a39b413f159600c85fc97e71745284"},{"author":{"_account_id":30054,"name":"Grégoire Unbekandt","email":"gregoire.unbekandt@gmail.com","username":"yebinama"},"change_message_id":"37b1b7a0cdfa8f7a64528f162e41f05f9fc656b2","unresolved":false,"context_lines":[{"line_number":73,"context_line":"* If base image is deleted while copying the data to new stores, then the"},{"line_number":74,"context_line":"  copying process will be terminated and copied data will be removed as well."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* If `allowed_failure` is set to \u0027false\u0027 (default behavior) and an error occurs"},{"line_number":77,"context_line":"  during copying data in at least one store, the request should be rejected,"},{"line_number":78,"context_line":"  the   data will be deleted, and the state of the image reinstated to"},{"line_number":79,"context_line":"  `Active`."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_915577fb","line":76,"updated":"2019-11-25 09:59:46.000000000","message":"Typo: \"allow_failure\"","commit_id":"0a8656b004a39b413f159600c85fc97e71745284"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"da71d2cf014afc26b4b10ec57b9ada552bc91b0b","unresolved":false,"context_lines":[{"line_number":73,"context_line":"* If base image is deleted while copying the data to new stores, then the"},{"line_number":74,"context_line":"  copying process will be terminated and copied data will be removed as well."},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"* If `allowed_failure` is set to \u0027false\u0027 (default behavior) and an error occurs"},{"line_number":77,"context_line":"  during copying data in at least one store, the request should be rejected,"},{"line_number":78,"context_line":"  the   data will be deleted, and the state of the image reinstated to"},{"line_number":79,"context_line":"  `Active`."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_b1b753d8","line":76,"in_reply_to":"3fa7e38b_915577fb","updated":"2019-11-25 10:09:49.000000000","message":"Done","commit_id":"0a8656b004a39b413f159600c85fc97e71745284"},{"author":{"_account_id":30054,"name":"Grégoire Unbekandt","email":"gregoire.unbekandt@gmail.com","username":"yebinama"},"change_message_id":"37b1b7a0cdfa8f7a64528f162e41f05f9fc656b2","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  the   data will be deleted, and the state of the image reinstated to"},{"line_number":79,"context_line":"  `Active`."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* If `allowed_failure` is set to \u0027true\u0027, the request will fail (data"},{"line_number":82,"context_line":"  deleted, ...) only if the upload fails on all stores specified by the"},{"line_number":83,"context_line":"  user. In case of a partial success, the locations added to the image"},{"line_number":84,"context_line":"  will be the stores where the data has been correctly uploaded/copied."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_31404335","line":81,"updated":"2019-11-25 09:59:46.000000000","message":"Typo: \"allow_failure\"","commit_id":"0a8656b004a39b413f159600c85fc97e71745284"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"da71d2cf014afc26b4b10ec57b9ada552bc91b0b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"  the   data will be deleted, and the state of the image reinstated to"},{"line_number":79,"context_line":"  `Active`."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* If `allowed_failure` is set to \u0027true\u0027, the request will fail (data"},{"line_number":82,"context_line":"  deleted, ...) only if the upload fails on all stores specified by the"},{"line_number":83,"context_line":"  user. In case of a partial success, the locations added to the image"},{"line_number":84,"context_line":"  will be the stores where the data has been correctly uploaded/copied."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_d1ba0fbe","line":81,"in_reply_to":"3fa7e38b_31404335","updated":"2019-11-25 10:09:49.000000000","message":"Done","commit_id":"0a8656b004a39b413f159600c85fc97e71745284"},{"author":{"_account_id":30054,"name":"Grégoire Unbekandt","email":"gregoire.unbekandt@gmail.com","username":"yebinama"},"change_message_id":"37b1b7a0cdfa8f7a64528f162e41f05f9fc656b2","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Image locations will be updated each time an upload/copy in a store succeed"},{"line_number":87,"context_line":"(with information from this store) but the status of the image will be set"},{"line_number":88,"context_line":"to `ACTIVE` from `copying` when the request is fully executed and successful."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Current location strategies modules should\u0027nt be affected by theses changes as"},{"line_number":91,"context_line":"we don\u0027t change the behavior of the image locations. It is currently possible"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_11af47e0","line":88,"updated":"2019-11-25 09:59:46.000000000","message":"On line55 you wrote that the image state is set to \u0027staging\u0027 at the beginning of the task. Do you want to add a new state \"copying\" or remain with \"staging\"?","commit_id":"0a8656b004a39b413f159600c85fc97e71745284"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"da71d2cf014afc26b4b10ec57b9ada552bc91b0b","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"Image locations will be updated each time an upload/copy in a store succeed"},{"line_number":87,"context_line":"(with information from this store) but the status of the image will be set"},{"line_number":88,"context_line":"to `ACTIVE` from `copying` when the request is fully executed and successful."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"Current location strategies modules should\u0027nt be affected by theses changes as"},{"line_number":91,"context_line":"we don\u0027t change the behavior of the image locations. It is currently possible"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_91fed767","line":88,"in_reply_to":"3fa7e38b_11af47e0","updated":"2019-11-25 10:09:49.000000000","message":"\u003e On line55 you wrote that the image state is set to \u0027staging\u0027 at the\n \u003e beginning of the task. Do you want to add a new state \"copying\" or\n \u003e remain with \"staging\"?\n\nModified","commit_id":"0a8656b004a39b413f159600c85fc97e71745284"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"182013cf58e669bacafdfd72c0d2f01f99b3a6c5","unresolved":false,"context_lines":[{"line_number":51,"context_line":"proposes to introduce additional import method `copy-image`."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"If the image from which data needs to be copied in multiple stores is not"},{"line_number":54,"context_line":"in active state then the API should reject the request. Once the operation"},{"line_number":55,"context_line":"starts the image state will be changed to `importing` from `active`. Once"},{"line_number":56,"context_line":"staging is completed, import task will import the data to all the"},{"line_number":57,"context_line":"specified stores. Once copying/importing data to all specified stores"},{"line_number":58,"context_line":"is completed, image state will be reinstated to `Active`. In case of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_cc4b07af","line":55,"range":{"start_line":54,"start_character":56,"end_line":55,"end_character":68},"updated":"2019-12-01 13:00:56.000000000","message":"We should not do this! This will break any consumption of the image from existing location (migration comes to mind at worst case scenario). If the connections between operating glance-api and the store are slow we might be talking hours of blocking consumption of the image without any reason to do so.","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4aa5c30b433eaf8a68c784a534ff1a2c8f19af7d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"proposes to introduce additional import method `copy-image`."},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"If the image from which data needs to be copied in multiple stores is not"},{"line_number":54,"context_line":"in active state then the API should reject the request. Once the operation"},{"line_number":55,"context_line":"starts the image state will be changed to `importing` from `active`. Once"},{"line_number":56,"context_line":"staging is completed, import task will import the data to all the"},{"line_number":57,"context_line":"specified stores. Once copying/importing data to all specified stores"},{"line_number":58,"context_line":"is completed, image state will be reinstated to `Active`. In case of"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_b2bcceb5","line":55,"range":{"start_line":54,"start_character":56,"end_line":55,"end_character":68},"in_reply_to":"3fa7e38b_cc4b07af","updated":"2019-12-03 06:04:25.000000000","message":"Done","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"182013cf58e669bacafdfd72c0d2f01f99b3a6c5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Introduce one additional Task which will be internal plugin and allow"},{"line_number":63,"context_line":"us to copy the existing image to staging area. To copy the existing image"},{"line_number":64,"context_line":"into staging area, we will traverse through the locations of the image, if"},{"line_number":65,"context_line":"image has multiple locations then preference will be given to the location"},{"line_number":66,"context_line":"which has file store associated with it. If image is not associated with"},{"line_number":67,"context_line":"file store, then we will choose the first location and copy(download) image"},{"line_number":68,"context_line":"from that location to staging area. Failure mechanism will be same as dependent"},{"line_number":69,"context_line":"spec `Ability to import an image in multiple stores` [1]."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_ec4603a8","line":66,"range":{"start_line":65,"start_character":62,"end_line":66,"end_character":39},"updated":"2019-12-01 13:00:56.000000000","message":"we should prefer the default_store of the node. After all that is the preferred store for the node.","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4aa5c30b433eaf8a68c784a534ff1a2c8f19af7d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"Introduce one additional Task which will be internal plugin and allow"},{"line_number":63,"context_line":"us to copy the existing image to staging area. To copy the existing image"},{"line_number":64,"context_line":"into staging area, we will traverse through the locations of the image, if"},{"line_number":65,"context_line":"image has multiple locations then preference will be given to the location"},{"line_number":66,"context_line":"which has file store associated with it. If image is not associated with"},{"line_number":67,"context_line":"file store, then we will choose the first location and copy(download) image"},{"line_number":68,"context_line":"from that location to staging area. Failure mechanism will be same as dependent"},{"line_number":69,"context_line":"spec `Ability to import an image in multiple stores` [1]."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_52d9da25","line":66,"range":{"start_line":65,"start_character":62,"end_line":66,"end_character":39},"in_reply_to":"3fa7e38b_ec4603a8","updated":"2019-12-03 06:04:25.000000000","message":"Done","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"182013cf58e669bacafdfd72c0d2f01f99b3a6c5","unresolved":false,"context_lines":[{"line_number":63,"context_line":"us to copy the existing image to staging area. To copy the existing image"},{"line_number":64,"context_line":"into staging area, we will traverse through the locations of the image, if"},{"line_number":65,"context_line":"image has multiple locations then preference will be given to the location"},{"line_number":66,"context_line":"which has file store associated with it. If image is not associated with"},{"line_number":67,"context_line":"file store, then we will choose the first location and copy(download) image"},{"line_number":68,"context_line":"from that location to staging area. Failure mechanism will be same as dependent"},{"line_number":69,"context_line":"spec `Ability to import an image in multiple stores` [1]."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* If an unavailable image is specified, the Api should reject the request."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_8cc3cf06","line":68,"range":{"start_line":66,"start_character":41,"end_line":68,"end_character":35},"updated":"2019-12-01 13:00:56.000000000","message":"What if the first returned location row is on a store the operating glance-api does not have access to?","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4aa5c30b433eaf8a68c784a534ff1a2c8f19af7d","unresolved":false,"context_lines":[{"line_number":63,"context_line":"us to copy the existing image to staging area. To copy the existing image"},{"line_number":64,"context_line":"into staging area, we will traverse through the locations of the image, if"},{"line_number":65,"context_line":"image has multiple locations then preference will be given to the location"},{"line_number":66,"context_line":"which has file store associated with it. If image is not associated with"},{"line_number":67,"context_line":"file store, then we will choose the first location and copy(download) image"},{"line_number":68,"context_line":"from that location to staging area. Failure mechanism will be same as dependent"},{"line_number":69,"context_line":"spec `Ability to import an image in multiple stores` [1]."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* If an unavailable image is specified, the Api should reject the request."}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_72dc1617","line":68,"range":{"start_line":66,"start_character":41,"end_line":68,"end_character":35},"in_reply_to":"3fa7e38b_8cc3cf06","updated":"2019-12-03 06:04:25.000000000","message":"Done","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":30054,"name":"Grégoire Unbekandt","email":"gregoire.unbekandt@gmail.com","username":"yebinama"},"change_message_id":"509d8d33790e0f62a57197f157d70ffc7e48147c","unresolved":false,"context_lines":[{"line_number":68,"context_line":"from that location to staging area. Failure mechanism will be same as dependent"},{"line_number":69,"context_line":"spec `Ability to import an image in multiple stores` [1]."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* If an unavailable image is specified, the Api should reject the request."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* If an unavailable store is specified, the Api should reject the request."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_c3f52286","line":71,"updated":"2019-11-29 09:12:00.000000000","message":"I think you forgot to delete this line when you change the spec from \u0027specifying an image id to copy data from\u0027 to \u0027adding a new import method\u0027.","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":30054,"name":"Grégoire Unbekandt","email":"gregoire.unbekandt@gmail.com","username":"yebinama"},"change_message_id":"0d068034e1725da70d3580873d2ece10e58a828d","unresolved":false,"context_lines":[{"line_number":68,"context_line":"from that location to staging area. Failure mechanism will be same as dependent"},{"line_number":69,"context_line":"spec `Ability to import an image in multiple stores` [1]."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* If an unavailable image is specified, the Api should reject the request."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* If an unavailable store is specified, the Api should reject the request."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_2ece5db7","line":71,"in_reply_to":"3fa7e38b_8372ca11","updated":"2019-11-29 09:57:10.000000000","message":"Ok fine.","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"43fd34bb089dbf5d37b24b03a0f49178a2c0a3df","unresolved":false,"context_lines":[{"line_number":68,"context_line":"from that location to staging area. Failure mechanism will be same as dependent"},{"line_number":69,"context_line":"spec `Ability to import an image in multiple stores` [1]."},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"* If an unavailable image is specified, the Api should reject the request."},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"* If an unavailable store is specified, the Api should reject the request."},{"line_number":74,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_8372ca11","line":71,"in_reply_to":"3fa7e38b_c3f52286","updated":"2019-11-29 09:19:24.000000000","message":"this means if image is not present and user specifies non existing image id for copying it should return 404 Not Found.","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"182013cf58e669bacafdfd72c0d2f01f99b3a6c5","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  the   data will be deleted, and the state of the image reinstated to"},{"line_number":84,"context_line":"  `Active`."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* If `allow_failure` is set to \u0027true\u0027, the request will fail (data"},{"line_number":87,"context_line":"  deleted, ...) only if the upload fails on all stores specified by the"},{"line_number":88,"context_line":"  user. In case of a partial success, the locations added to the image"},{"line_number":89,"context_line":"  will be the stores where the data has been correctly uploaded/copied."},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_0cd7dfc2","line":87,"range":{"start_line":86,"start_character":62,"end_line":87,"end_character":9},"updated":"2019-12-01 13:00:56.000000000","message":"we still need to remember to clean up the staging.","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4aa5c30b433eaf8a68c784a534ff1a2c8f19af7d","unresolved":false,"context_lines":[{"line_number":83,"context_line":"  the   data will be deleted, and the state of the image reinstated to"},{"line_number":84,"context_line":"  `Active`."},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"* If `allow_failure` is set to \u0027true\u0027, the request will fail (data"},{"line_number":87,"context_line":"  deleted, ...) only if the upload fails on all stores specified by the"},{"line_number":88,"context_line":"  user. In case of a partial success, the locations added to the image"},{"line_number":89,"context_line":"  will be the stores where the data has been correctly uploaded/copied."},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_12e362da","line":87,"range":{"start_line":86,"start_character":62,"end_line":87,"end_character":9},"in_reply_to":"3fa7e38b_0cd7dfc2","updated":"2019-12-03 06:04:25.000000000","message":"Done","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"182013cf58e669bacafdfd72c0d2f01f99b3a6c5","unresolved":false,"context_lines":[{"line_number":167,"context_line":"Notifications impact"},{"line_number":168,"context_line":"--------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Notification will be logged for each of the successful copy of image."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Other end user impact"},{"line_number":173,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_acefab84","line":170,"range":{"start_line":170,"start_character":21,"end_line":170,"end_character":27},"updated":"2019-12-01 13:00:56.000000000","message":"not \"logged\" per se, \"sent\" would probably be more appropriate.","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4aa5c30b433eaf8a68c784a534ff1a2c8f19af7d","unresolved":false,"context_lines":[{"line_number":167,"context_line":"Notifications impact"},{"line_number":168,"context_line":"--------------------"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"Notification will be logged for each of the successful copy of image."},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"Other end user impact"},{"line_number":173,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_32e69ee9","line":170,"range":{"start_line":170,"start_character":21,"end_line":170,"end_character":27},"in_reply_to":"3fa7e38b_acefab84","updated":"2019-12-03 06:04:25.000000000","message":"Done","commit_id":"67aa4da4a54559b4634fdf7bca1c4db00d7391e2"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"6d0afc9a2734d7acdb88d34816839c65ba78b0a8","unresolved":false,"context_lines":[{"line_number":77,"context_line":"* If base image is deleted while copying the data to new stores, then the"},{"line_number":78,"context_line":"  copying process will be terminated and copied data will be removed as well."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* If `allow_failure` is set to \u0027false\u0027 (default behavior) and an error occurs"},{"line_number":81,"context_line":"  during copying data in at least one store, the request should be rejected,"},{"line_number":82,"context_line":"  the   data will be deleted, and the state of the image reinstated to"},{"line_number":83,"context_line":"  `Active`."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* If `allow_failure` is set to \u0027true\u0027, the request will fail (data"},{"line_number":86,"context_line":"  deleted, ...) only if the upload fails on all stores specified by the"},{"line_number":87,"context_line":"  user. In case of a partial success, the locations added to the image"},{"line_number":88,"context_line":"  will be the stores where the data has been correctly uploaded/copied."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* In case of failures or successful completion of copying/importing data"},{"line_number":91,"context_line":"  to specified stoes, image data from staging will be removed."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3fa7e38b_ae4094a4","line":88,"range":{"start_line":80,"start_character":0,"end_line":88,"end_character":71},"updated":"2020-01-06 13:02:17.000000000","message":"These needs to be updated according to the import to multipl stores spec as they key changed.","commit_id":"079ccffec8281be22715ce8ea4027918d058f8b5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"da58e04821ded7a8be32376cae32c2ae16e3b51c","unresolved":false,"context_lines":[{"line_number":77,"context_line":"* If base image is deleted while copying the data to new stores, then the"},{"line_number":78,"context_line":"  copying process will be terminated and copied data will be removed as well."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"* If `allow_failure` is set to \u0027false\u0027 (default behavior) and an error occurs"},{"line_number":81,"context_line":"  during copying data in at least one store, the request should be rejected,"},{"line_number":82,"context_line":"  the   data will be deleted, and the state of the image reinstated to"},{"line_number":83,"context_line":"  `Active`."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* If `allow_failure` is set to \u0027true\u0027, the request will fail (data"},{"line_number":86,"context_line":"  deleted, ...) only if the upload fails on all stores specified by the"},{"line_number":87,"context_line":"  user. In case of a partial success, the locations added to the image"},{"line_number":88,"context_line":"  will be the stores where the data has been correctly uploaded/copied."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"* In case of failures or successful completion of copying/importing data"},{"line_number":91,"context_line":"  to specified stoes, image data from staging will be removed."}],"source_content_type":"text/x-rst","patch_set":8,"id":"3fa7e38b_074adf22","line":88,"range":{"start_line":80,"start_character":0,"end_line":88,"end_character":71},"in_reply_to":"3fa7e38b_ae4094a4","updated":"2020-01-07 06:20:36.000000000","message":"Done","commit_id":"079ccffec8281be22715ce8ea4027918d058f8b5"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"6d0afc9a2734d7acdb88d34816839c65ba78b0a8","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Image locations will be updated each time an upload/copy in a store succeed"},{"line_number":108,"context_line":"(with information from this store)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Current location strategies modules should\u0027nt be affected by theses changes as"},{"line_number":111,"context_line":"we don\u0027t change the behavior of the image locations. It is currently possible"},{"line_number":112,"context_line":"to do the same by patching an image and specify a list of locations."},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3fa7e38b_4e32405f","line":110,"range":{"start_line":110,"start_character":36,"end_line":110,"end_character":45},"updated":"2020-01-06 13:02:17.000000000","message":"NIT: shouldn\u0027t","commit_id":"079ccffec8281be22715ce8ea4027918d058f8b5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"da58e04821ded7a8be32376cae32c2ae16e3b51c","unresolved":false,"context_lines":[{"line_number":107,"context_line":"Image locations will be updated each time an upload/copy in a store succeed"},{"line_number":108,"context_line":"(with information from this store)."},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"Current location strategies modules should\u0027nt be affected by theses changes as"},{"line_number":111,"context_line":"we don\u0027t change the behavior of the image locations. It is currently possible"},{"line_number":112,"context_line":"to do the same by patching an image and specify a list of locations."},{"line_number":113,"context_line":""}],"source_content_type":"text/x-rst","patch_set":8,"id":"3fa7e38b_6752b3dc","line":110,"range":{"start_line":110,"start_character":36,"end_line":110,"end_character":45},"in_reply_to":"3fa7e38b_4e32405f","updated":"2020-01-07 06:20:36.000000000","message":"Done","commit_id":"079ccffec8281be22715ce8ea4027918d058f8b5"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"6d0afc9a2734d7acdb88d34816839c65ba78b0a8","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"None"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Testing"},{"line_number":240,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Appropriate unit and functional tests to ensure the changes to glance function"},{"line_number":243,"context_line":"correctly."},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Documentation Impact"},{"line_number":246,"context_line":"\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":8,"id":"3fa7e38b_2e06e475","line":243,"range":{"start_line":239,"start_character":0,"end_line":243,"end_character":10},"updated":"2020-01-06 13:02:17.000000000","message":"The major testing item is to ensure that if the copy taskflow fails we delete the data only from the new stores, not from the stores we had the image already in and we do not change image status in this point either.","commit_id":"079ccffec8281be22715ce8ea4027918d058f8b5"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"da58e04821ded7a8be32376cae32c2ae16e3b51c","unresolved":false,"context_lines":[{"line_number":236,"context_line":""},{"line_number":237,"context_line":"None"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"Testing"},{"line_number":240,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"Appropriate unit and functional tests to ensure the changes to glance function"},{"line_number":243,"context_line":"correctly."},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Documentation Impact"},{"line_number":246,"context_line":"\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":8,"id":"3fa7e38b_e76543b1","line":243,"range":{"start_line":239,"start_character":0,"end_line":243,"end_character":10},"in_reply_to":"3fa7e38b_2e06e475","updated":"2020-01-07 06:20:36.000000000","message":"Done","commit_id":"079ccffec8281be22715ce8ea4027918d058f8b5"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4b097790bc1215d00854e8988468c9291b0e4741","unresolved":false,"context_lines":[{"line_number":110,"context_line":"Image locations will be updated each time an upload/copy in a store succeed"},{"line_number":111,"context_line":"(with information from this store)."},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"Current location strategies modules should not be affected by theses changes as"},{"line_number":114,"context_line":"we don\u0027t change the behavior of the image locations. It is currently possible"},{"line_number":115,"context_line":"to do the same by patching an image and specify a list of locations."},{"line_number":116,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_9156d7cc","line":113,"range":{"start_line":113,"start_character":62,"end_line":113,"end_character":68},"updated":"2020-01-09 22:44:45.000000000","message":"nit: \u0027these\u0027 (but don\u0027t bother to change unless you put up a new patch)","commit_id":"f84ef0e2de4196820b873b35f9fad2b290f83584"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4b097790bc1215d00854e8988468c9291b0e4741","unresolved":false,"context_lines":[{"line_number":142,"context_line":""},{"line_number":143,"context_line":"* Normal http response code: 202"},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"    * 202: `Accepted`"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"* Expected error http response codes: 400, 401, 404, 409, 410"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_7108fbd6","line":145,"range":{"start_line":145,"start_character":0,"end_line":145,"end_character":21},"updated":"2020-01-09 22:44:45.000000000","message":"Don\u0027t worry about this now, but when you look at the HTML rendering, this and the list at line 149 show up in a large font with a blockquote line next to them.  It\u0027s because you\u0027ve indented too far.  If you line the \u0027*\u0027 up with the \u0027N\u0027 on line 143, the list renders properly.  (Just telling you for the next time you write an openstack spec or docs.)","commit_id":"f84ef0e2de4196820b873b35f9fad2b290f83584"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"4b097790bc1215d00854e8988468c9291b0e4741","unresolved":false,"context_lines":[{"line_number":243,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"Appropriate unit and functional tests to ensure the changes to glance function"},{"line_number":246,"context_line":"correctly. The major testing item is to ensure that if the copy taskflow fails,"},{"line_number":247,"context_line":"data will be deleted only from the new stores, not from the stores where image"},{"line_number":248,"context_line":"is already in and image status does not change."},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"Documentation Impact"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_713a3b97","line":247,"range":{"start_line":246,"start_character":11,"end_line":247,"end_character":45},"updated":"2020-01-09 22:44:45.000000000","message":"Yes, this is very important.","commit_id":"f84ef0e2de4196820b873b35f9fad2b290f83584"}]}
