)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"af8a0deb5187e4d255901242ac3d5a5887a0537e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     jianghua wang \u003cjianghua.wang@citrix.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-08-24 10:19:49 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"XenAPI: image handler option improvement"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This commit\u0027s purpose is to:"},{"line_number":10,"context_line":"1. deprecate the option of image_upload_handler which need to be"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7f287b81_203ba79c","line":7,"range":{"start_line":7,"start_character":8,"end_line":7,"end_character":40},"updated":"2017-08-25 11:09:47.000000000","message":"Deprecate image handler class path option","commit_id":"295c3d7bfdb120eb7ab7097b1166117a08a12c3e"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"b69a63abb05fb8f5e0bd0a0f4bf1c7b2f66c9397","unresolved":false,"context_lines":[{"line_number":15,"context_line":"1. deprecate the option of \"image_upload_handler\"."},{"line_number":16,"context_line":"2. added a new option of \"image_handler\" which will be used to"},{"line_number":17,"context_line":"choose a short name for the supported image handler plugins."},{"line_number":18,"context_line":"3. As VdiThroughDevStore has only implemented the method fo"},{"line_number":19,"context_line":"image upload, let\u0027s implement the image download method by invoking"},{"line_number":20,"context_line":"the glance.GlanceStore.download_image(), so that it will preserves"},{"line_number":21,"context_line":"the existing behavior."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f287b81_faeaa4d5","line":18,"range":{"start_line":18,"start_character":57,"end_line":18,"end_character":59},"updated":"2017-08-29 12:24:53.000000000","message":"Typo - missing \"r\".","commit_id":"3c53e7b01569388da3cad975ad8913dc95b30190"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"b69a63abb05fb8f5e0bd0a0f4bf1c7b2f66c9397","unresolved":false,"context_lines":[{"line_number":16,"context_line":"2. added a new option of \"image_handler\" which will be used to"},{"line_number":17,"context_line":"choose a short name for the supported image handler plugins."},{"line_number":18,"context_line":"3. As VdiThroughDevStore has only implemented the method fo"},{"line_number":19,"context_line":"image upload, let\u0027s implement the image download method by invoking"},{"line_number":20,"context_line":"the glance.GlanceStore.download_image(), so that it will preserves"},{"line_number":21,"context_line":"the existing behavior."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7f287b81_1aee90ec","line":19,"range":{"start_line":19,"start_character":14,"end_line":19,"end_character":19},"updated":"2017-08-29 12:24:53.000000000","message":"Nit: Too informal - just delete \"let\u0027s\".","commit_id":"3c53e7b01569388da3cad975ad8913dc95b30190"}],"nova/conf/xenserver.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"af8a0deb5187e4d255901242ac3d5a5887a0537e","unresolved":false,"context_lines":[{"line_number":508,"context_line":"type is file system based e.g. ext, nfs."},{"line_number":509,"context_line":"* ``vdi_local_dev``: This plugin implements an image upload method which"},{"line_number":510,"context_line":"attaches the VDI as local disk in compute VM, creates an image from this"},{"line_number":511,"context_line":"disk and then upload image to glance. For download, it will use the default"},{"line_number":512,"context_line":"download method."},{"line_number":513,"context_line":"\"\"\"),"},{"line_number":514,"context_line":"]"},{"line_number":515,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f287b81_20d60751","line":512,"range":{"start_line":511,"start_character":52,"end_line":512,"end_character":15},"updated":"2017-08-25 11:09:47.000000000","message":"There is no \"default download method\" - say \"For download, this will use direct_vhd\"","commit_id":"295c3d7bfdb120eb7ab7097b1166117a08a12c3e"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ddf677529ed8aa4752e239434624c2988d4c58b4","unresolved":false,"context_lines":[{"line_number":451,"context_line":"    cfg.StrOpt(\u0027image_upload_handler\u0027,"},{"line_number":452,"context_line":"        default\u003d\u0027\u0027,"},{"line_number":453,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":454,"context_line":"        deprecated_since\u003d\u002717.0.0\u0027,"},{"line_number":455,"context_line":"        deprecated_reason\u003d\"\"\""},{"line_number":456,"context_line":"Instead of setting the class path at here, we will use short"},{"line_number":457,"context_line":"names to represent image handlers. And the download and upload"}],"source_content_type":"text/x-python","patch_set":5,"id":"1f9dbf25_9304827d","line":454,"updated":"2018-02-28 08:53:11.000000000","message":"This will need to be 18.0.0?","commit_id":"3b5da021ae231f460435083248416941917fd0ef"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"1cb6c61bf6dca1137cf5bc551d491a95b6cf7072","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":454,"context_line":"        deprecated_since\u003d\u002718.0.0\u0027,"},{"line_number":455,"context_line":"        deprecated_reason\u003d\"\"\""},{"line_number":456,"context_line":"Instead of setting the class path at here, we will use short"},{"line_number":457,"context_line":"names to represent image handlers. And the download and upload"},{"line_number":458,"context_line":"handler should be used in pairs. So another new option \"image_handler\""},{"line_number":459,"context_line":"will be used to set the short name for a specific image handler"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_085b082e","line":456,"range":{"start_line":456,"start_character":34,"end_line":456,"end_character":36},"updated":"2018-03-28 09:22:28.000000000","message":"\"at\" not required","commit_id":"0e322903c8fadcb384ec36f33e077b5f810e5d53"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"6d5ac5fb56249c1a8ac56045d6d1cb67e3ab7335","unresolved":false,"context_lines":[{"line_number":453,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":454,"context_line":"        deprecated_since\u003d\u002718.0.0\u0027,"},{"line_number":455,"context_line":"        deprecated_reason\u003d\"\"\""},{"line_number":456,"context_line":"Instead of setting the class path at here, we will use short"},{"line_number":457,"context_line":"names to represent image handlers. And the download and upload"},{"line_number":458,"context_line":"handler should be used in pairs. So another new option \"image_handler\""},{"line_number":459,"context_line":"will be used to set the short name for a specific image handler"}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_ab5dfe15","line":456,"range":{"start_line":456,"start_character":34,"end_line":456,"end_character":36},"in_reply_to":"bf659307_085b082e","updated":"2018-03-30 05:55:14.000000000","message":"Done","commit_id":"0e322903c8fadcb384ec36f33e077b5f810e5d53"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"1cb6c61bf6dca1137cf5bc551d491a95b6cf7072","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        deprecated_since\u003d\u002718.0.0\u0027,"},{"line_number":455,"context_line":"        deprecated_reason\u003d\"\"\""},{"line_number":456,"context_line":"Instead of setting the class path at here, we will use short"},{"line_number":457,"context_line":"names to represent image handlers. And the download and upload"},{"line_number":458,"context_line":"handler should be used in pairs. So another new option \"image_handler\""},{"line_number":459,"context_line":"will be used to set the short name for a specific image handler"},{"line_number":460,"context_line":"for both image download and upload."},{"line_number":461,"context_line":"\"\"\","}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_487a6088","line":458,"range":{"start_line":457,"start_character":35,"end_line":458,"end_character":31},"updated":"2018-03-28 09:22:28.000000000","message":"\"The download and upload handlers must also be matching","commit_id":"0e322903c8fadcb384ec36f33e077b5f810e5d53"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"6d5ac5fb56249c1a8ac56045d6d1cb67e3ab7335","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        deprecated_since\u003d\u002718.0.0\u0027,"},{"line_number":455,"context_line":"        deprecated_reason\u003d\"\"\""},{"line_number":456,"context_line":"Instead of setting the class path at here, we will use short"},{"line_number":457,"context_line":"names to represent image handlers. And the download and upload"},{"line_number":458,"context_line":"handler should be used in pairs. So another new option \"image_handler\""},{"line_number":459,"context_line":"will be used to set the short name for a specific image handler"},{"line_number":460,"context_line":"for both image download and upload."},{"line_number":461,"context_line":"\"\"\","}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_4b9c62bf","line":458,"range":{"start_line":457,"start_character":35,"end_line":458,"end_character":31},"in_reply_to":"bf659307_487a6088","updated":"2018-03-30 05:55:14.000000000","message":"Done","commit_id":"0e322903c8fadcb384ec36f33e077b5f810e5d53"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":481,"context_line":""},{"line_number":482,"context_line":"Description for the allowed values:"},{"line_number":483,"context_line":"* ``direct_vhd``: This plugin directly processes the VHD files in XenServer"},{"line_number":484,"context_line":"SR(Storage Repository). So this plugins only works when the host\u0027s SR"},{"line_number":485,"context_line":"type is file system based e.g. ext, nfs."},{"line_number":486,"context_line":"* ``vdi_local_dev``: This plugin implements an image handler which attaches"},{"line_number":487,"context_line":"the instance\u0027s VDI as a local disk to the compute VM. It uploads the raw disk"}],"source_content_type":"text/x-python","patch_set":15,"id":"9f6a8fd7_b3be21d2","line":484,"range":{"start_line":484,"start_character":32,"end_line":484,"end_character":39},"updated":"2018-05-01 19:34:09.000000000","message":"plugin","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":484,"context_line":"SR(Storage Repository). So this plugins only works when the host\u0027s SR"},{"line_number":485,"context_line":"type is file system based e.g. ext, nfs."},{"line_number":486,"context_line":"* ``vdi_local_dev``: This plugin implements an image handler which attaches"},{"line_number":487,"context_line":"the instance\u0027s VDI as a local disk to the compute VM. It uploads the raw disk"},{"line_number":488,"context_line":"to glance when create image from instance snapshot; and when booting an"},{"line_number":489,"context_line":"instance from an image, it downloads the image and stream it into the disk"},{"line_number":490,"context_line":"which is attached to the compute VM."}],"source_content_type":"text/x-python","patch_set":15,"id":"9f6a8fd7_f3c33956","line":487,"range":{"start_line":487,"start_character":50,"end_line":487,"end_character":52},"updated":"2018-05-01 19:34:09.000000000","message":"What do you mean by VM here? Should this be \"host\", as in, \"compute host\"?","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"caf97d017856dcfc7c4a1284f2c405e132d86749","unresolved":false,"context_lines":[{"line_number":484,"context_line":"SR(Storage Repository). So this plugins only works when the host\u0027s SR"},{"line_number":485,"context_line":"type is file system based e.g. ext, nfs."},{"line_number":486,"context_line":"* ``vdi_local_dev``: This plugin implements an image handler which attaches"},{"line_number":487,"context_line":"the instance\u0027s VDI as a local disk to the compute VM. It uploads the raw disk"},{"line_number":488,"context_line":"to glance when create image from instance snapshot; and when booting an"},{"line_number":489,"context_line":"instance from an image, it downloads the image and stream it into the disk"},{"line_number":490,"context_line":"which is attached to the compute VM."}],"source_content_type":"text/x-python","patch_set":15,"id":"5f7c97a3_01734d82","line":487,"range":{"start_line":487,"start_character":50,"end_line":487,"end_character":52},"in_reply_to":"9f6a8fd7_f3c33956","updated":"2018-05-03 10:43:35.000000000","message":"I will reword it. Here the VM is an virtual machine which nova compute service runs in. See: https://docs.openstack.org/nova/pike/admin/configuration/hypervisor-xen-api.html#privileged-and-unprivileged-domains","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":485,"context_line":"type is file system based e.g. ext, nfs."},{"line_number":486,"context_line":"* ``vdi_local_dev``: This plugin implements an image handler which attaches"},{"line_number":487,"context_line":"the instance\u0027s VDI as a local disk to the compute VM. It uploads the raw disk"},{"line_number":488,"context_line":"to glance when create image from instance snapshot; and when booting an"},{"line_number":489,"context_line":"instance from an image, it downloads the image and stream it into the disk"},{"line_number":490,"context_line":"which is attached to the compute VM."},{"line_number":491,"context_line":"\"\"\"),"}],"source_content_type":"text/x-python","patch_set":15,"id":"9f6a8fd7_53aa2585","line":488,"range":{"start_line":488,"start_character":50,"end_line":488,"end_character":57},"updated":"2018-05-01 19:34:09.000000000","message":". When","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":485,"context_line":"type is file system based e.g. ext, nfs."},{"line_number":486,"context_line":"* ``vdi_local_dev``: This plugin implements an image handler which attaches"},{"line_number":487,"context_line":"the instance\u0027s VDI as a local disk to the compute VM. It uploads the raw disk"},{"line_number":488,"context_line":"to glance when create image from instance snapshot; and when booting an"},{"line_number":489,"context_line":"instance from an image, it downloads the image and stream it into the disk"},{"line_number":490,"context_line":"which is attached to the compute VM."},{"line_number":491,"context_line":"\"\"\"),"}],"source_content_type":"text/x-python","patch_set":15,"id":"9f6a8fd7_b3a381b1","line":488,"range":{"start_line":488,"start_character":15,"end_line":488,"end_character":27},"updated":"2018-05-01 19:34:09.000000000","message":"creating the image","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":487,"context_line":"the instance\u0027s VDI as a local disk to the compute VM. It uploads the raw disk"},{"line_number":488,"context_line":"to glance when create image from instance snapshot; and when booting an"},{"line_number":489,"context_line":"instance from an image, it downloads the image and stream it into the disk"},{"line_number":490,"context_line":"which is attached to the compute VM."},{"line_number":491,"context_line":"\"\"\"),"},{"line_number":492,"context_line":"]"},{"line_number":493,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"9f6a8fd7_93a0bda7","line":490,"range":{"start_line":490,"start_character":33,"end_line":490,"end_character":35},"updated":"2018-05-01 19:34:09.000000000","message":"host?","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":449,"context_line":"\"\"\"),"},{"line_number":450,"context_line":"    # TODO(dharinic): Make this, a stevedore plugin"},{"line_number":451,"context_line":"    cfg.StrOpt(\u0027image_upload_handler\u0027,"},{"line_number":452,"context_line":"        default\u003d\u0027\u0027,"},{"line_number":453,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":454,"context_line":"        deprecated_since\u003d\u002718.0.0\u0027,"},{"line_number":455,"context_line":"        deprecated_reason\u003d\"\"\""}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_75c6496a","line":452,"range":{"start_line":452,"start_character":16,"end_line":452,"end_character":18},"updated":"2018-05-07 16:53:15.000000000","message":"note to self: changing this default is okay because the default of the new option will trigger the original default behavior.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2c15d8e28025022bb106e8311f571d6a6c6337d3","unresolved":false,"context_lines":[{"line_number":449,"context_line":"\"\"\"),"},{"line_number":450,"context_line":"    # TODO(dharinic): Make this, a stevedore plugin"},{"line_number":451,"context_line":"    cfg.StrOpt(\u0027image_upload_handler\u0027,"},{"line_number":452,"context_line":"        default\u003d\u0027\u0027,"},{"line_number":453,"context_line":"        deprecated_for_removal\u003dTrue,"},{"line_number":454,"context_line":"        deprecated_since\u003d\u002718.0.0\u0027,"},{"line_number":455,"context_line":"        deprecated_reason\u003d\"\"\""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_61c38b39","line":452,"updated":"2018-05-11 12:36:18.000000000","message":"Nit: we usually leave the default out here to get an empty default.","commit_id":"238b89b36ea73856aa54afeb9e1ea63ea90a9df7"}],"nova/tests/unit/virt/xenapi/test_vm_utils.py":[{"author":{"_account_id":26348,"name":"zhangchao","email":"zhang.chao@99cloud.net","username":"zhang.chao"},"change_message_id":"63d24e5c9f002c9f3af1c3757844b0c1d2a23a09","unresolved":false,"context_lines":[{"line_number":554,"context_line":"                         vm_utils._create_cached_image(\u0027context\u0027, self.session,"},{"line_number":555,"context_line":"                                    \u0027instance\u0027, \u0027name\u0027, \u0027uuid\u0027,"},{"line_number":556,"context_line":"                                    vm_utils.ImageType.DISK_VHD,"},{"line_number":557,"context_line":"                                    \u0027image_handler\u0027))"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"    @mock.patch.object(vm_utils, \u0027_safe_copy_vdi\u0027, return_value\u003d\u0027new_vdi_ref\u0027)"},{"line_number":560,"context_line":"    def test_no_cow(self, mock_safe_copy_vdi, mock_safe_find_sr):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9f6a8fd7_ffd7dcbd","line":557,"range":{"start_line":557,"start_character":0,"end_line":557,"end_character":36},"updated":"2018-04-26 06:19:35.000000000","message":"what mean?","commit_id":"5d7dfc5f3b4de1609cab7941f593d0a30fb426a2"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"18ff1980e74f1bc6d39968589e51903ecd8c7e9c","unresolved":false,"context_lines":[{"line_number":554,"context_line":"                         vm_utils._create_cached_image(\u0027context\u0027, self.session,"},{"line_number":555,"context_line":"                                    \u0027instance\u0027, \u0027name\u0027, \u0027uuid\u0027,"},{"line_number":556,"context_line":"                                    vm_utils.ImageType.DISK_VHD,"},{"line_number":557,"context_line":"                                    \u0027image_handler\u0027))"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"    @mock.patch.object(vm_utils, \u0027_safe_copy_vdi\u0027, return_value\u003d\u0027new_vdi_ref\u0027)"},{"line_number":560,"context_line":"    def test_no_cow(self, mock_safe_copy_vdi, mock_safe_find_sr):"}],"source_content_type":"text/x-python","patch_set":13,"id":"9f6a8fd7_7ac3daed","line":557,"range":{"start_line":557,"start_character":0,"end_line":557,"end_character":36},"in_reply_to":"9f6a8fd7_ffd7dcbd","updated":"2018-04-26 07:24:45.000000000","message":"the function of _create_cached_image now requires one additional parameter - image_handler. This test is only to verify this function can return the proper values basing on the xenapi calls\u0027s result.","commit_id":"5d7dfc5f3b4de1609cab7941f593d0a30fb426a2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        self.context.auth_token \u003d \u0027auth_token\u0027"},{"line_number":224,"context_line":"        self.session \u003d FakeSession()"},{"line_number":225,"context_line":"        self.instance \u003d {\"uuid\": \"uuid\"}"},{"line_number":226,"context_line":"        self.image_handler \u003d image_utils.get_default_image_handler()"},{"line_number":227,"context_line":"        self.flags(group\u003d\u0027glance\u0027, api_servers\u003d[\u0027http://localhost:9292\u0027])"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        make_uuid_stack_patcher \u003d mock.patch.object("}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_55e6ad46","line":226,"range":{"start_line":226,"start_character":41,"end_line":226,"end_character":68},"updated":"2018-05-07 16:53:15.000000000","message":"This is the only place I saw where get_default_image_handler is used.  If that\u0027s the case, I think you should use get_image_handler(CONF.xenserver.image_handler) instead, which should have the same effect due to the conf default, and then you can scrap the get_default_image_handler method entirely.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"fadc36ab3015bcc0104ec4252b5dd53d7cedd15e","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        self.context.auth_token \u003d \u0027auth_token\u0027"},{"line_number":224,"context_line":"        self.session \u003d FakeSession()"},{"line_number":225,"context_line":"        self.instance \u003d {\"uuid\": \"uuid\"}"},{"line_number":226,"context_line":"        self.image_handler \u003d image_utils.get_default_image_handler()"},{"line_number":227,"context_line":"        self.flags(group\u003d\u0027glance\u0027, api_servers\u003d[\u0027http://localhost:9292\u0027])"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        make_uuid_stack_patcher \u003d mock.patch.object("}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_42c1d12d","line":226,"range":{"start_line":226,"start_character":41,"end_line":226,"end_character":68},"in_reply_to":"5f7c97a3_55e6ad46","updated":"2018-05-10 02:19:43.000000000","message":"\u003e This is the only place I saw where get_default_image_handler is\n \u003e used.  If that\u0027s the case, I think you should use get_image_handler(CONF.xenserver.image_handler)\n \u003e instead, which should have the same effect due to the conf default,\n \u003e and then you can scrap the get_default_image_handler method\n \u003e entirely.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"fadc36ab3015bcc0104ec4252b5dd53d7cedd15e","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        self.context.auth_token \u003d \u0027auth_token\u0027"},{"line_number":224,"context_line":"        self.session \u003d FakeSession()"},{"line_number":225,"context_line":"        self.instance \u003d {\"uuid\": \"uuid\"}"},{"line_number":226,"context_line":"        self.image_handler \u003d image_utils.get_default_image_handler()"},{"line_number":227,"context_line":"        self.flags(group\u003d\u0027glance\u0027, api_servers\u003d[\u0027http://localhost:9292\u0027])"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        make_uuid_stack_patcher \u003d mock.patch.object("}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_bd9c885d","line":226,"range":{"start_line":226,"start_character":41,"end_line":226,"end_character":68},"in_reply_to":"5f7c97a3_55e6ad46","updated":"2018-05-10 02:19:43.000000000","message":"According to Bob\u0027s suggestion, we will set vdi_remote_stream as the default handler. Sorry to mislead you, Eric. \nBut your concern about setting conflict is right, I will modify then to vdi_remote_stream in the next patch: \nXenAPI: define a new image handler to use vdi streaming","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"bf0e728708f3bb9108dbf9341843537190721f2a","unresolved":false,"context_lines":[{"line_number":223,"context_line":"        self.context.auth_token \u003d \u0027auth_token\u0027"},{"line_number":224,"context_line":"        self.session \u003d FakeSession()"},{"line_number":225,"context_line":"        self.instance \u003d {\"uuid\": \"uuid\"}"},{"line_number":226,"context_line":"        self.image_handler \u003d image_utils.get_default_image_handler()"},{"line_number":227,"context_line":"        self.flags(group\u003d\u0027glance\u0027, api_servers\u003d[\u0027http://localhost:9292\u0027])"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        make_uuid_stack_patcher \u003d mock.patch.object("}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_27eba2b0","line":226,"range":{"start_line":226,"start_character":41,"end_line":226,"end_character":68},"in_reply_to":"5f7c97a3_55e6ad46","updated":"2018-05-09 03:15:19.000000000","message":"Will check it.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2c15d8e28025022bb106e8311f571d6a6c6337d3","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        self.session \u003d FakeSession()"},{"line_number":225,"context_line":"        self.instance \u003d {\"uuid\": \"uuid\"}"},{"line_number":226,"context_line":"        self.image_handler \u003d image_utils.get_image_handler("},{"line_number":227,"context_line":"            CONF.xenserver.image_handler)"},{"line_number":228,"context_line":"        self.flags(group\u003d\u0027glance\u0027, api_servers\u003d[\u0027http://localhost:9292\u0027])"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        make_uuid_stack_patcher \u003d mock.patch.object("}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_61f14b95","line":227,"updated":"2018-05-11 12:36:18.000000000","message":"Nit: Not sure I understand why this uses the config, I would prefer it were hard coded to the default.","commit_id":"238b89b36ea73856aa54afeb9e1ea63ea90a9df7"}],"nova/tests/unit/virt/xenapi/test_vmops.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"12c33b7d6ef3d303a94925d203af43d592b3af04","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        vmops \u003d self._vmops"},{"line_number":241,"context_line":"        with mock.patch.object(vmops, \u0027_get_vm_opaque_ref\u0027,"},{"line_number":242,"context_line":"                               return_value\u003d\u0027fake_ref\u0027) as mock_get_opa_ref:"},{"line_number":243,"context_line":"            vmops.image_upload_handler \u003d mock.Mock()"},{"line_number":244,"context_line":"            vmops.image_handler \u003d mock.Mock()"},{"line_number":245,"context_line":"            fake_instance \u003d {\u0027name\u0027: \u0027fake_name\u0027}"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"            vmops.snapshot(\u0027fake_ctx\u0027, fake_instance, \u0027fake_image_id\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"5f7c97a3_827fdb13","line":244,"range":{"start_line":243,"start_character":0,"end_line":244,"end_character":45},"updated":"2018-05-10 15:24:05.000000000","message":"Not quite.  I expected this test to use self.flags() to set the conf options, and let the code set up the upload/download handlers.","commit_id":"6faf361297b8f8c9b240c5e23467f90580d39e89"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"74ee9e0afbf6a16e0c889b13de268ca743ccd5d8","unresolved":false,"context_lines":[{"line_number":240,"context_line":"        vmops \u003d self._vmops"},{"line_number":241,"context_line":"        with mock.patch.object(vmops, \u0027_get_vm_opaque_ref\u0027,"},{"line_number":242,"context_line":"                               return_value\u003d\u0027fake_ref\u0027) as mock_get_opa_ref:"},{"line_number":243,"context_line":"            vmops.image_upload_handler \u003d mock.Mock()"},{"line_number":244,"context_line":"            vmops.image_handler \u003d mock.Mock()"},{"line_number":245,"context_line":"            fake_instance \u003d {\u0027name\u0027: \u0027fake_name\u0027}"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"            vmops.snapshot(\u0027fake_ctx\u0027, fake_instance, \u0027fake_image_id\u0027,"}],"source_content_type":"text/x-python","patch_set":21,"id":"5f7c97a3_e8cea5b2","line":244,"range":{"start_line":243,"start_character":0,"end_line":244,"end_character":45},"in_reply_to":"5f7c97a3_827fdb13","updated":"2018-05-11 01:40:52.000000000","message":"OK, will modify that.","commit_id":"6faf361297b8f8c9b240c5e23467f90580d39e89"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3cf74eb6a7cdca6d325e0f2a8950b05ece19c64b","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                                                 mock_delta_seconds,"},{"line_number":273,"context_line":"                                                 mock_snapshot_attached_here):"},{"line_number":274,"context_line":"        mock_utcnow.side_effect \u003d [\u0027fake_start\u0027, \u0027fake_end\u0027]"},{"line_number":275,"context_line":"        self.flags(image_upload_handler\u003d\u0027image_upload_handler\u0027,"},{"line_number":276,"context_line":"                   group\u003d\u0027xenserver\u0027)"},{"line_number":277,"context_line":"        mock_get_image_handler.return_value \u003d mock.Mock()"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        class FakeVdiUuid(object):"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_8f95ad35","line":276,"range":{"start_line":275,"start_character":8,"end_line":276,"end_character":37},"updated":"2018-05-11 14:41:08.000000000","message":"yup","commit_id":"238b89b36ea73856aa54afeb9e1ea63ea90a9df7"}],"nova/tests/unit/virt/xenapi/test_xenapi.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":295,"context_line":"                                   \u0027Dom0IptablesFirewallDriver\u0027)"},{"line_number":296,"context_line":"        self.flags(connection_url\u003d\u0027http://localhost\u0027,"},{"line_number":297,"context_line":"                   connection_password\u003d\u0027test_pass\u0027,"},{"line_number":298,"context_line":"                   image_handler\u003d\u0027direct_vhd\u0027,"},{"line_number":299,"context_line":"                   group\u003d\u0027xenserver\u0027)"},{"line_number":300,"context_line":"        db_fakes.stub_out_db_instance_api(self)"},{"line_number":301,"context_line":"        xenapi_fake.create_network(\u0027fake\u0027, \u0027fake_br1\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_7518891c","line":298,"range":{"start_line":298,"start_character":19,"end_line":298,"end_character":46},"updated":"2018-05-07 16:53:15.000000000","message":"This shouldn\u0027t be necessary, as it\u0027s the default.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"bf0e728708f3bb9108dbf9341843537190721f2a","unresolved":false,"context_lines":[{"line_number":295,"context_line":"                                   \u0027Dom0IptablesFirewallDriver\u0027)"},{"line_number":296,"context_line":"        self.flags(connection_url\u003d\u0027http://localhost\u0027,"},{"line_number":297,"context_line":"                   connection_password\u003d\u0027test_pass\u0027,"},{"line_number":298,"context_line":"                   image_handler\u003d\u0027direct_vhd\u0027,"},{"line_number":299,"context_line":"                   group\u003d\u0027xenserver\u0027)"},{"line_number":300,"context_line":"        db_fakes.stub_out_db_instance_api(self)"},{"line_number":301,"context_line":"        xenapi_fake.create_network(\u0027fake\u0027, \u0027fake_br1\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_a7d6d2f0","line":298,"range":{"start_line":298,"start_character":19,"end_line":298,"end_character":46},"in_reply_to":"5f7c97a3_7518891c","updated":"2018-05-09 03:15:19.000000000","message":"Will check it","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"}],"nova/virt/xenapi/image/utils.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":27,"context_line":"IMAGE_API \u003d image.API()"},{"line_number":28,"context_line":"IMAGE_HANDLERS \u003d {\u0027direct_vhd\u0027: \u0027glance.GlanceStore\u0027,"},{"line_number":29,"context_line":"                  \u0027vdi_local_dev\u0027: \u0027vdi_through_dev.VdiThroughDevStore\u0027}"},{"line_number":30,"context_line":"DEFAULT_IMAGE_HANDLER \u003d \u0027direct_vhd\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def get_default_image_handler():"},{"line_number":34,"context_line":"    return get_image_handler(DEFAULT_IMAGE_HANDLER)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def get_image_handler(handler_name):"},{"line_number":38,"context_line":"    if handler_name not in IMAGE_HANDLERS:"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_b5c2a184","line":35,"range":{"start_line":30,"start_character":0,"end_line":35,"end_character":0},"updated":"2018-05-07 16:53:15.000000000","message":"Nix this; no reason to duplicate defaulting logic from the conf setup.  (See comment in the test, which is the only place it\u0027s used afaict.)","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"7f16623e9a29b76cad952dd6d2d3bc98c99836cf","unresolved":false,"context_lines":[{"line_number":27,"context_line":"IMAGE_API \u003d image.API()"},{"line_number":28,"context_line":"IMAGE_HANDLERS \u003d {\u0027direct_vhd\u0027: \u0027glance.GlanceStore\u0027,"},{"line_number":29,"context_line":"                  \u0027vdi_local_dev\u0027: \u0027vdi_through_dev.VdiThroughDevStore\u0027}"},{"line_number":30,"context_line":"DEFAULT_IMAGE_HANDLER \u003d \u0027direct_vhd\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def get_default_image_handler():"},{"line_number":34,"context_line":"    return get_image_handler(DEFAULT_IMAGE_HANDLER)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def get_image_handler(handler_name):"},{"line_number":38,"context_line":"    if handler_name not in IMAGE_HANDLERS:"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_60789b29","line":35,"range":{"start_line":30,"start_character":0,"end_line":35,"end_character":0},"in_reply_to":"5f7c97a3_b5c2a184","updated":"2018-05-09 11:29:32.000000000","message":"Done","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"bf0e728708f3bb9108dbf9341843537190721f2a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"IMAGE_API \u003d image.API()"},{"line_number":28,"context_line":"IMAGE_HANDLERS \u003d {\u0027direct_vhd\u0027: \u0027glance.GlanceStore\u0027,"},{"line_number":29,"context_line":"                  \u0027vdi_local_dev\u0027: \u0027vdi_through_dev.VdiThroughDevStore\u0027}"},{"line_number":30,"context_line":"DEFAULT_IMAGE_HANDLER \u003d \u0027direct_vhd\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def get_default_image_handler():"},{"line_number":34,"context_line":"    return get_image_handler(DEFAULT_IMAGE_HANDLER)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def get_image_handler(handler_name):"},{"line_number":38,"context_line":"    if handler_name not in IMAGE_HANDLERS:"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_4707be83","line":35,"range":{"start_line":30,"start_character":0,"end_line":35,"end_character":0},"in_reply_to":"5f7c97a3_b5c2a184","updated":"2018-05-09 03:15:19.000000000","message":"Will check it, thanks, Eric","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def get_image_handler(handler_name):"},{"line_number":38,"context_line":"    if handler_name not in IMAGE_HANDLERS:"},{"line_number":39,"context_line":"        raise exception.NovaException(_(\"Error: not supported \""},{"line_number":40,"context_line":"                                        \"image_handler - [%s]\") % handler_name)"},{"line_number":41,"context_line":"    return importutils.import_object(\u0027nova.virt.xenapi.image.\u0027"},{"line_number":42,"context_line":"                                     \u0027%s\u0027 % IMAGE_HANDLERS[handler_name])"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_b547011e","line":39,"range":{"start_line":39,"start_character":24,"end_line":39,"end_character":37},"updated":"2018-05-07 16:53:15.000000000","message":"Consider a specific exception class for this.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def get_image_handler(handler_name):"},{"line_number":38,"context_line":"    if handler_name not in IMAGE_HANDLERS:"},{"line_number":39,"context_line":"        raise exception.NovaException(_(\"Error: not supported \""},{"line_number":40,"context_line":"                                        \"image_handler - [%s]\") % handler_name)"},{"line_number":41,"context_line":"    return importutils.import_object(\u0027nova.virt.xenapi.image.\u0027"},{"line_number":42,"context_line":"                                     \u0027%s\u0027 % IMAGE_HANDLERS[handler_name])"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_d5407d0a","line":39,"range":{"start_line":39,"start_character":48,"end_line":39,"end_character":61},"updated":"2018-05-07 16:53:15.000000000","message":"unsupported (or \"unrecognized\" or \"invalid\")","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"7f16623e9a29b76cad952dd6d2d3bc98c99836cf","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def get_image_handler(handler_name):"},{"line_number":38,"context_line":"    if handler_name not in IMAGE_HANDLERS:"},{"line_number":39,"context_line":"        raise exception.NovaException(_(\"Error: not supported \""},{"line_number":40,"context_line":"                                        \"image_handler - [%s]\") % handler_name)"},{"line_number":41,"context_line":"    return importutils.import_object(\u0027nova.virt.xenapi.image.\u0027"},{"line_number":42,"context_line":"                                     \u0027%s\u0027 % IMAGE_HANDLERS[handler_name])"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_40931f50","line":39,"range":{"start_line":39,"start_character":24,"end_line":39,"end_character":37},"in_reply_to":"5f7c97a3_b547011e","updated":"2018-05-09 11:29:32.000000000","message":"Done","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"bf0e728708f3bb9108dbf9341843537190721f2a","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def get_image_handler(handler_name):"},{"line_number":38,"context_line":"    if handler_name not in IMAGE_HANDLERS:"},{"line_number":39,"context_line":"        raise exception.NovaException(_(\"Error: not supported \""},{"line_number":40,"context_line":"                                        \"image_handler - [%s]\") % handler_name)"},{"line_number":41,"context_line":"    return importutils.import_object(\u0027nova.virt.xenapi.image.\u0027"},{"line_number":42,"context_line":"                                     \u0027%s\u0027 % IMAGE_HANDLERS[handler_name])"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_0701c66b","line":39,"range":{"start_line":39,"start_character":24,"end_line":39,"end_character":37},"in_reply_to":"5f7c97a3_b547011e","updated":"2018-05-09 03:15:19.000000000","message":"Will add a new exc","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"7f16623e9a29b76cad952dd6d2d3bc98c99836cf","unresolved":false,"context_lines":[{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def get_image_handler(handler_name):"},{"line_number":38,"context_line":"    if handler_name not in IMAGE_HANDLERS:"},{"line_number":39,"context_line":"        raise exception.NovaException(_(\"Error: not supported \""},{"line_number":40,"context_line":"                                        \"image_handler - [%s]\") % handler_name)"},{"line_number":41,"context_line":"    return importutils.import_object(\u0027nova.virt.xenapi.image.\u0027"},{"line_number":42,"context_line":"                                     \u0027%s\u0027 % IMAGE_HANDLERS[handler_name])"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_e0990b6e","line":39,"range":{"start_line":39,"start_character":48,"end_line":39,"end_character":61},"in_reply_to":"5f7c97a3_d5407d0a","updated":"2018-05-09 11:29:32.000000000","message":"Done","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"2c15d8e28025022bb106e8311f571d6a6c6337d3","unresolved":false,"context_lines":[{"line_number":24,"context_line":"_VDI_FORMAT_RAW \u003d 1"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"IMAGE_API \u003d image.API()"},{"line_number":27,"context_line":"IMAGE_HANDLERS \u003d {\u0027direct_vhd\u0027: \u0027glance.GlanceStore\u0027,"},{"line_number":28,"context_line":"                  \u0027vdi_local_dev\u0027: \u0027vdi_through_dev.VdiThroughDevStore\u0027}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_21083390","line":27,"updated":"2018-05-11 12:36:18.000000000","message":"Nit: I was expecting to see this in stevedoor, but I actually like it done this way.","commit_id":"238b89b36ea73856aa54afeb9e1ea63ea90a9df7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ed7e0848391553e40aeee543b0bf6e692f8362c5","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"IMAGE_API \u003d image.API()"},{"line_number":27,"context_line":"IMAGE_HANDLERS \u003d {\u0027direct_vhd\u0027: \u0027glance.GlanceStore\u0027,"},{"line_number":28,"context_line":"                  \u0027vdi_local_dev\u0027: \u0027vdi_through_dev.VdiThroughDevStore\u0027}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def get_image_handler(handler_name):"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_21c91325","line":28,"updated":"2018-05-11 12:41:18.000000000","message":"Sorry, I missed something here. We can\u0027t really add the ability to use this class yet, as it is added in the following patch. Need to make sure each patch works in isolation.\n\nHowever, I am not quite sure what the best split is here. Possibly just remove the ability to check vdi_local_dev, and add that the following patch.\n\nSorry if we all keep telling you different things here, I should read back in the comments on this one.","commit_id":"238b89b36ea73856aa54afeb9e1ea63ea90a9df7"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"d97320b4b773c661dc6ff4b043aff9729c0a3902","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"IMAGE_API \u003d image.API()"},{"line_number":27,"context_line":"IMAGE_HANDLERS \u003d {\u0027direct_vhd\u0027: \u0027glance.GlanceStore\u0027,"},{"line_number":28,"context_line":"                  \u0027vdi_local_dev\u0027: \u0027vdi_through_dev.VdiThroughDevStore\u0027}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def get_image_handler(handler_name):"}],"source_content_type":"text/x-python","patch_set":22,"id":"5f7c97a3_81f82749","line":28,"in_reply_to":"5f7c97a3_21c91325","updated":"2018-05-11 12:44:59.000000000","message":"oops, I see, that is stream, my bad.","commit_id":"238b89b36ea73856aa54afeb9e1ea63ea90a9df7"}],"nova/virt/xenapi/vm_utils.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":1395,"context_line":"    try:"},{"line_number":1396,"context_line":"        vdis \u003d image_handler.download_image("},{"line_number":1397,"context_line":"            context, session, instance, image_id)"},{"line_number":1398,"context_line":"    except Exception:"},{"line_number":1399,"context_line":"        raise"},{"line_number":1400,"context_line":""},{"line_number":1401,"context_line":"    # Ensure we can see the import VHDs as VDIs"},{"line_number":1402,"context_line":"    scan_default_sr(session)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_957d251e","line":1399,"range":{"start_line":1398,"start_character":0,"end_line":1399,"end_character":13},"updated":"2018-05-07 16:53:15.000000000","message":"[unrelated] This is redundant.\n\n try:\n     do_something()\n except Exception:\n     raise\n\nis equivalent to just\n\n do_something()\n\nunless I\u0027m really missing something.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"7f16623e9a29b76cad952dd6d2d3bc98c99836cf","unresolved":false,"context_lines":[{"line_number":1395,"context_line":"    try:"},{"line_number":1396,"context_line":"        vdis \u003d image_handler.download_image("},{"line_number":1397,"context_line":"            context, session, instance, image_id)"},{"line_number":1398,"context_line":"    except Exception:"},{"line_number":1399,"context_line":"        raise"},{"line_number":1400,"context_line":""},{"line_number":1401,"context_line":"    # Ensure we can see the import VHDs as VDIs"},{"line_number":1402,"context_line":"    scan_default_sr(session)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_a0fa3372","line":1399,"range":{"start_line":1398,"start_character":0,"end_line":1399,"end_character":13},"in_reply_to":"5f7c97a3_957d251e","updated":"2018-05-09 11:29:32.000000000","message":"Done","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"1cb6c61bf6dca1137cf5bc551d491a95b6cf7072","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        self.image_handler \u003d image_utils.get_image_handler(image_handler_cfg)"},{"line_number":158,"context_line":"        # TODO(jianghuaw): Remove these lines relative to the deprecated"},{"line_number":159,"context_line":"        # option of \"image_upload_handler\" in the next release."},{"line_number":160,"context_line":"        self.image_upload_handler \u003d None"},{"line_number":161,"context_line":"        image_upload_handler_cfg \u003d CONF.xenserver.image_upload_handler"},{"line_number":162,"context_line":"        if image_upload_handler_cfg:"},{"line_number":163,"context_line":"            LOG.debug(\"Deprecated: importing image upload handler: %s\","}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_8873984d","line":160,"range":{"start_line":160,"start_character":13,"end_line":160,"end_character":33},"updated":"2018-03-28 09:22:28.000000000","message":"Can we just use image_handler again?","commit_id":"0e322903c8fadcb384ec36f33e077b5f810e5d53"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"6d5ac5fb56249c1a8ac56045d6d1cb67e3ab7335","unresolved":false,"context_lines":[{"line_number":157,"context_line":"        self.image_handler \u003d image_utils.get_image_handler(image_handler_cfg)"},{"line_number":158,"context_line":"        # TODO(jianghuaw): Remove these lines relative to the deprecated"},{"line_number":159,"context_line":"        # option of \"image_upload_handler\" in the next release."},{"line_number":160,"context_line":"        self.image_upload_handler \u003d None"},{"line_number":161,"context_line":"        image_upload_handler_cfg \u003d CONF.xenserver.image_upload_handler"},{"line_number":162,"context_line":"        if image_upload_handler_cfg:"},{"line_number":163,"context_line":"            LOG.debug(\"Deprecated: importing image upload handler: %s\","}],"source_content_type":"text/x-python","patch_set":7,"id":"bf659307_4bbd42d6","line":160,"range":{"start_line":160,"start_character":13,"end_line":160,"end_character":33},"in_reply_to":"bf659307_8873984d","updated":"2018-03-30 05:55:14.000000000","message":"Yes, we can override the value of image_handler if the option of image_upload_handler is explicitly configured. But I\u0027d keep it is as I think it helps to clearly implicate that the imported image_upload_hanlder may only have upload function. So it won\u0027t be wrongly used and looks easier to remove the branches for image_upload_hanlder in the coming release.","commit_id":"0e322903c8fadcb384ec36f33e077b5f810e5d53"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b4adda395cd9745f888b20bdd9b06649ba94a9b7","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        LOG.debug(\"Using image handler: %s\", image_handler_cfg)"},{"line_number":156,"context_line":"        self.image_handler \u003d image_utils.get_image_handler(image_handler_cfg)"},{"line_number":157,"context_line":"        # TODO(jianghuaw): Remove these lines relative to the deprecated"},{"line_number":158,"context_line":"        # option of \"image_upload_handler\" in the next release."},{"line_number":159,"context_line":"        self.image_upload_handler \u003d None"},{"line_number":160,"context_line":"        image_upload_handler_cfg \u003d CONF.xenserver.image_upload_handler"},{"line_number":161,"context_line":"        if image_upload_handler_cfg:"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f6a8fd7_9c900551","line":158,"range":{"start_line":158,"start_character":50,"end_line":158,"end_character":62},"updated":"2018-04-27 16:52:51.000000000","message":"Should probably call out which release (Stein?) so readers know which release is okay to remove later on.","commit_id":"11b7a1aa44a9344d3e293d74fdb154a89ce692d3"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"d12a8e5b9a06f660ce7d363bd8e5a4ed08f1c4a2","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        LOG.debug(\"Using image handler: %s\", image_handler_cfg)"},{"line_number":156,"context_line":"        self.image_handler \u003d image_utils.get_image_handler(image_handler_cfg)"},{"line_number":157,"context_line":"        # TODO(jianghuaw): Remove these lines relative to the deprecated"},{"line_number":158,"context_line":"        # option of \"image_upload_handler\" in the next release."},{"line_number":159,"context_line":"        self.image_upload_handler \u003d None"},{"line_number":160,"context_line":"        image_upload_handler_cfg \u003d CONF.xenserver.image_upload_handler"},{"line_number":161,"context_line":"        if image_upload_handler_cfg:"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f6a8fd7_a6a36f00","line":158,"range":{"start_line":158,"start_character":50,"end_line":158,"end_character":62},"in_reply_to":"9f6a8fd7_9c900551","updated":"2018-04-28 09:11:57.000000000","message":"agreed. Thanks.","commit_id":"11b7a1aa44a9344d3e293d74fdb154a89ce692d3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b4adda395cd9745f888b20bdd9b06649ba94a9b7","unresolved":false,"context_lines":[{"line_number":1042,"context_line":"            if self.image_upload_handler:"},{"line_number":1043,"context_line":"                # TODO(jianghuaw): remove this branch once the"},{"line_number":1044,"context_line":"                # deprecated option of \"image_upload_handler\""},{"line_number":1045,"context_line":"                # gets removed in the next release."},{"line_number":1046,"context_line":"                self.image_upload_handler.upload_image(context,"},{"line_number":1047,"context_line":"                                                       self._session,"},{"line_number":1048,"context_line":"                                                       instance,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f6a8fd7_3c9d3966","line":1045,"range":{"start_line":1045,"start_character":38,"end_line":1045,"end_character":50},"updated":"2018-04-27 16:52:51.000000000","message":"Same","commit_id":"11b7a1aa44a9344d3e293d74fdb154a89ce692d3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self.default_root_dev \u003d \u0027/dev/sda\u0027"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        image_handler_cfg \u003d CONF.xenserver.image_handler"},{"line_number":155,"context_line":"        LOG.debug(\"Using image handler: %s\", image_handler_cfg)"},{"line_number":156,"context_line":"        self.image_handler \u003d image_utils.get_image_handler(image_handler_cfg)"},{"line_number":157,"context_line":"        # TODO(jianghuaw): Remove these lines relative to the deprecated"},{"line_number":158,"context_line":"        # option of \"image_upload_handler\" in the next release - Stein."}],"source_content_type":"text/x-python","patch_set":15,"id":"9f6a8fd7_5334654a","line":155,"range":{"start_line":155,"start_character":18,"end_line":155,"end_character":43},"updated":"2018-05-01 19:34:09.000000000","message":"This isn\u0027t necessarily true, right? Based on the code below, if CONF.xenserver.image_upload_handler is configured, it will be preferred over the image_handler and won\u0027t actually use the image_handler.\n\nIs there some reason why we don\u0027t do the usual thing where we prefer the new method and fall back on the old method if the new method can\u0027t be used? Does the user have to do something special first before the new image_handler will work for them? My concern is that if we prefer image_upload_handler if it\u0027s present, what will be the path for migrating a user to the new image_handler?","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":17920,"name":"Jianghua Wang","email":"jianghua.wang@citrix.com","username":"wjhfresh"},"change_message_id":"b9055c0e1bddbbdf1fa68ac4220b9a47a3d5cf4b","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self.default_root_dev \u003d \u0027/dev/sda\u0027"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        image_handler_cfg \u003d CONF.xenserver.image_handler"},{"line_number":155,"context_line":"        LOG.debug(\"Using image handler: %s\", image_handler_cfg)"},{"line_number":156,"context_line":"        self.image_handler \u003d image_utils.get_image_handler(image_handler_cfg)"},{"line_number":157,"context_line":"        # TODO(jianghuaw): Remove these lines relative to the deprecated"},{"line_number":158,"context_line":"        # option of \"image_upload_handler\" in the next release - Stein."}],"source_content_type":"text/x-python","patch_set":15,"id":"9f6a8fd7_84170b46","line":155,"range":{"start_line":155,"start_character":18,"end_line":155,"end_character":43},"in_reply_to":"9f6a8fd7_5334654a","updated":"2018-05-02 11:14:51.000000000","message":"The reason for this logic is that we only deprecate(not remove it) the option of image_upload_handler. If this option is explicitly configured (not the default one), I think we shouldn\u0027t change the behavior automatically but instead let administrators know of the deprecation and change to use the the new image_handler for an equivalent configuration.\n\ne.g. If it was configured to use *uploading ``tgz`` compressed raw disk images* by using the setting as;\nimage_upload_handler \u003d nova.virt.xenapi.image.vdi_through_dev.VdiThroughDevStore\n\nthen after upgrading to Rocky, it should continue behavior; but admins will see the deprecation warning to use image_handler. Then the new setting should be as:\n\nimage_handler \u003d vdi_local_dev","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":1039,"context_line":"                post_snapshot_callback\u003dupdate_task_state) as vdi_uuids:"},{"line_number":1040,"context_line":"            update_task_state(task_state\u003dtask_states.IMAGE_UPLOADING,"},{"line_number":1041,"context_line":"                              expected_state\u003dtask_states.IMAGE_PENDING_UPLOAD)"},{"line_number":1042,"context_line":"            if self.image_upload_handler:"},{"line_number":1043,"context_line":"                # TODO(jianghuaw): remove this branch once the"},{"line_number":1044,"context_line":"                # deprecated option of \"image_upload_handler\""},{"line_number":1045,"context_line":"                # gets removed in the next release - Stein."}],"source_content_type":"text/x-python","patch_set":15,"id":"9f6a8fd7_7337294f","line":1042,"updated":"2018-05-01 19:34:09.000000000","message":"Here, image_upload_handler is preferred if it is configured.","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self.default_root_dev \u003d \u0027/dev/sda\u0027"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        image_handler_cfg \u003d CONF.xenserver.image_handler"},{"line_number":155,"context_line":"        LOG.debug(\"CONF.xenserver.image_handler \u003d %s\", image_handler_cfg)"},{"line_number":156,"context_line":"        self.image_handler \u003d image_utils.get_image_handler(image_handler_cfg)"},{"line_number":157,"context_line":"        # TODO(jianghuaw): Remove these lines relative to the deprecated"},{"line_number":158,"context_line":"        # option of \"image_upload_handler\" in the next release - Stein."}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_1576f5a5","line":155,"range":{"start_line":155,"start_character":8,"end_line":155,"end_character":73},"updated":"2018-05-07 16:53:15.000000000","message":"This is unnecessary - already logged at compute startup.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"7f16623e9a29b76cad952dd6d2d3bc98c99836cf","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self.default_root_dev \u003d \u0027/dev/sda\u0027"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        image_handler_cfg \u003d CONF.xenserver.image_handler"},{"line_number":155,"context_line":"        LOG.debug(\"CONF.xenserver.image_handler \u003d %s\", image_handler_cfg)"},{"line_number":156,"context_line":"        self.image_handler \u003d image_utils.get_image_handler(image_handler_cfg)"},{"line_number":157,"context_line":"        # TODO(jianghuaw): Remove these lines relative to the deprecated"},{"line_number":158,"context_line":"        # option of \"image_upload_handler\" in the next release - Stein."}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_0039a73f","line":155,"range":{"start_line":155,"start_character":8,"end_line":155,"end_character":73},"in_reply_to":"5f7c97a3_1576f5a5","updated":"2018-05-09 11:29:32.000000000","message":"Done","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"bf0e728708f3bb9108dbf9341843537190721f2a","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self.default_root_dev \u003d \u0027/dev/sda\u0027"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        image_handler_cfg \u003d CONF.xenserver.image_handler"},{"line_number":155,"context_line":"        LOG.debug(\"CONF.xenserver.image_handler \u003d %s\", image_handler_cfg)"},{"line_number":156,"context_line":"        self.image_handler \u003d image_utils.get_image_handler(image_handler_cfg)"},{"line_number":157,"context_line":"        # TODO(jianghuaw): Remove these lines relative to the deprecated"},{"line_number":158,"context_line":"        # option of \"image_upload_handler\" in the next release - Stein."}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_c7faee73","line":155,"range":{"start_line":155,"start_character":8,"end_line":155,"end_character":73},"in_reply_to":"5f7c97a3_1576f5a5","updated":"2018-05-09 03:15:19.000000000","message":"Will remove it","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            # In order to avoid mis-using the default image_handler which"},{"line_number":165,"context_line":"            # may have different behavor than the explicitly configured"},{"line_number":166,"context_line":"            # handler, we keep using *image_upload_handler*."},{"line_number":167,"context_line":"            LOG.debug(\"Deprecated: importing image upload handler: %s\","},{"line_number":168,"context_line":"                      image_upload_handler_cfg)"},{"line_number":169,"context_line":"            self.image_upload_handler \u003d importutils.import_object("},{"line_number":170,"context_line":"                image_upload_handler_cfg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_35bd31b7","line":167,"range":{"start_line":167,"start_character":16,"end_line":167,"end_character":21},"updated":"2018-05-07 16:53:15.000000000","message":"This is just happening once, on startup, right?  May as well making this a warning.  Although a warning will already be logged from the deprecation of the conf option, so maybe this isn\u0027t necessary at all.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"7f16623e9a29b76cad952dd6d2d3bc98c99836cf","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            # In order to avoid mis-using the default image_handler which"},{"line_number":165,"context_line":"            # may have different behavor than the explicitly configured"},{"line_number":166,"context_line":"            # handler, we keep using *image_upload_handler*."},{"line_number":167,"context_line":"            LOG.debug(\"Deprecated: importing image upload handler: %s\","},{"line_number":168,"context_line":"                      image_upload_handler_cfg)"},{"line_number":169,"context_line":"            self.image_upload_handler \u003d importutils.import_object("},{"line_number":170,"context_line":"                image_upload_handler_cfg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_202ce300","line":167,"range":{"start_line":167,"start_character":16,"end_line":167,"end_character":21},"in_reply_to":"5f7c97a3_35bd31b7","updated":"2018-05-09 11:29:32.000000000","message":"Done","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"bf0e728708f3bb9108dbf9341843537190721f2a","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            # In order to avoid mis-using the default image_handler which"},{"line_number":165,"context_line":"            # may have different behavor than the explicitly configured"},{"line_number":166,"context_line":"            # handler, we keep using *image_upload_handler*."},{"line_number":167,"context_line":"            LOG.debug(\"Deprecated: importing image upload handler: %s\","},{"line_number":168,"context_line":"                      image_upload_handler_cfg)"},{"line_number":169,"context_line":"            self.image_upload_handler \u003d importutils.import_object("},{"line_number":170,"context_line":"                image_upload_handler_cfg)"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_87f4f687","line":167,"range":{"start_line":167,"start_character":16,"end_line":167,"end_character":21},"in_reply_to":"5f7c97a3_35bd31b7","updated":"2018-05-09 03:15:19.000000000","message":"Will check it.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"                post_snapshot_callback\u003dupdate_task_state) as vdi_uuids:"},{"line_number":1045,"context_line":"            update_task_state(task_state\u003dtask_states.IMAGE_UPLOADING,"},{"line_number":1046,"context_line":"                              expected_state\u003dtask_states.IMAGE_PENDING_UPLOAD)"},{"line_number":1047,"context_line":"            if self.image_upload_handler:"},{"line_number":1048,"context_line":"                # TODO(jianghuaw): remove this branch once the"},{"line_number":1049,"context_line":"                # deprecated option of \"image_upload_handler\""},{"line_number":1050,"context_line":"                # gets removed in the next release - Stein."},{"line_number":1051,"context_line":"                self.image_upload_handler.upload_image(context,"},{"line_number":1052,"context_line":"                                                       self._session,"},{"line_number":1053,"context_line":"                                                       instance,"},{"line_number":1054,"context_line":"                                                       image_id,"},{"line_number":1055,"context_line":"                                                       vdi_uuids,"},{"line_number":1056,"context_line":"                                                       )"},{"line_number":1057,"context_line":"            else:"},{"line_number":1058,"context_line":"                self.image_handler.upload_image(context,"},{"line_number":1059,"context_line":"                                                self._session,"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_95e68516","line":1056,"range":{"start_line":1047,"start_character":0,"end_line":1056,"end_character":56},"updated":"2018-05-07 16:53:15.000000000","message":"I didn\u0027t see a test for this condition.\n\n(Disclaimer: I didn\u0027t look through all the tests to see whether it\u0027s covered incidentally.)","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"75ed28154f4c2593211bfad6c56a13f6f54e94d3","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"                post_snapshot_callback\u003dupdate_task_state) as vdi_uuids:"},{"line_number":1045,"context_line":"            update_task_state(task_state\u003dtask_states.IMAGE_UPLOADING,"},{"line_number":1046,"context_line":"                              expected_state\u003dtask_states.IMAGE_PENDING_UPLOAD)"},{"line_number":1047,"context_line":"            if self.image_upload_handler:"},{"line_number":1048,"context_line":"                # TODO(jianghuaw): remove this branch once the"},{"line_number":1049,"context_line":"                # deprecated option of \"image_upload_handler\""},{"line_number":1050,"context_line":"                # gets removed in the next release - Stein."},{"line_number":1051,"context_line":"                self.image_upload_handler.upload_image(context,"},{"line_number":1052,"context_line":"                                                       self._session,"},{"line_number":1053,"context_line":"                                                       instance,"},{"line_number":1054,"context_line":"                                                       image_id,"},{"line_number":1055,"context_line":"                                                       vdi_uuids,"},{"line_number":1056,"context_line":"                                                       )"},{"line_number":1057,"context_line":"            else:"},{"line_number":1058,"context_line":"                self.image_handler.upload_image(context,"},{"line_number":1059,"context_line":"                                                self._session,"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_afdbfcea","line":1056,"range":{"start_line":1047,"start_character":0,"end_line":1056,"end_character":56},"in_reply_to":"5f7c97a3_6a5aba4f","updated":"2018-05-09 14:34:12.000000000","message":"The branch will be removed *later* after the deprecation period.  In the meantime, we need a test that proves that we use CONF.xenserver.image_upload_handler as opposed to the CONF.xenserver.image_handler for upload (but not download) when the former is specified in the conf.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"7f16623e9a29b76cad952dd6d2d3bc98c99836cf","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"                post_snapshot_callback\u003dupdate_task_state) as vdi_uuids:"},{"line_number":1045,"context_line":"            update_task_state(task_state\u003dtask_states.IMAGE_UPLOADING,"},{"line_number":1046,"context_line":"                              expected_state\u003dtask_states.IMAGE_PENDING_UPLOAD)"},{"line_number":1047,"context_line":"            if self.image_upload_handler:"},{"line_number":1048,"context_line":"                # TODO(jianghuaw): remove this branch once the"},{"line_number":1049,"context_line":"                # deprecated option of \"image_upload_handler\""},{"line_number":1050,"context_line":"                # gets removed in the next release - Stein."},{"line_number":1051,"context_line":"                self.image_upload_handler.upload_image(context,"},{"line_number":1052,"context_line":"                                                       self._session,"},{"line_number":1053,"context_line":"                                                       instance,"},{"line_number":1054,"context_line":"                                                       image_id,"},{"line_number":1055,"context_line":"                                                       vdi_uuids,"},{"line_number":1056,"context_line":"                                                       )"},{"line_number":1057,"context_line":"            else:"},{"line_number":1058,"context_line":"                self.image_handler.upload_image(context,"},{"line_number":1059,"context_line":"                                                self._session,"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_6a5aba4f","line":1056,"range":{"start_line":1047,"start_character":0,"end_line":1056,"end_character":56},"in_reply_to":"5f7c97a3_95e68516","updated":"2018-05-09 11:29:32.000000000","message":"Hi, Eric, according to Jianghua\u0027s comments, this branch would be removed, so I think it is OK to keep free from unit test, what\u0027s your opinion?","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"bf0e728708f3bb9108dbf9341843537190721f2a","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"                post_snapshot_callback\u003dupdate_task_state) as vdi_uuids:"},{"line_number":1045,"context_line":"            update_task_state(task_state\u003dtask_states.IMAGE_UPLOADING,"},{"line_number":1046,"context_line":"                              expected_state\u003dtask_states.IMAGE_PENDING_UPLOAD)"},{"line_number":1047,"context_line":"            if self.image_upload_handler:"},{"line_number":1048,"context_line":"                # TODO(jianghuaw): remove this branch once the"},{"line_number":1049,"context_line":"                # deprecated option of \"image_upload_handler\""},{"line_number":1050,"context_line":"                # gets removed in the next release - Stein."},{"line_number":1051,"context_line":"                self.image_upload_handler.upload_image(context,"},{"line_number":1052,"context_line":"                                                       self._session,"},{"line_number":1053,"context_line":"                                                       instance,"},{"line_number":1054,"context_line":"                                                       image_id,"},{"line_number":1055,"context_line":"                                                       vdi_uuids,"},{"line_number":1056,"context_line":"                                                       )"},{"line_number":1057,"context_line":"            else:"},{"line_number":1058,"context_line":"                self.image_handler.upload_image(context,"},{"line_number":1059,"context_line":"                                                self._session,"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_472c9e01","line":1056,"range":{"start_line":1047,"start_character":0,"end_line":1056,"end_character":56},"in_reply_to":"5f7c97a3_95e68516","updated":"2018-05-09 03:15:19.000000000","message":"Will add a test case if necessary","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"94bc09e4fe4a04d078aed815996e0bff0b2323cc","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"                post_snapshot_callback\u003dupdate_task_state) as vdi_uuids:"},{"line_number":1045,"context_line":"            update_task_state(task_state\u003dtask_states.IMAGE_UPLOADING,"},{"line_number":1046,"context_line":"                              expected_state\u003dtask_states.IMAGE_PENDING_UPLOAD)"},{"line_number":1047,"context_line":"            if self.image_upload_handler:"},{"line_number":1048,"context_line":"                # TODO(jianghuaw): remove this branch once the"},{"line_number":1049,"context_line":"                # deprecated option of \"image_upload_handler\""},{"line_number":1050,"context_line":"                # gets removed in the next release - Stein."},{"line_number":1051,"context_line":"                self.image_upload_handler.upload_image(context,"},{"line_number":1052,"context_line":"                                                       self._session,"},{"line_number":1053,"context_line":"                                                       instance,"},{"line_number":1054,"context_line":"                                                       image_id,"},{"line_number":1055,"context_line":"                                                       vdi_uuids,"},{"line_number":1056,"context_line":"                                                       )"},{"line_number":1057,"context_line":"            else:"},{"line_number":1058,"context_line":"                self.image_handler.upload_image(context,"},{"line_number":1059,"context_line":"                                                self._session,"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_ce8bc71c","line":1056,"range":{"start_line":1047,"start_character":0,"end_line":1056,"end_character":56},"in_reply_to":"5f7c97a3_afdbfcea","updated":"2018-05-10 07:38:57.000000000","message":"Done","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"fadc36ab3015bcc0104ec4252b5dd53d7cedd15e","unresolved":false,"context_lines":[{"line_number":1044,"context_line":"                post_snapshot_callback\u003dupdate_task_state) as vdi_uuids:"},{"line_number":1045,"context_line":"            update_task_state(task_state\u003dtask_states.IMAGE_UPLOADING,"},{"line_number":1046,"context_line":"                              expected_state\u003dtask_states.IMAGE_PENDING_UPLOAD)"},{"line_number":1047,"context_line":"            if self.image_upload_handler:"},{"line_number":1048,"context_line":"                # TODO(jianghuaw): remove this branch once the"},{"line_number":1049,"context_line":"                # deprecated option of \"image_upload_handler\""},{"line_number":1050,"context_line":"                # gets removed in the next release - Stein."},{"line_number":1051,"context_line":"                self.image_upload_handler.upload_image(context,"},{"line_number":1052,"context_line":"                                                       self._session,"},{"line_number":1053,"context_line":"                                                       instance,"},{"line_number":1054,"context_line":"                                                       image_id,"},{"line_number":1055,"context_line":"                                                       vdi_uuids,"},{"line_number":1056,"context_line":"                                                       )"},{"line_number":1057,"context_line":"            else:"},{"line_number":1058,"context_line":"                self.image_handler.upload_image(context,"},{"line_number":1059,"context_line":"                                                self._session,"}],"source_content_type":"text/x-python","patch_set":17,"id":"5f7c97a3_87c7fb45","line":1056,"range":{"start_line":1047,"start_character":0,"end_line":1056,"end_character":56},"in_reply_to":"5f7c97a3_afdbfcea","updated":"2018-05-10 02:19:43.000000000","message":"Thank you very much for the reminder, Eric. Will update it.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"}],"releasenotes/notes/xenapi-image-handler-7628a7221b7323e2.yaml":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    plugin which will be used to download or upload images. The value for"},{"line_number":6,"context_line":"    this option should be a short name representing a supported plugin."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    The following is the short names and description on the plugins which"},{"line_number":9,"context_line":"    they represent:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    * ``direct_vhd``"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9f6a8fd7_d376353f","line":8,"range":{"start_line":8,"start_character":18,"end_line":8,"end_character":20},"updated":"2018-05-01 19:34:09.000000000","message":"are","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    plugin which will be used to download or upload images. The value for"},{"line_number":6,"context_line":"    this option should be a short name representing a supported plugin."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    The following is the short names and description on the plugins which"},{"line_number":9,"context_line":"    they represent:"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    * ``direct_vhd``"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9f6a8fd7_739ba965","line":8,"range":{"start_line":8,"start_character":53,"end_line":8,"end_character":55},"updated":"2018-05-01 19:34:09.000000000","message":"of","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    * ``direct_vhd``"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"      This plugin directly processes the VHD files in XenServer SR(Storage"},{"line_number":14,"context_line":"      Repository). So this plugins only works when the host\u0027s SR type is"},{"line_number":15,"context_line":"      file system based e.g. ext, nfs.  This is the default plugin."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"    * ``vdi_local_dev``"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9f6a8fd7_339d3157","line":14,"range":{"start_line":14,"start_character":27,"end_line":14,"end_character":34},"updated":"2018-05-01 19:34:09.000000000","message":"plugin","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    * ``vdi_local_dev``"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"      This plugin implements an image upload method which attaches the VDI"},{"line_number":20,"context_line":"      as local disk in compute VM, creates an image from this disk and then"},{"line_number":21,"context_line":"      upload image to glance. For download, it will use the default download"},{"line_number":22,"context_line":"      method."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9f6a8fd7_93b75dd9","line":20,"range":{"start_line":20,"start_character":6,"end_line":20,"end_character":8},"updated":"2018-05-01 19:34:09.000000000","message":"as a","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    * ``vdi_local_dev``"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"      This plugin implements an image upload method which attaches the VDI"},{"line_number":20,"context_line":"      as local disk in compute VM, creates an image from this disk and then"},{"line_number":21,"context_line":"      upload image to glance. For download, it will use the default download"},{"line_number":22,"context_line":"      method."},{"line_number":23,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9f6a8fd7_d3ab9572","line":20,"range":{"start_line":20,"start_character":31,"end_line":20,"end_character":33},"updated":"2018-05-01 19:34:09.000000000","message":"host?","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b1061b4738204fda1c4010f26d10b63c83ffa8fe","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"      This plugin implements an image upload method which attaches the VDI"},{"line_number":20,"context_line":"      as local disk in compute VM, creates an image from this disk and then"},{"line_number":21,"context_line":"      upload image to glance. For download, it will use the default download"},{"line_number":22,"context_line":"      method."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"deprecations:"}],"source_content_type":"text/x-yaml","patch_set":15,"id":"9f6a8fd7_f3a6d9ab","line":21,"range":{"start_line":21,"start_character":6,"end_line":21,"end_character":12},"updated":"2018-05-01 19:34:09.000000000","message":"uploads the","commit_id":"79a959b02e775d385051f67da5fec6845c25d6d7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new option of ``image_handler`` for configuring the image handler"},{"line_number":5,"context_line":"    plugin which will be used to download or upload images. The value for"},{"line_number":6,"context_line":"    this option should be a short name representing a supported plugin."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":17,"id":"5f7c97a3_d5595dfe","line":4,"range":{"start_line":4,"start_character":23,"end_line":4,"end_character":42},"updated":"2018-05-07 16:53:15.000000000","message":"... in the ``xenapi`` section","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"7f16623e9a29b76cad952dd6d2d3bc98c99836cf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new option of ``image_handler`` for configuring the image handler"},{"line_number":5,"context_line":"    plugin which will be used to download or upload images. The value for"},{"line_number":6,"context_line":"    this option should be a short name representing a supported plugin."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":17,"id":"5f7c97a3_e06d8b04","line":4,"range":{"start_line":4,"start_character":23,"end_line":4,"end_character":42},"in_reply_to":"5f7c97a3_d5595dfe","updated":"2018-05-09 11:29:32.000000000","message":"Done","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"bf0e728708f3bb9108dbf9341843537190721f2a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new option of ``image_handler`` for configuring the image handler"},{"line_number":5,"context_line":"    plugin which will be used to download or upload images. The value for"},{"line_number":6,"context_line":"    this option should be a short name representing a supported plugin."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":17,"id":"5f7c97a3_672f5af6","line":4,"range":{"start_line":4,"start_character":23,"end_line":4,"end_character":42},"in_reply_to":"5f7c97a3_d5595dfe","updated":"2018-05-09 03:15:19.000000000","message":"Will modify it.","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new option of ``image_handler`` for configuring the image handler"},{"line_number":5,"context_line":"    plugin which will be used to download or upload images. The value for"},{"line_number":6,"context_line":"    this option should be a short name representing a supported plugin."},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    The following are the short names and description of the plugins which"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"5f7c97a3_b5706174","line":5,"range":{"start_line":5,"start_character":25,"end_line":5,"end_character":29},"updated":"2018-05-07 16:53:15.000000000","message":"...by Xenserver\n\n(or \"the Xenserver driver\", or however it is that you refer to the thing)","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    * ``vdi_local_dev``"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"      This plugin implements an image upload method which attaches the VDI"},{"line_number":20,"context_line":"      as a local disk in the VM where the OpenStack Compute service runs in."},{"line_number":21,"context_line":"      It uploads the raw disk to glance when creating image; When booting an"},{"line_number":22,"context_line":"      instance from a glance image, it downloads the image and streams it"},{"line_number":23,"context_line":"      into the disk which is attached to the compute VM."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"5f7c97a3_350a11d2","line":20,"range":{"start_line":20,"start_character":32,"end_line":20,"end_character":75},"updated":"2018-05-07 16:53:15.000000000","message":"\"in which the OpenStack Compute service runs.\"","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"      This plugin implements an image upload method which attaches the VDI"},{"line_number":20,"context_line":"      as a local disk in the VM where the OpenStack Compute service runs in."},{"line_number":21,"context_line":"      It uploads the raw disk to glance when creating image; When booting an"},{"line_number":22,"context_line":"      instance from a glance image, it downloads the image and streams it"},{"line_number":23,"context_line":"      into the disk which is attached to the compute VM."},{"line_number":24,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":17,"id":"5f7c97a3_95f8c5c4","line":21,"range":{"start_line":21,"start_character":45,"end_line":21,"end_character":59},"updated":"2018-05-07 16:53:15.000000000","message":"creating an/the image","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a91271b0587b3b1b9a39025e3ebe60911c4f0fd8","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"deprecations:"},{"line_number":26,"context_line":"  - |"},{"line_number":27,"context_line":"    The option of ``image_upload_handler`` in the section of ``xenserver``"},{"line_number":28,"context_line":"    has been deprecated. Please use the new option of ``image_handler`` to"},{"line_number":29,"context_line":"    configure the image handler which is used to download or upload images."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"5f7c97a3_d5271d64","line":27,"range":{"start_line":27,"start_character":8,"end_line":27,"end_character":73},"updated":"2018-05-07 16:53:15.000000000","message":"``image_upload_handler`` option in the ``xenserver`` conf section","commit_id":"9d97c89d2686b466adf8ba7f8d0982d6f9b00e4a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"75ed28154f4c2593211bfad6c56a13f6f54e94d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new option of ``image_handler`` in the ``xenapi`` sectionfor"},{"line_number":5,"context_line":"    configuring the image handler plugin which will be used by XenServer"},{"line_number":6,"context_line":"    to download or upload images. The value for this option should be a"},{"line_number":7,"context_line":"    short name representing a supported plugin."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"5f7c97a3_742ffda0","line":4,"range":{"start_line":4,"start_character":60,"end_line":4,"end_character":70},"updated":"2018-05-09 14:34:12.000000000","message":"section for","commit_id":"1e3423037d413a59814ae5ceb10bb6843fba1fd4"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"94bc09e4fe4a04d078aed815996e0bff0b2323cc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new option of ``image_handler`` in the ``xenapi`` sectionfor"},{"line_number":5,"context_line":"    configuring the image handler plugin which will be used by XenServer"},{"line_number":6,"context_line":"    to download or upload images. The value for this option should be a"},{"line_number":7,"context_line":"    short name representing a supported plugin."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"5f7c97a3_0e9c5f68","line":4,"range":{"start_line":4,"start_character":60,"end_line":4,"end_character":70},"in_reply_to":"5f7c97a3_742ffda0","updated":"2018-05-10 07:38:57.000000000","message":"Done","commit_id":"1e3423037d413a59814ae5ceb10bb6843fba1fd4"},{"author":{"_account_id":25638,"name":"Naichuan Sun","email":"naichuan.sun@citrix.com","username":"naichuans"},"change_message_id":"fadc36ab3015bcc0104ec4252b5dd53d7cedd15e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Add a new option of ``image_handler`` in the ``xenapi`` sectionfor"},{"line_number":5,"context_line":"    configuring the image handler plugin which will be used by XenServer"},{"line_number":6,"context_line":"    to download or upload images. The value for this option should be a"},{"line_number":7,"context_line":"    short name representing a supported plugin."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"5f7c97a3_c7a2d34b","line":4,"range":{"start_line":4,"start_character":60,"end_line":4,"end_character":70},"in_reply_to":"5f7c97a3_742ffda0","updated":"2018-05-10 02:19:43.000000000","message":"Sorry, My bad :[","commit_id":"1e3423037d413a59814ae5ceb10bb6843fba1fd4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"db8b42bd14ae06aca03e2d27066b5fd891de44fa","unresolved":false,"context_lines":[{"line_number":21,"context_line":"      as a local disk in the VM in which the OpenStack Compute service runs."},{"line_number":22,"context_line":"      It uploads the raw disk to glance when creating an image; When booting"},{"line_number":23,"context_line":"      an instance from a glance image, it downloads the image and streams it"},{"line_number":24,"context_line":"      into the disk which is attached to the compute VM."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"deprecations:"},{"line_number":27,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":22,"id":"5f7c97a3_01a2d74b","line":24,"updated":"2018-05-11 12:46:08.000000000","message":"Nit: yeah, ideally we would include the docs as eric mentioned, that go along with this, i.e.:\nhttps://review.openstack.org/#/c/486475/33/doc/source/admin/configuration/hypervisor-xen-api.rst@454","commit_id":"238b89b36ea73856aa54afeb9e1ea63ea90a9df7"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3cf74eb6a7cdca6d325e0f2a8950b05ece19c64b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"      as a local disk in the VM in which the OpenStack Compute service runs."},{"line_number":22,"context_line":"      It uploads the raw disk to glance when creating an image; When booting"},{"line_number":23,"context_line":"      an instance from a glance image, it downloads the image and streams it"},{"line_number":24,"context_line":"      into the disk which is attached to the compute VM."},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"deprecations:"},{"line_number":27,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":22,"id":"5f7c97a3_6fb931ca","line":24,"in_reply_to":"5f7c97a3_01a2d74b","updated":"2018-05-11 14:41:08.000000000","message":"Yeah; they\u0027re folded into the next patch at this point, which I think is probably good enough to move forward.","commit_id":"238b89b36ea73856aa54afeb9e1ea63ea90a9df7"}]}
