)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"75a10e7af16d7462bd7c43046f7444d35847b3a1","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add resize attached volume support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When cinder resizese a volume, it sends an event to nova. This event"},{"line_number":10,"context_line":"calls into the compute driver\u0027s \"extend_volume\" method. Calling the"},{"line_number":11,"context_line":"pypowervm rescan_vstor is all that is needed for our driver."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f515b1d_6602430c","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":20},"updated":"2017-10-03 21:23:07.000000000","message":"spelling","commit_id":"09037119f9ed69c31b365ab04c83e6e119cbefaa"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"de925d5cfb66649a905d93c10539aa3468a07bbd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add resize attached volume support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When cinder resizese a volume, it sends an event to nova. This event"},{"line_number":10,"context_line":"calls into the compute driver\u0027s \"extend_volume\" method. Calling the"},{"line_number":11,"context_line":"pypowervm rescan_vstor is all that is needed for our driver."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7f515b1d_812be980","line":9,"range":{"start_line":9,"start_character":12,"end_line":9,"end_character":20},"in_reply_to":"7f515b1d_6602430c","updated":"2017-10-03 21:57:53.000000000","message":"Done","commit_id":"09037119f9ed69c31b365ab04c83e6e119cbefaa"}],"doc/source/support-matrix.ini":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"75a10e7af16d7462bd7c43046f7444d35847b3a1","unresolved":false,"context_lines":[{"line_number":85,"context_line":"cli\u003d"},{"line_number":86,"context_line":"driver-impl-powervm\u003dcomplete"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[operation.extend-volume]"},{"line_number":89,"context_line":"title\u003dExtend block volume attached to instance"},{"line_number":90,"context_line":"status\u003doptional"},{"line_number":91,"context_line":"notes\u003dThe extend volume operation provides a means to extend"}],"source_content_type":"text/x-properties","patch_set":6,"id":"7f515b1d_66792392","line":88,"updated":"2017-10-03 21:23:07.000000000","message":"nova puts this after detach-volume. Let\u0027s do the same.","commit_id":"09037119f9ed69c31b365ab04c83e6e119cbefaa"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"de925d5cfb66649a905d93c10539aa3468a07bbd","unresolved":false,"context_lines":[{"line_number":85,"context_line":"cli\u003d"},{"line_number":86,"context_line":"driver-impl-powervm\u003dcomplete"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"[operation.extend-volume]"},{"line_number":89,"context_line":"title\u003dExtend block volume attached to instance"},{"line_number":90,"context_line":"status\u003doptional"},{"line_number":91,"context_line":"notes\u003dThe extend volume operation provides a means to extend"}],"source_content_type":"text/x-properties","patch_set":6,"id":"7f515b1d_26b56bce","line":88,"in_reply_to":"7f515b1d_66792392","updated":"2017-10-03 21:57:53.000000000","message":"Done","commit_id":"09037119f9ed69c31b365ab04c83e6e119cbefaa"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"75a10e7af16d7462bd7c43046f7444d35847b3a1","unresolved":false,"context_lines":[{"line_number":96,"context_line":"  extend the size of an attached volume is for those cases"},{"line_number":97,"context_line":"  where the instance is considered to be more of a pet than cattle."},{"line_number":98,"context_line":"  Therefore this operation is not considered to be mandatory to support."},{"line_number":99,"context_line":"cli\u003d"},{"line_number":100,"context_line":"driver-impl-powervm\u003dpartial"},{"line_number":101,"context_line":"driver-notes-powervm\u003dExtend volume only supported for iSCSI volumes."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-properties","patch_set":6,"id":"7f515b1d_669ec3b9","line":99,"updated":"2017-10-03 21:23:07.000000000","message":"nova shows the cli as \"cinder extend \u003cvolume\u003e \u003cnew_size\u003e\"","commit_id":"09037119f9ed69c31b365ab04c83e6e119cbefaa"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"de925d5cfb66649a905d93c10539aa3468a07bbd","unresolved":false,"context_lines":[{"line_number":96,"context_line":"  extend the size of an attached volume is for those cases"},{"line_number":97,"context_line":"  where the instance is considered to be more of a pet than cattle."},{"line_number":98,"context_line":"  Therefore this operation is not considered to be mandatory to support."},{"line_number":99,"context_line":"cli\u003d"},{"line_number":100,"context_line":"driver-impl-powervm\u003dpartial"},{"line_number":101,"context_line":"driver-notes-powervm\u003dExtend volume only supported for iSCSI volumes."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-properties","patch_set":6,"id":"7f515b1d_66092394","line":99,"in_reply_to":"7f515b1d_669ec3b9","updated":"2017-10-03 21:57:53.000000000","message":"Done","commit_id":"09037119f9ed69c31b365ab04c83e6e119cbefaa"},{"author":{"_account_id":14532,"name":"Gerald McBrearty","email":"gfm@us.ibm.com","username":"gfm"},"change_message_id":"4ae9ce73ff5990586754cac8faa1a4cf67c343b9","unresolved":false,"context_lines":[{"line_number":96,"context_line":"  extend the size of an attached volume is for those cases"},{"line_number":97,"context_line":"  where the instance is considered to be more of a pet than cattle."},{"line_number":98,"context_line":"  Therefore this operation is not considered to be mandatory to support."},{"line_number":99,"context_line":"cli\u003d"},{"line_number":100,"context_line":"driver-impl-powervm\u003dpartial"},{"line_number":101,"context_line":"driver-notes-powervm\u003dExtend volume only supported for iSCSI volumes."},{"line_number":102,"context_line":""}],"source_content_type":"text/x-properties","patch_set":6,"id":"7f515b1d_e6cbd347","line":99,"in_reply_to":"7f515b1d_669ec3b9","updated":"2017-10-03 21:30:04.000000000","message":"that is correct.","commit_id":"09037119f9ed69c31b365ab04c83e6e119cbefaa"}],"nova_powervm/tests/virt/powervm/volume/test_iscsi.py":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"50c2c0be9bd35d45f75bb57d31da6d961283c765","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    @mock.patch(\u0027pypowervm.tasks.storage.rescan_vstor\u0027, autospec\u003dTrue)"},{"line_number":130,"context_line":"    def test_extend_volume(self, mock_rescan):"},{"line_number":131,"context_line":"        self.vol_drv._set_udid(\"vstor_uuid\")"},{"line_number":132,"context_line":"        self.vol_drv.extend_volume()"},{"line_number":133,"context_line":"        mock_rescan.assert_called_once_with(self.vol_drv.vios_uuids[0],"},{"line_number":134,"context_line":"                                            \"vstor_uuid\", self.adpt)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff5d4b2f_cc8d8d7c","line":131,"updated":"2017-09-19 16:21:04.000000000","message":"add a test where _get_udid will return None","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"f516d24e41e755f5a44e289cd73d927cfde403f5","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    @mock.patch(\u0027pypowervm.tasks.storage.rescan_vstor\u0027, autospec\u003dTrue)"},{"line_number":130,"context_line":"    def test_extend_volume(self, mock_rescan):"},{"line_number":131,"context_line":"        self.vol_drv._set_udid(\"vstor_uuid\")"},{"line_number":132,"context_line":"        self.vol_drv.extend_volume()"},{"line_number":133,"context_line":"        mock_rescan.assert_called_once_with(self.vol_drv.vios_uuids[0],"},{"line_number":134,"context_line":"                                            \"vstor_uuid\", self.adpt)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_4aeeb3ed","line":131,"in_reply_to":"ff5d4b2f_cc8d8d7c","updated":"2017-09-27 05:18:32.000000000","message":"Done","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"50c2c0be9bd35d45f75bb57d31da6d961283c765","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    @mock.patch(\u0027pypowervm.tasks.storage.rescan_vstor\u0027, autospec\u003dTrue)"},{"line_number":130,"context_line":"    def test_extend_volume(self, mock_rescan):"},{"line_number":131,"context_line":"        self.vol_drv._set_udid(\"vstor_uuid\")"},{"line_number":132,"context_line":"        self.vol_drv.extend_volume()"},{"line_number":133,"context_line":"        mock_rescan.assert_called_once_with(self.vol_drv.vios_uuids[0],"},{"line_number":134,"context_line":"                                            \"vstor_uuid\", self.adpt)"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ff5d4b2f_4c5e3de7","line":132,"updated":"2017-09-19 16:21:04.000000000","message":"add tests where rescan_vstor raises the different exceptions we need to expect and handle.","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"f516d24e41e755f5a44e289cd73d927cfde403f5","unresolved":false,"context_lines":[{"line_number":129,"context_line":"    @mock.patch(\u0027pypowervm.tasks.storage.rescan_vstor\u0027, autospec\u003dTrue)"},{"line_number":130,"context_line":"    def test_extend_volume(self, mock_rescan):"},{"line_number":131,"context_line":"        self.vol_drv._set_udid(\"vstor_uuid\")"},{"line_number":132,"context_line":"        self.vol_drv.extend_volume()"},{"line_number":133,"context_line":"        mock_rescan.assert_called_once_with(self.vol_drv.vios_uuids[0],"},{"line_number":134,"context_line":"                                            \"vstor_uuid\", self.adpt)"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_2aeb77dc","line":132,"in_reply_to":"ff5d4b2f_4c5e3de7","updated":"2017-09-27 05:18:32.000000000","message":"Done","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a61d5d5c3d6230a5c5a6969773a7cc8e54f0d34b","unresolved":false,"context_lines":[{"line_number":130,"context_line":"            self.adpt, self.host_ip, self.user, self.password, self.iqn,"},{"line_number":131,"context_line":"            self.feed[0].uuid, transport_type\u003dself.trans_type)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @mock.patch(\u0027pypowervm.tasks.storage.rescan_vstor\u0027, autospec\u003dTrue)"},{"line_number":134,"context_line":"    def test_extend_volume(self, mock_rescan):"},{"line_number":135,"context_line":"        self.vol_drv._set_udid(\"vstor_uuid\")"},{"line_number":136,"context_line":"        self.vol_drv.extend_volume()"}],"source_content_type":"text/x-python","patch_set":12,"id":"1f485f77_84fe00ac","line":133,"updated":"2017-11-14 19:07:06.000000000","message":"Okay, HERE add another test case for multiple VIOSes","commit_id":"51e56c5f686b5bbc35e5bddb7545d50349a02965"}],"nova_powervm/virt/powervm/driver.py":[{"author":{"_account_id":14532,"name":"Gerald McBrearty","email":"gfm@us.ibm.com","username":"gfm"},"change_message_id":"8f769eb94862c7b8f960c310c6cad26e5d2f2f87","unresolved":false,"context_lines":[{"line_number":745,"context_line":"        # to revise in the future as volume connectors evolve."},{"line_number":746,"context_line":"        instance.save()"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"    def extend_volume(self, connection_info, instance):"},{"line_number":749,"context_line":"        vol_drv \u003d vol_attach.build_volume_driver("},{"line_number":750,"context_line":"            self.adapter, self.host_uuid, instance, connection_info)"},{"line_number":751,"context_line":"        vol_drv.extend_volume()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff5d4b2f_6dcb3ba5","line":748,"updated":"2017-09-19 18:36:47.000000000","message":"a comment here would be greate","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"f516d24e41e755f5a44e289cd73d927cfde403f5","unresolved":false,"context_lines":[{"line_number":745,"context_line":"        # to revise in the future as volume connectors evolve."},{"line_number":746,"context_line":"        instance.save()"},{"line_number":747,"context_line":""},{"line_number":748,"context_line":"    def extend_volume(self, connection_info, instance):"},{"line_number":749,"context_line":"        vol_drv \u003d vol_attach.build_volume_driver("},{"line_number":750,"context_line":"            self.adapter, self.host_uuid, instance, connection_info)"},{"line_number":751,"context_line":"        vol_drv.extend_volume()"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_df7f07de","line":748,"in_reply_to":"ff5d4b2f_6dcb3ba5","updated":"2017-09-27 05:18:32.000000000","message":"Done","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0427cbc6eaea587bc47bea181b820d31b3f179a","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        \"supports_migrate_to_same_host\": False,"},{"line_number":96,"context_line":"        \"supports_attach_interface\": True,"},{"line_number":97,"context_line":"        \"supports_device_tagging\": False,"},{"line_number":98,"context_line":"        \"supports_extend_volume\": True"},{"line_number":99,"context_line":"    }"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def __init__(self, virtapi):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_13cea82d","line":98,"range":{"start_line":98,"start_character":9,"end_line":98,"end_character":31},"updated":"2017-09-27 15:31:16.000000000","message":"Also need to update the operation.extend-volume section of the support matrix (doc/source/user/support-matrix.ini).","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"e30c789898759354907b8bac7519986fba127e8c","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        \"supports_migrate_to_same_host\": False,"},{"line_number":96,"context_line":"        \"supports_attach_interface\": True,"},{"line_number":97,"context_line":"        \"supports_device_tagging\": False,"},{"line_number":98,"context_line":"        \"supports_extend_volume\": True"},{"line_number":99,"context_line":"    }"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def __init__(self, virtapi):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_5eeb07db","line":98,"range":{"start_line":98,"start_character":9,"end_line":98,"end_character":31},"in_reply_to":"7f515b1d_13cea82d","updated":"2017-09-27 16:22:49.000000000","message":"Done","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0427cbc6eaea587bc47bea181b820d31b3f179a","unresolved":false,"context_lines":[{"line_number":748,"context_line":"    def extend_volume(self, connection_info, instance):"},{"line_number":749,"context_line":"        \"\"\"Resize an attached volume\"\"\""},{"line_number":750,"context_line":"        vol_drv \u003d vol_attach.build_volume_driver("},{"line_number":751,"context_line":"            self.adapter, self.host_uuid, instance, connection_info)"},{"line_number":752,"context_line":"        vol_drv.extend_volume()"},{"line_number":753,"context_line":""},{"line_number":754,"context_line":"    def detach_volume(self, connection_info, instance, mountpoint,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_3365241f","line":751,"range":{"start_line":751,"start_character":26,"end_line":751,"end_character":40},"updated":"2017-09-27 15:31:16.000000000","message":"Let\u0027s get rid of host_uuid (separate change set)","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"}],"nova_powervm/virt/powervm/exception.py":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"75a10e7af16d7462bd7c43046f7444d35847b3a1","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class VolumeExtendFailed(nex.NovaException):"},{"line_number":105,"context_line":"    msg_fmt \u003d _(\"Unable to extend volume (id: %(volume_id)s) on any VIOS\")"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"class VolumeDetachFailed(nex.NovaException):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_86353fab","line":105,"updated":"2017-10-03 21:23:07.000000000","message":"would be nice to give the VM name here, similar to attach/detach failures.","commit_id":"09037119f9ed69c31b365ab04c83e6e119cbefaa"},{"author":{"_account_id":14532,"name":"Gerald McBrearty","email":"gfm@us.ibm.com","username":"gfm"},"change_message_id":"4ae9ce73ff5990586754cac8faa1a4cf67c343b9","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class VolumeExtendFailed(nex.NovaException):"},{"line_number":105,"context_line":"    msg_fmt \u003d _(\"Unable to extend volume (id: %(volume_id)s) on any VIOS\")"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"class VolumeDetachFailed(nex.NovaException):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_c6aa1770","line":105,"in_reply_to":"7f515b1d_86353fab","updated":"2017-10-03 21:30:04.000000000","message":"Would be nice ...","commit_id":"09037119f9ed69c31b365ab04c83e6e119cbefaa"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"de925d5cfb66649a905d93c10539aa3468a07bbd","unresolved":false,"context_lines":[{"line_number":102,"context_line":""},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class VolumeExtendFailed(nex.NovaException):"},{"line_number":105,"context_line":"    msg_fmt \u003d _(\"Unable to extend volume (id: %(volume_id)s) on any VIOS\")"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"class VolumeDetachFailed(nex.NovaException):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7f515b1d_4125f1aa","line":105,"in_reply_to":"7f515b1d_c6aa1770","updated":"2017-10-03 21:57:53.000000000","message":"Done","commit_id":"09037119f9ed69c31b365ab04c83e6e119cbefaa"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"88019446f4df175e5c969712f47ed5ce8b05c5a7","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class VolumeExtendFailed(nex.NovaException):"},{"line_number":105,"context_line":"    msg_fmt \u003d _(\"Unable to extend volume (id: %(volume_id)s) on virtual \""},{"line_number":106,"context_line":"                \"maching %(instance_name)s for any VIOS\")"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class VolumeDetachFailed(nex.NovaException):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_617c6d72","line":106,"range":{"start_line":106,"start_character":17,"end_line":106,"end_character":24},"updated":"2017-10-03 21:48:41.000000000","message":"machine*","commit_id":"92783324fddbdeeab9650d0c07bb7884e8424cfb"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"de925d5cfb66649a905d93c10539aa3468a07bbd","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"class VolumeExtendFailed(nex.NovaException):"},{"line_number":105,"context_line":"    msg_fmt \u003d _(\"Unable to extend volume (id: %(volume_id)s) on virtual \""},{"line_number":106,"context_line":"                \"maching %(instance_name)s for any VIOS\")"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class VolumeDetachFailed(nex.NovaException):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_81a409bb","line":106,"range":{"start_line":106,"start_character":17,"end_line":106,"end_character":24},"in_reply_to":"7f515b1d_617c6d72","updated":"2017-10-03 21:57:53.000000000","message":"Done","commit_id":"92783324fddbdeeab9650d0c07bb7884e8424cfb"}],"nova_powervm/virt/powervm/volume/iscsi.py":[{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"50c2c0be9bd35d45f75bb57d31da6d961283c765","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        \"\"\"Rescan virtual disk so client VM can see extended size\"\"\""},{"line_number":128,"context_line":"        for vios_uuid in self.vios_uuids:"},{"line_number":129,"context_line":"            try:"},{"line_number":130,"context_line":"                LOG.debug(\"Rescanning volume %(vol)s from vios uuid %(uuid)s\","},{"line_number":131,"context_line":"                          dict(vol\u003dself.volume_id, uuid\u003dvios_uuid),"},{"line_number":132,"context_line":"                          instance\u003dself.instance)"},{"line_number":133,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff5d4b2f_4c74fd99","line":130,"range":{"start_line":130,"start_character":53,"end_line":130,"end_character":57},"updated":"2017-09-19 16:21:04.000000000","message":"for*","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"f516d24e41e755f5a44e289cd73d927cfde403f5","unresolved":false,"context_lines":[{"line_number":127,"context_line":"        \"\"\"Rescan virtual disk so client VM can see extended size\"\"\""},{"line_number":128,"context_line":"        for vios_uuid in self.vios_uuids:"},{"line_number":129,"context_line":"            try:"},{"line_number":130,"context_line":"                LOG.debug(\"Rescanning volume %(vol)s from vios uuid %(uuid)s\","},{"line_number":131,"context_line":"                          dict(vol\u003dself.volume_id, uuid\u003dvios_uuid),"},{"line_number":132,"context_line":"                          instance\u003dself.instance)"},{"line_number":133,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_bf80cbc0","line":130,"range":{"start_line":130,"start_character":53,"end_line":130,"end_character":57},"in_reply_to":"ff5d4b2f_4c74fd99","updated":"2017-09-27 05:18:32.000000000","message":"Done","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"50c2c0be9bd35d45f75bb57d31da6d961283c765","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                LOG.debug(\"Rescanning volume %(vol)s from vios uuid %(uuid)s\","},{"line_number":131,"context_line":"                          dict(vol\u003dself.volume_id, uuid\u003dvios_uuid),"},{"line_number":132,"context_line":"                          instance\u003dself.instance)"},{"line_number":133,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"},{"line_number":134,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":135,"context_line":"            except Exception as e:"},{"line_number":136,"context_line":"                LOG.warning(e)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff5d4b2f_2c40a935","line":133,"range":{"start_line":133,"start_character":48,"end_line":133,"end_character":64},"updated":"2017-09-19 16:21:04.000000000","message":"_get_udid could return None. Will rescan_vstor handle that ok?","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"f516d24e41e755f5a44e289cd73d927cfde403f5","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                LOG.debug(\"Rescanning volume %(vol)s from vios uuid %(uuid)s\","},{"line_number":131,"context_line":"                          dict(vol\u003dself.volume_id, uuid\u003dvios_uuid),"},{"line_number":132,"context_line":"                          instance\u003dself.instance)"},{"line_number":133,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"},{"line_number":134,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":135,"context_line":"            except Exception as e:"},{"line_number":136,"context_line":"                LOG.warning(e)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_7f57f359","line":133,"range":{"start_line":133,"start_character":48,"end_line":133,"end_character":64},"in_reply_to":"ff5d4b2f_2c40a935","updated":"2017-09-27 05:18:32.000000000","message":"Added a check at the beginning of this method and will throw an error if the udid is None.","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"50c2c0be9bd35d45f75bb57d31da6d961283c765","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                          instance\u003dself.instance)"},{"line_number":133,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"},{"line_number":134,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":135,"context_line":"            except Exception as e:"},{"line_number":136,"context_line":"                LOG.warning(e)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _disconnect_volume(self, slot_mgr):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff5d4b2f_8113de66","line":135,"updated":"2017-09-19 16:21:04.000000000","message":"It is very rarely acceptable to catch all Exceptions. We need to catch only specific exceptions that we expect and can handle unless there is a very good reason that we have to catch and somehow handle anything and everything here. If there is such a very good reason, we need a comment explaining what that is.","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"f516d24e41e755f5a44e289cd73d927cfde403f5","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                          instance\u003dself.instance)"},{"line_number":133,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"},{"line_number":134,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":135,"context_line":"            except Exception as e:"},{"line_number":136,"context_line":"                LOG.warning(e)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _disconnect_volume(self, slot_mgr):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_ff1be37d","line":135,"in_reply_to":"ff5d4b2f_6ddc5b46","updated":"2017-09-27 05:18:32.000000000","message":"@edmondsw: Done.\n\n@gfm: We can assume that at least 1 vios has the volume mapped. There is currently no retry logic.\n\nWould it be worthwhile to GET the vioses, look at the scsi_mappings, check that is has the udid, then try the rescan? This way we could verify all the vioses that were expected to succeed passed, or throw an error otherwise.","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":14532,"name":"Gerald McBrearty","email":"gfm@us.ibm.com","username":"gfm"},"change_message_id":"8f769eb94862c7b8f960c310c6cad26e5d2f2f87","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                          instance\u003dself.instance)"},{"line_number":133,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"},{"line_number":134,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":135,"context_line":"            except Exception as e:"},{"line_number":136,"context_line":"                LOG.warning(e)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _disconnect_volume(self, slot_mgr):"}],"source_content_type":"text/x-python","patch_set":1,"id":"ff5d4b2f_6ddc5b46","line":135,"in_reply_to":"ff5d4b2f_8113de66","updated":"2017-09-19 18:36:47.000000000","message":"What are the assumptions here? That every vios has the volume mapped? or something else? Unless every vios has the new size the extend didn\u0027t work ... ie the VM may or may not see the new size\n\nYep what are the expected failures? Does recan already do retries?","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"50c2c0be9bd35d45f75bb57d31da6d961283c765","unresolved":false,"context_lines":[{"line_number":133,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"},{"line_number":134,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":135,"context_line":"            except Exception as e:"},{"line_number":136,"context_line":"                LOG.warning(e)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _disconnect_volume(self, slot_mgr):"},{"line_number":139,"context_line":"        \"\"\"Disconnect the volume."}],"source_content_type":"text/x-python","patch_set":1,"id":"ff5d4b2f_6118ea80","line":136,"updated":"2017-09-19 16:21:04.000000000","message":"generally use LOG.exception instead of LOG.warning when printing exceptions. Especially if you\u0027re catching any and all exceptions like this is currently doing (see previous comment). Otherwise we\u0027ll get some unexpected exception and not have the trace data necessary to understand it.","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"f516d24e41e755f5a44e289cd73d927cfde403f5","unresolved":false,"context_lines":[{"line_number":133,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"},{"line_number":134,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":135,"context_line":"            except Exception as e:"},{"line_number":136,"context_line":"                LOG.warning(e)"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def _disconnect_volume(self, slot_mgr):"},{"line_number":139,"context_line":"        \"\"\"Disconnect the volume."}],"source_content_type":"text/x-python","patch_set":1,"id":"7f515b1d_3f4dfbc3","line":136,"in_reply_to":"ff5d4b2f_6118ea80","updated":"2017-09-27 05:18:32.000000000","message":"Done","commit_id":"a23464717e12ddd67dd8dcdd903a93dac26d256d"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0427cbc6eaea587bc47bea181b820d31b3f179a","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def extend_volume(self):"},{"line_number":129,"context_line":"        \"\"\"Rescan virtual disk so client VM can see extended size\"\"\""},{"line_number":130,"context_line":"        if (self._get_udid() is None):"},{"line_number":131,"context_line":"            raise nova_exc.InvalidBDM"},{"line_number":132,"context_line":"        resized \u003d False"},{"line_number":133,"context_line":"        for vios_uuid in self.vios_uuids:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_f3430c6b","line":130,"range":{"start_line":130,"start_character":11,"end_line":130,"end_character":38},"updated":"2017-09-27 15:31:16.000000000","message":"parens redundant.","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"e30c789898759354907b8bac7519986fba127e8c","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    def extend_volume(self):"},{"line_number":129,"context_line":"        \"\"\"Rescan virtual disk so client VM can see extended size\"\"\""},{"line_number":130,"context_line":"        if (self._get_udid() is None):"},{"line_number":131,"context_line":"            raise nova_exc.InvalidBDM"},{"line_number":132,"context_line":"        resized \u003d False"},{"line_number":133,"context_line":"        for vios_uuid in self.vios_uuids:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_fe59938d","line":130,"range":{"start_line":130,"start_character":11,"end_line":130,"end_character":38},"in_reply_to":"7f515b1d_f3430c6b","updated":"2017-09-27 16:22:49.000000000","message":"Done","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0427cbc6eaea587bc47bea181b820d31b3f179a","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    def extend_volume(self):"},{"line_number":129,"context_line":"        \"\"\"Rescan virtual disk so client VM can see extended size\"\"\""},{"line_number":130,"context_line":"        if (self._get_udid() is None):"},{"line_number":131,"context_line":"            raise nova_exc.InvalidBDM"},{"line_number":132,"context_line":"        resized \u003d False"},{"line_number":133,"context_line":"        for vios_uuid in self.vios_uuids:"},{"line_number":134,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_1338e8ec","line":131,"range":{"start_line":131,"start_character":18,"end_line":131,"end_character":37},"updated":"2017-09-27 15:31:16.000000000","message":"This works, but should it be an exception instance rather than the class?","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"e30c789898759354907b8bac7519986fba127e8c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    def extend_volume(self):"},{"line_number":129,"context_line":"        \"\"\"Rescan virtual disk so client VM can see extended size\"\"\""},{"line_number":130,"context_line":"        if (self._get_udid() is None):"},{"line_number":131,"context_line":"            raise nova_exc.InvalidBDM"},{"line_number":132,"context_line":"        resized \u003d False"},{"line_number":133,"context_line":"        for vios_uuid in self.vios_uuids:"},{"line_number":134,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_fee753ab","line":131,"range":{"start_line":131,"start_character":18,"end_line":131,"end_character":37},"in_reply_to":"7f515b1d_1338e8ec","updated":"2017-09-27 16:22:49.000000000","message":"Done","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0427cbc6eaea587bc47bea181b820d31b3f179a","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                LOG.debug(\"Rescanning volume %(vol)s for vios uuid %(uuid)s\","},{"line_number":136,"context_line":"                          dict(vol\u003dself.volume_id, uuid\u003dvios_uuid),"},{"line_number":137,"context_line":"                          instance\u003dself.instance)"},{"line_number":138,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"},{"line_number":139,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":140,"context_line":"                resized \u003d True"},{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_7e3363f7","line":138,"range":{"start_line":138,"start_character":48,"end_line":138,"end_character":64},"updated":"2017-09-27 15:31:16.000000000","message":"Doing this twice; let\u0027s save it to a local var above L130.","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"e30c789898759354907b8bac7519986fba127e8c","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                LOG.debug(\"Rescanning volume %(vol)s for vios uuid %(uuid)s\","},{"line_number":136,"context_line":"                          dict(vol\u003dself.volume_id, uuid\u003dvios_uuid),"},{"line_number":137,"context_line":"                          instance\u003dself.instance)"},{"line_number":138,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, self._get_udid(),"},{"line_number":139,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":140,"context_line":"                resized \u003d True"},{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed as e:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_3ec96b25","line":138,"range":{"start_line":138,"start_character":48,"end_line":138,"end_character":64},"in_reply_to":"7f515b1d_7e3363f7","updated":"2017-09-27 16:22:49.000000000","message":"Done","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0427cbc6eaea587bc47bea181b820d31b3f179a","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":140,"context_line":"                resized \u003d True"},{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed as e:"},{"line_number":142,"context_line":"                LOG.exception(e)"},{"line_number":143,"context_line":"        if not resized:"},{"line_number":144,"context_line":"            raise nova_exc.ResizeError(reason\u003d\"Volume not resized for any\""},{"line_number":145,"context_line":"                                              \"VIOS\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_7e48035b","line":142,"range":{"start_line":142,"start_character":30,"end_line":142,"end_character":31},"updated":"2017-09-27 15:31:16.000000000","message":"\u0027e\u0027 is redundant here (you get it already with LOG.exception).  This should be a useful message like \"Failed to rescan volume %(vol)s for VIOS UUID %(uuid)s\".","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"e30c789898759354907b8bac7519986fba127e8c","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                                     adapter\u003dself.adapter)"},{"line_number":140,"context_line":"                resized \u003d True"},{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed as e:"},{"line_number":142,"context_line":"                LOG.exception(e)"},{"line_number":143,"context_line":"        if not resized:"},{"line_number":144,"context_line":"            raise nova_exc.ResizeError(reason\u003d\"Volume not resized for any\""},{"line_number":145,"context_line":"                                              \"VIOS\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_de6ff7f9","line":142,"range":{"start_line":142,"start_character":30,"end_line":142,"end_character":31},"in_reply_to":"7f515b1d_7e48035b","updated":"2017-09-27 16:22:49.000000000","message":"Done","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0427cbc6eaea587bc47bea181b820d31b3f179a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed as e:"},{"line_number":142,"context_line":"                LOG.exception(e)"},{"line_number":143,"context_line":"        if not resized:"},{"line_number":144,"context_line":"            raise nova_exc.ResizeError(reason\u003d\"Volume not resized for any\""},{"line_number":145,"context_line":"                                              \"VIOS\")"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def _disconnect_volume(self, slot_mgr):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_be755b66","line":144,"range":{"start_line":144,"start_character":46,"end_line":144,"end_character":53},"updated":"2017-09-27 15:31:16.000000000","message":"1) Translate this.\n2) Include the volume ID.","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"e0427cbc6eaea587bc47bea181b820d31b3f179a","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed as e:"},{"line_number":142,"context_line":"                LOG.exception(e)"},{"line_number":143,"context_line":"        if not resized:"},{"line_number":144,"context_line":"            raise nova_exc.ResizeError(reason\u003d\"Volume not resized for any\""},{"line_number":145,"context_line":"                                              \"VIOS\")"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def _disconnect_volume(self, slot_mgr):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_3e396ba3","line":144,"range":{"start_line":144,"start_character":27,"end_line":144,"end_character":38},"updated":"2017-09-27 15:31:16.000000000","message":"nit: Is this actually considered a resize?","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"3cf53b08393206ae4b666f0fa2f992d2c8026a5f","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed as e:"},{"line_number":142,"context_line":"                LOG.exception(e)"},{"line_number":143,"context_line":"        if not resized:"},{"line_number":144,"context_line":"            raise nova_exc.ResizeError(reason\u003d\"Volume not resized for any\""},{"line_number":145,"context_line":"                                              \"VIOS\")"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def _disconnect_volume(self, slot_mgr):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_8b437caf","line":144,"range":{"start_line":144,"start_character":46,"end_line":144,"end_character":53},"in_reply_to":"7f515b1d_4bf0e4fe","updated":"2017-09-27 17:08:32.000000000","message":"Ah I see what you are talking about now. I don\u0027t believe it is a \"resize\" operation then. Will change.\n\nDone","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b634dcf5368dc644e88c2c512a7d27f53fd33fdc","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed as e:"},{"line_number":142,"context_line":"                LOG.exception(e)"},{"line_number":143,"context_line":"        if not resized:"},{"line_number":144,"context_line":"            raise nova_exc.ResizeError(reason\u003d\"Volume not resized for any\""},{"line_number":145,"context_line":"                                              \"VIOS\")"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def _disconnect_volume(self, slot_mgr):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_4bf0e4fe","line":144,"range":{"start_line":144,"start_character":46,"end_line":144,"end_character":53},"in_reply_to":"7f515b1d_79e49d3c","updated":"2017-09-27 16:34:59.000000000","message":"I guess I\u0027m asking whether it\u0027s a resize as in the actual \"resize\" operation, which is what that exception seems to be used for in general.  I don\u0027t think it\u0027s a problem to use it necessarily.\n\n1) Translations are going away for *logs*.  Exceptions are still translated.  Use _().","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"e30c789898759354907b8bac7519986fba127e8c","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed as e:"},{"line_number":142,"context_line":"                LOG.exception(e)"},{"line_number":143,"context_line":"        if not resized:"},{"line_number":144,"context_line":"            raise nova_exc.ResizeError(reason\u003d\"Volume not resized for any\""},{"line_number":145,"context_line":"                                              \"VIOS\")"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def _disconnect_volume(self, slot_mgr):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_79e49d3c","line":144,"range":{"start_line":144,"start_character":46,"end_line":144,"end_character":53},"in_reply_to":"7f515b1d_be755b66","updated":"2017-09-27 16:22:49.000000000","message":"It is \"resizing\" the volume, but it looks like the ResizeError may have been intended for resizing ephemeral (based on the exceptions near this one).\n\n1) What do you mean by \"translate this\"? I thought we got rid of the _LW,_LI,_LE which were used for translation.\n2) Done","commit_id":"4c78d3ab35fc8f63c2af523d54f8a717cd3c7de5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b634dcf5368dc644e88c2c512a7d27f53fd33fdc","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid})"},{"line_number":145,"context_line":"        if not resized:"},{"line_number":146,"context_line":"            raise nova_exc.ResizeError(reason\u003d(\"Volume %s not resized for any \""},{"line_number":147,"context_line":"                                               \"VIOS\", self.volume_id))"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def _disconnect_volume(self, slot_mgr):"},{"line_number":150,"context_line":"        \"\"\"Disconnect the volume."}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_8b681c87","line":147,"range":{"start_line":147,"start_character":53,"end_line":147,"end_character":54},"updated":"2017-09-27 16:34:59.000000000","message":"%","commit_id":"51b6b8689335d99dab96f6d55e0649c72c9f3585"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"3cf53b08393206ae4b666f0fa2f992d2c8026a5f","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid})"},{"line_number":145,"context_line":"        if not resized:"},{"line_number":146,"context_line":"            raise nova_exc.ResizeError(reason\u003d(\"Volume %s not resized for any \""},{"line_number":147,"context_line":"                                               \"VIOS\", self.volume_id))"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"    def _disconnect_volume(self, slot_mgr):"},{"line_number":150,"context_line":"        \"\"\"Disconnect the volume."}],"source_content_type":"text/x-python","patch_set":3,"id":"7f515b1d_ab1f58b5","line":147,"range":{"start_line":147,"start_character":53,"end_line":147,"end_character":54},"in_reply_to":"7f515b1d_8b681c87","updated":"2017-09-27 17:08:32.000000000","message":"Done","commit_id":"51b6b8689335d99dab96f6d55e0649c72c9f3585"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9e806c5c808ff638a300520241dcd5eb8d29f6f4","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, udid, adapter\u003dself.adapter)"},{"line_number":141,"context_line":"                resized \u003d True"},{"line_number":142,"context_line":"            except pvm_exc.JobRequestFailed:"},{"line_number":143,"context_line":"                LOG.exception(_(\"Failed to rescan volume %(vol)s for VIOS \""},{"line_number":144,"context_line":"                                \"UUID %(uuid)s\"),"},{"line_number":145,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid})"},{"line_number":146,"context_line":"        if not resized:"},{"line_number":147,"context_line":"            raise p_exc.VolumeExtendFailed("}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_9f2cd6ac","line":144,"range":{"start_line":143,"start_character":30,"end_line":144,"end_character":48},"updated":"2017-09-27 18:55:00.000000000","message":"Nope, this one *doesn\u0027t* get translated, cause it\u0027s a log message.","commit_id":"49165d544991d7535db568c1bf297e73c81fc08f"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"250f1353c4e3e62f8c5f4b96e09142c99c11c4b8","unresolved":false,"context_lines":[{"line_number":140,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, udid, adapter\u003dself.adapter)"},{"line_number":141,"context_line":"                resized \u003d True"},{"line_number":142,"context_line":"            except pvm_exc.JobRequestFailed:"},{"line_number":143,"context_line":"                LOG.exception(_(\"Failed to rescan volume %(vol)s for VIOS \""},{"line_number":144,"context_line":"                                \"UUID %(uuid)s\"),"},{"line_number":145,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid})"},{"line_number":146,"context_line":"        if not resized:"},{"line_number":147,"context_line":"            raise p_exc.VolumeExtendFailed("}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_f5ce49b2","line":144,"range":{"start_line":143,"start_character":30,"end_line":144,"end_character":48},"in_reply_to":"7f515b1d_9f2cd6ac","updated":"2017-09-27 19:42:23.000000000","message":"I see.\nDone.","commit_id":"49165d544991d7535db568c1bf297e73c81fc08f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9e806c5c808ff638a300520241dcd5eb8d29f6f4","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid})"},{"line_number":146,"context_line":"        if not resized:"},{"line_number":147,"context_line":"            raise p_exc.VolumeExtendFailed("},{"line_number":148,"context_line":"                volume_id\u003dself.volume_id, reason\u003d\"Volume not extended on any \""},{"line_number":149,"context_line":"                \"VIOS\")"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _disconnect_volume(self, slot_mgr):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_df26cece","line":148,"range":{"start_line":148,"start_character":49,"end_line":148,"end_character":77},"updated":"2017-09-27 18:55:00.000000000","message":"This still ain\u0027t translated.\n\nI don\u0027t see the point of having the \"reason\" split out.  Just have the exception say, \"Unable to extend volume (id: %(volume_id)s) on any VIOS.\"","commit_id":"49165d544991d7535db568c1bf297e73c81fc08f"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"250f1353c4e3e62f8c5f4b96e09142c99c11c4b8","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid})"},{"line_number":146,"context_line":"        if not resized:"},{"line_number":147,"context_line":"            raise p_exc.VolumeExtendFailed("},{"line_number":148,"context_line":"                volume_id\u003dself.volume_id, reason\u003d\"Volume not extended on any \""},{"line_number":149,"context_line":"                \"VIOS\")"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"    def _disconnect_volume(self, slot_mgr):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7f515b1d_d5c7cd95","line":148,"range":{"start_line":148,"start_character":49,"end_line":148,"end_character":77},"in_reply_to":"7f515b1d_df26cece","updated":"2017-09-27 19:42:23.000000000","message":"Done","commit_id":"49165d544991d7535db568c1bf297e73c81fc08f"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"88019446f4df175e5c969712f47ed5ce8b05c5a7","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, udid, adapter\u003dself.adapter)"},{"line_number":140,"context_line":"                resized \u003d True"},{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed:"},{"line_number":142,"context_line":"                LOG.exception(\"Failed to rescan volume %(vol)s for VIOS \""},{"line_number":143,"context_line":"                              \"UUID %(uuid)s\","},{"line_number":144,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid})"},{"line_number":145,"context_line":"        if not resized:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_613fcd87","line":142,"updated":"2017-10-03 21:48:41.000000000","message":"add instance\u003dself.instance here, as with the LOG.debug call above.","commit_id":"92783324fddbdeeab9650d0c07bb7884e8424cfb"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"de925d5cfb66649a905d93c10539aa3468a07bbd","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, udid, adapter\u003dself.adapter)"},{"line_number":140,"context_line":"                resized \u003d True"},{"line_number":141,"context_line":"            except pvm_exc.JobRequestFailed:"},{"line_number":142,"context_line":"                LOG.exception(\"Failed to rescan volume %(vol)s for VIOS \""},{"line_number":143,"context_line":"                              \"UUID %(uuid)s\","},{"line_number":144,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid})"},{"line_number":145,"context_line":"        if not resized:"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f515b1d_c199e179","line":142,"in_reply_to":"7f515b1d_613fcd87","updated":"2017-10-03 21:57:53.000000000","message":"Done","commit_id":"92783324fddbdeeab9650d0c07bb7884e8424cfb"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"d3c3f4655a558ce019e77eb621b0d0e9c85798f1","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                          instance\u003dself.instance)"},{"line_number":139,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, udid, adapter\u003dself.adapter)"},{"line_number":140,"context_line":"                resized \u003d True"},{"line_number":141,"context_line":"            except pvm_exc.VstorNotFound:"},{"line_number":142,"context_line":"                LOG.exception(\"Failed to rescan volume %(vol)s for VIOS \""},{"line_number":143,"context_line":"                              \"UUID %(uuid)s\","},{"line_number":144,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid},"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_b54d633c","line":141,"updated":"2017-10-09 20:44:43.000000000","message":"should we also catch JobRequestFailed so that we can continue through the loop, and then reraise it when we\u0027re done? Or is it better to bail immediately like this?","commit_id":"4dcfa5e8ea7f55fa31c1f1742ea922eaf6d94c92"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5b0fac7797d7b2e5c939ad3b6511c1cf10e35081","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                          instance\u003dself.instance)"},{"line_number":139,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, udid, adapter\u003dself.adapter)"},{"line_number":140,"context_line":"                resized \u003d True"},{"line_number":141,"context_line":"            except pvm_exc.VstorNotFound:"},{"line_number":142,"context_line":"                LOG.exception(\"Failed to rescan volume %(vol)s for VIOS \""},{"line_number":143,"context_line":"                              \"UUID %(uuid)s\","},{"line_number":144,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid},"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_cb315eef","line":141,"in_reply_to":"7f515b1d_b54d633c","updated":"2017-10-09 21:37:50.000000000","message":"Totally agree - the VstorNotFound trap should be in *addition* to the JobRequestFailed deal.","commit_id":"4dcfa5e8ea7f55fa31c1f1742ea922eaf6d94c92"},{"author":{"_account_id":10608,"name":"Matthew Edmonds","email":"edmondsw@us.ibm.com","username":"edmondsw"},"change_message_id":"2fcd9d2893125b19d232df4ad94868cf95b07b83","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                          instance\u003dself.instance)"},{"line_number":139,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, udid, adapter\u003dself.adapter)"},{"line_number":140,"context_line":"                resized \u003d True"},{"line_number":141,"context_line":"            except pvm_exc.VstorNotFound:"},{"line_number":142,"context_line":"                LOG.exception(\"Failed to rescan volume %(vol)s for VIOS \""},{"line_number":143,"context_line":"                              \"UUID %(uuid)s\","},{"line_number":144,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid},"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_cb55de1f","line":141,"in_reply_to":"7f515b1d_cb315eef","updated":"2017-10-09 22:24:16.000000000","message":"My comment was more of a question... If we happen to know somehow that JobRequestFailed means there\u0027s no point in trying other VIOS, then this might be fine as-is... but I\u0027m not sure how likely that is. Trying on all VIOS is safer unless we\u0027re sure we don\u0027t need to.","commit_id":"4dcfa5e8ea7f55fa31c1f1742ea922eaf6d94c92"},{"author":{"_account_id":21099,"name":"Taylor Jakobson","email":"tjakobs@us.ibm.com","username":"tjakobs"},"change_message_id":"60a94ae82c4eb6807bbbdf9dc4f639a1c11d559e","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                          instance\u003dself.instance)"},{"line_number":139,"context_line":"                tsk_stg.rescan_vstor(vios_uuid, udid, adapter\u003dself.adapter)"},{"line_number":140,"context_line":"                resized \u003d True"},{"line_number":141,"context_line":"            except pvm_exc.VstorNotFound:"},{"line_number":142,"context_line":"                LOG.exception(\"Failed to rescan volume %(vol)s for VIOS \""},{"line_number":143,"context_line":"                              \"UUID %(uuid)s\","},{"line_number":144,"context_line":"                              {\u0027vol\u0027: self.volume_id, \u0027uuid\u0027: vios_uuid},"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f515b1d_26a6e710","line":141,"in_reply_to":"7f515b1d_cb55de1f","updated":"2017-10-09 22:28:58.000000000","message":"Agreed. I think if one fails with JobRequestFailed, we should continue to try the other VIOS, and re-raise the error.","commit_id":"4dcfa5e8ea7f55fa31c1f1742ea922eaf6d94c92"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"45ae4f6b9c3946d47eaef40ac8aaebe609fa51ab","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        return False"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def extend_volume(self):"},{"line_number":127,"context_line":"        \"\"\"Rescan virtual disk so client VM can see extended size\"\"\""},{"line_number":128,"context_line":"        udid \u003d self._get_udid()"},{"line_number":129,"context_line":"        if udid is None:"},{"line_number":130,"context_line":"            raise nova_exc.InvalidBDM()"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f4b6375_44ae7f81","line":127,"updated":"2017-11-03 13:16:38.000000000","message":"end docstring with a period","commit_id":"51e56c5f686b5bbc35e5bddb7545d50349a02965"}]}
