)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"cd00fe5287c46c87da1ca222db36c3069226c648","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Add vendor_passthru methods for virtual media"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add vendor_passthru methods to eject_vmedia and insert_vmedia for"},{"line_number":10,"context_line":"Redfish and idrac."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ib5ae16bacfd79f479a9aa8fbf69edc5cfdf73ce3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1f621f24_39ee678b","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":18},"updated":"2020-11-18 00:39:39.000000000","message":"More context would be helpful. Why is this needed? That could be provided here or in a StoryBoard story.","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"dd3da7d2108ad9c6870e6fa60b3d3a21c799970b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[WIP] Add vendor_passthru methods for virtual media"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add vendor_passthru methods to eject_vmedia and insert_vmedia for"},{"line_number":10,"context_line":"Redfish and idrac."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ib5ae16bacfd79f479a9aa8fbf69edc5cfdf73ce3"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fffc6b78_920e51e3","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":18},"in_reply_to":"1f621f24_39ee678b","updated":"2020-11-19 12:36:34.000000000","message":"Done","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"}],"ironic/drivers/modules/drac/vendor_passthru.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"643c12c95d81429c1aa4001c86f93b60517eaf23","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                    \"instead.\")"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"class DracRedfishVendorPassthru(base.VendorInterface):"},{"line_number":200,"context_line":"    \"\"\"Interface for DRAC Redfish specific methods.\"\"\""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_e079ddc4","line":199,"updated":"2020-11-17 15:03:24.000000000","message":"This is the same as RedfishVendorPassthru, just use it.","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"cd00fe5287c46c87da1ca222db36c3069226c648","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                    \"instead.\")"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"class DracRedfishVendorPassthru(base.VendorInterface):"},{"line_number":200,"context_line":"    \"\"\"Interface for DRAC Redfish specific methods.\"\"\""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_f9906ff0","line":199,"in_reply_to":"1f621f24_e079ddc4","updated":"2020-11-18 00:39:39.000000000","message":"I agree. Here is an example of the pattern the idrac driver has been following since it added Redfish support: https://github.com/openstack/ironic/blob/172b76f0f949c7f927f62b915d730d5d0364432a/ironic/drivers/modules/drac/bios.py#L42-L49.","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"dd3da7d2108ad9c6870e6fa60b3d3a21c799970b","unresolved":false,"context_lines":[{"line_number":196,"context_line":"                    \"instead.\")"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"class DracRedfishVendorPassthru(base.VendorInterface):"},{"line_number":200,"context_line":"    \"\"\"Interface for DRAC Redfish specific methods.\"\"\""},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_3264c5b9","line":199,"in_reply_to":"1f621f24_f9906ff0","updated":"2020-11-19 12:36:34.000000000","message":"Done","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"643c12c95d81429c1aa4001c86f93b60517eaf23","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    @base.passthru([\u0027POST\u0027],"},{"line_number":266,"context_line":"                   description\u003d_(\"Eject a virtual media device. \""},{"line_number":267,"context_line":"                                 \"Required arguments: \""},{"line_number":268,"context_line":"                                 \"\u0027boot_device\u0027 - the boot device to eject.\"))"},{"line_number":269,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":270,"context_line":"    def eject_vmedia(self, task, **kwargs):"},{"line_number":271,"context_line":"        \"\"\"Eject a virtual media device."}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_404ed196","line":268,"updated":"2020-11-17 15:03:24.000000000","message":"nit: maybe eject everything by default?\n\nalsp tjos meeds defining what boot device is (is this an ironic boot device?)","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"dd3da7d2108ad9c6870e6fa60b3d3a21c799970b","unresolved":false,"context_lines":[{"line_number":265,"context_line":"    @base.passthru([\u0027POST\u0027],"},{"line_number":266,"context_line":"                   description\u003d_(\"Eject a virtual media device. \""},{"line_number":267,"context_line":"                                 \"Required arguments: \""},{"line_number":268,"context_line":"                                 \"\u0027boot_device\u0027 - the boot device to eject.\"))"},{"line_number":269,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":270,"context_line":"    def eject_vmedia(self, task, **kwargs):"},{"line_number":271,"context_line":"        \"\"\"Eject a virtual media device."}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_725e4de7","line":268,"in_reply_to":"1f621f24_404ed196","updated":"2020-11-19 12:36:34.000000000","message":"Done","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"643c12c95d81429c1aa4001c86f93b60517eaf23","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        \"\"\""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        boot_device \u003d kwargs.get(\u0027boot_device\u0027)"},{"line_number":280,"context_line":"        redfish_boot._eject_vmedia(task, boot_device)"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    @METRICS.timer(\u0027DracRedfishVendorPassthru.insert_vmedia\u0027)"},{"line_number":283,"context_line":"    @base.passthru([\u0027POST\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_20511537","line":280,"updated":"2020-11-17 15:03:24.000000000","message":"the function should be renamed to get rid of the leading underscore (to designate it as public)","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"dd3da7d2108ad9c6870e6fa60b3d3a21c799970b","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        \"\"\""},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        boot_device \u003d kwargs.get(\u0027boot_device\u0027)"},{"line_number":280,"context_line":"        redfish_boot._eject_vmedia(task, boot_device)"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    @METRICS.timer(\u0027DracRedfishVendorPassthru.insert_vmedia\u0027)"},{"line_number":283,"context_line":"    @base.passthru([\u0027POST\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_d272997c","line":280,"in_reply_to":"1f621f24_20511537","updated":"2020-11-19 12:36:34.000000000","message":"Done","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"643c12c95d81429c1aa4001c86f93b60517eaf23","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    @base.passthru([\u0027POST\u0027],"},{"line_number":284,"context_line":"                   description\u003d_(\"Insert a bootable ISO image. \""},{"line_number":285,"context_line":"                                 \"Required arguments: \""},{"line_number":286,"context_line":"                                 \"\u0027boot_iso_href\u0027: URL to bootable ISO image \""},{"line_number":287,"context_line":"                                 \"\u0027boot_device\u0027: the boot device to insert.\"))"},{"line_number":288,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":289,"context_line":"    def insert_vmedia(self, task, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_80446975","line":286,"updated":"2020-11-17 15:03:24.000000000","message":"it\u0027s not necessary an ISO, you can insert any filesystem into a USB slot.","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"dd3da7d2108ad9c6870e6fa60b3d3a21c799970b","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    @base.passthru([\u0027POST\u0027],"},{"line_number":284,"context_line":"                   description\u003d_(\"Insert a bootable ISO image. \""},{"line_number":285,"context_line":"                                 \"Required arguments: \""},{"line_number":286,"context_line":"                                 \"\u0027boot_iso_href\u0027: URL to bootable ISO image \""},{"line_number":287,"context_line":"                                 \"\u0027boot_device\u0027: the boot device to insert.\"))"},{"line_number":288,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":289,"context_line":"    def insert_vmedia(self, task, **kwargs):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_5204e9c6","line":286,"in_reply_to":"1f621f24_80446975","updated":"2020-11-19 12:36:34.000000000","message":"Removed insert_vmedia method.","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"643c12c95d81429c1aa4001c86f93b60517eaf23","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                                 \"\u0027boot_device\u0027: the boot device to insert.\"))"},{"line_number":288,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":289,"context_line":"    def insert_vmedia(self, task, **kwargs):"},{"line_number":290,"context_line":"        \"\"\"Insert bootable ISO image into virtual CD or DVD"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        :param task: A TaskManager object."},{"line_number":293,"context_line":"        :param kwargs: The arguments sent with vendor passthru. The expected"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_60478d78","line":290,"updated":"2020-11-17 15:03:24.000000000","message":"ditto","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"}],"ironic/drivers/modules/redfish/vendor.py":[{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"cd00fe5287c46c87da1ca222db36c3069226c648","unresolved":false,"context_lines":[{"line_number":28,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class VendorPassthru(base.VendorInterface):"},{"line_number":32,"context_line":"    \"\"\"Vendor-specific interfaces for Redfish drivers.\"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_b9af172a","line":31,"range":{"start_line":31,"start_character":6,"end_line":31,"end_character":20},"updated":"2020-11-18 00:39:39.000000000","message":"nit: Consider renaming this RedfishVendorPassthru. More recent interface implementations have been following that naming approach, including all of the existing Redfish interfaces.","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"dd3da7d2108ad9c6870e6fa60b3d3a21c799970b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"METRICS \u003d metrics_utils.get_metrics_logger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class VendorPassthru(base.VendorInterface):"},{"line_number":32,"context_line":"    \"\"\"Vendor-specific interfaces for Redfish drivers.\"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_d2f739d4","line":31,"range":{"start_line":31,"start_character":6,"end_line":31,"end_character":20},"in_reply_to":"1f621f24_b9af172a","updated":"2020-11-19 12:36:34.000000000","message":"Done","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"cd00fe5287c46c87da1ca222db36c3069226c648","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                   description\u003d_(\"Eject a virtual media device. \""},{"line_number":99,"context_line":"                                 \"Required arguments: \""},{"line_number":100,"context_line":"                                 \"\u0027boot_device\u0027 - the boot device to eject.\"))"},{"line_number":101,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":102,"context_line":"    def eject_vmedia(self, task, **kwargs):"},{"line_number":103,"context_line":"        \"\"\"Eject a virtual media device."},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_392f87a8","line":101,"updated":"2020-11-18 00:39:39.000000000","message":"Does the @base.passthru() wrapper already handle this?","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"dd3da7d2108ad9c6870e6fa60b3d3a21c799970b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                   description\u003d_(\"Eject a virtual media device. \""},{"line_number":99,"context_line":"                                 \"Required arguments: \""},{"line_number":100,"context_line":"                                 \"\u0027boot_device\u0027 - the boot device to eject.\"))"},{"line_number":101,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":102,"context_line":"    def eject_vmedia(self, task, **kwargs):"},{"line_number":103,"context_line":"        \"\"\"Eject a virtual media device."},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_b2f435d1","line":101,"in_reply_to":"1f621f24_392f87a8","updated":"2020-11-19 12:36:34.000000000","message":"Done","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":23847,"name":"Richard G. Pioso","email":"richard.pioso@gmail.com","username":"richard.pioso"},"change_message_id":"cd00fe5287c46c87da1ca222db36c3069226c648","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                                 \"\u0027boot_iso_href\u0027: URL to bootable ISO image \""},{"line_number":119,"context_line":"                                 \"\u0027boot_device\u0027: the boot device to insert.\"))"},{"line_number":120,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":121,"context_line":"    def insert_vmedia(self, task, **kwargs):"},{"line_number":122,"context_line":"        \"\"\"Insert bootable ISO image into virtual CD or DVD"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        :param task: A TaskManager object."}],"source_content_type":"text/x-python","patch_set":1,"id":"1f621f24_7939fff0","line":121,"updated":"2020-11-18 00:39:39.000000000","message":"This method does not seem very useful for the iDRAC, because there is no ironic nor vendor-independent means of instructing the system to boot from the inserted media. The iDRAC treats the inserted media as a *virtual* CD/DVD or floppy.","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"dd3da7d2108ad9c6870e6fa60b3d3a21c799970b","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                                 \"\u0027boot_iso_href\u0027: URL to bootable ISO image \""},{"line_number":119,"context_line":"                                 \"\u0027boot_device\u0027: the boot device to insert.\"))"},{"line_number":120,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":121,"context_line":"    def insert_vmedia(self, task, **kwargs):"},{"line_number":122,"context_line":"        \"\"\"Insert bootable ISO image into virtual CD or DVD"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        :param task: A TaskManager object."}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_120261b5","line":121,"in_reply_to":"1f621f24_7939fff0","updated":"2020-11-19 12:36:34.000000000","message":"Removed.","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"0d7428ff9177ec7e6f8e44919b383d7bb647cca9","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                                 \"\u0027boot_iso_href\u0027: URL to bootable ISO image \""},{"line_number":119,"context_line":"                                 \"\u0027boot_device\u0027: the boot device to insert.\"))"},{"line_number":120,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":121,"context_line":"    def insert_vmedia(self, task, **kwargs):"},{"line_number":122,"context_line":"        \"\"\"Insert bootable ISO image into virtual CD or DVD"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        :param task: A TaskManager object."}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_f2f99d4d","line":121,"in_reply_to":"fffc6b78_120261b5","updated":"2020-11-19 13:21:10.000000000","message":"Cannot we set boot device to ISO via API and reboot? (I know it doesn\u0027t work for iDRAC, but should work for 100% compliant implementations)","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"c817d779d7f0aa76e3c67b6ffc4b9a0b98e4c75f","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                                 \"\u0027boot_iso_href\u0027: URL to bootable ISO image \""},{"line_number":119,"context_line":"                                 \"\u0027boot_device\u0027: the boot device to insert.\"))"},{"line_number":120,"context_line":"    @task_manager.require_exclusive_lock"},{"line_number":121,"context_line":"    def insert_vmedia(self, task, **kwargs):"},{"line_number":122,"context_line":"        \"\"\"Insert bootable ISO image into virtual CD or DVD"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        :param task: A TaskManager object."}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_6dd14e58","line":121,"in_reply_to":"fffc6b78_f2f99d4d","updated":"2020-11-19 13:39:53.000000000","message":"Per offline discussion, will test this and include insert_vmedia in a follow on patch if feasible.","commit_id":"7c59204d08c09970b768e55c6de5355346273c7d"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8317297ed6fb595f16167333b440b3a5bf8f74b8","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    @base.passthru([\u0027POST\u0027],"},{"line_number":74,"context_line":"                   description\u003d_(\"Eject a virtual media device. If no device \""},{"line_number":75,"context_line":"                                 \"is provided than all attached devices will \""},{"line_number":76,"context_line":"                                 \"be ejected.\""},{"line_number":77,"context_line":"                                 \"Optional arguments: \""},{"line_number":78,"context_line":"                                 \"\u0027boot_device\u0027 - the boot device to eject, \""},{"line_number":79,"context_line":"                                 \"either \u0027cd\u0027, \u0027dvd\u0027, \u0027usb\u0027, or \u0027floppy\u0027\"))"}],"source_content_type":"text/x-python","patch_set":4,"id":"e13f982f_ce002166","line":76,"updated":"2020-11-24 09:47:40.000000000","message":"nit: missing space after dot","commit_id":"b7ee496a0c98d1224acee432c5d56e0c7837b9a1"}],"ironic/tests/unit/drivers/modules/redfish/test_boot.py":[{"author":{"_account_id":27909,"name":"Aija Jauntēva","email":"code@clusums.eu","username":"ajya"},"change_message_id":"dc2fe97bc229eb2133e9c9a8ea98f8180eed9a59","unresolved":true,"context_lines":[{"line_number":857,"context_line":"            mock_vmedia_floppy.eject_media.assert_called_once_with()"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"    @mock.patch.object(redfish_boot, \u0027redfish_utils\u0027, autospec\u003dTrue)"},{"line_number":860,"context_line":"    def test__eject_vmedia_specific(self, mock_redfish_utils):"},{"line_number":861,"context_line":""},{"line_number":862,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":863,"context_line":"                                  shared\u003dTrue) as task:"}],"source_content_type":"text/x-python","patch_set":3,"id":"98ee3f6a_eb9d56a2","line":860,"range":{"start_line":860,"start_character":13,"end_line":860,"end_character":19},"updated":"2020-11-23 16:03:27.000000000","message":"nit: here and below change the method name too to start with \"test_eject_...\"","commit_id":"040eba34d2a73d53485422ca7bad9a4458406cd7"},{"author":{"_account_id":21909,"name":"Bob Fournier","email":"bfournie@redhat.com","username":"bfournie"},"change_message_id":"897e88c2f15ae08f90bb509c67dc928cb7eda574","unresolved":false,"context_lines":[{"line_number":857,"context_line":"            mock_vmedia_floppy.eject_media.assert_called_once_with()"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"    @mock.patch.object(redfish_boot, \u0027redfish_utils\u0027, autospec\u003dTrue)"},{"line_number":860,"context_line":"    def test__eject_vmedia_specific(self, mock_redfish_utils):"},{"line_number":861,"context_line":""},{"line_number":862,"context_line":"        with task_manager.acquire(self.context, self.node.uuid,"},{"line_number":863,"context_line":"                                  shared\u003dTrue) as task:"}],"source_content_type":"text/x-python","patch_set":3,"id":"faf0503d_32577465","line":860,"range":{"start_line":860,"start_character":13,"end_line":860,"end_character":19},"in_reply_to":"98ee3f6a_eb9d56a2","updated":"2020-11-23 17:31:44.000000000","message":"Done","commit_id":"040eba34d2a73d53485422ca7bad9a4458406cd7"}],"releasenotes/notes/vendor-passthru-eject-vmedia-e4456320ee1c70c1.yaml":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8317297ed6fb595f16167333b440b3a5bf8f74b8","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":"    Provide a new vendor passthru method for Redfish to eject a virtual_media"},{"line_number":5,"context_line":"    device.  A specific device can be given (either ``cd``, ``dvd``,"},{"line_number":6,"context_line":"    ``floppy``, or ``usb``), or if no device is provided then all attached"},{"line_number":7,"context_line":"    devices will be ejected."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7f151ba9_dcab3189","line":4,"updated":"2020-11-24 09:47:40.000000000","message":"nit: Provides","commit_id":"b7ee496a0c98d1224acee432c5d56e0c7837b9a1"}]}
