)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dee5df3fd2d86f6189756be3e5e1246b993b1523","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-04-20 12:57:55 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Cinder v3 detach call to _terminate_volume_connections"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Partially Implements: blueprint cinder-new-attach-apis"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ifb8b302e6f85b499a57b141d796b5b216de6c50d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7ffa3b31_e0156c9d","line":8,"updated":"2017-04-20 18:35:35.000000000","message":"Add:\n\nDepends-On: I91b9a60268354ffbed86b1e7d173906cfd7b97bd","commit_id":"0a1c638db39567b28203a9240111f97e349d3117"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ec9bfaa7565c30af9efc2bd2faecd2a7dbaae830","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2017-04-20 12:57:55 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Cinder v3 detach call to _terminate_volume_connections"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Partially Implements: blueprint cinder-new-attach-apis"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ifb8b302e6f85b499a57b141d796b5b216de6c50d"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"5ff73747_660ebfe6","line":8,"in_reply_to":"7ffa3b31_e0156c9d","updated":"2017-04-22 17:12:53.000000000","message":"^ is merged now so just rebase.","commit_id":"0a1c638db39567b28203a9240111f97e349d3117"}],"nova/compute/manager.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"e7345dfcd8b01b7b805aed19155c47aed2fb4ef2","unresolved":false,"context_lines":[{"line_number":3938,"context_line":"            self.instance_events.clear_events_for_instance(instance)"},{"line_number":3939,"context_line":""},{"line_number":3940,"context_line":"    def _terminate_volume_connections(self, context, instance, bdms):"},{"line_number":3941,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3942,"context_line":"        for bdm in bdms:"},{"line_number":3943,"context_line":"            if bdm.is_volume:"},{"line_number":3944,"context_line":"                self.volume_api.terminate_connection(context, bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_d23dbbc4","side":"PARENT","line":3941,"range":{"start_line":3941,"start_character":8,"end_line":3941,"end_character":62},"updated":"2017-04-20 09:55:39.000000000","message":"Why are we moving this?","commit_id":"ae637e70a72166067e09f3bbc3acb54e5d92771e"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"8b6ad8a2e596eaff6f9765426aa301f769937e01","unresolved":false,"context_lines":[{"line_number":3938,"context_line":"            self.instance_events.clear_events_for_instance(instance)"},{"line_number":3939,"context_line":""},{"line_number":3940,"context_line":"    def _terminate_volume_connections(self, context, instance, bdms):"},{"line_number":3941,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3942,"context_line":"        for bdm in bdms:"},{"line_number":3943,"context_line":"            if bdm.is_volume:"},{"line_number":3944,"context_line":"                self.volume_api.terminate_connection(context, bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_ef98c2c0","side":"PARENT","line":3941,"range":{"start_line":3941,"start_character":8,"end_line":3941,"end_character":62},"in_reply_to":"7ffa3b31_d23dbbc4","updated":"2017-04-20 15:36:17.000000000","message":"Some places where this function is called we have the connector already and I thought it\u0027s unnecessary to get it here too.","commit_id":"ae637e70a72166067e09f3bbc3acb54e5d92771e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"47346f1e341c7eae54541d9c0d9598947057df42","unresolved":false,"context_lines":[{"line_number":3938,"context_line":"            self.instance_events.clear_events_for_instance(instance)"},{"line_number":3939,"context_line":""},{"line_number":3940,"context_line":"    def _terminate_volume_connections(self, context, instance, bdms):"},{"line_number":3941,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3942,"context_line":"        for bdm in bdms:"},{"line_number":3943,"context_line":"            if bdm.is_volume:"},{"line_number":3944,"context_line":"                self.volume_api.terminate_connection(context, bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_4de45ee0","side":"PARENT","line":3941,"range":{"start_line":3941,"start_character":8,"end_line":3941,"end_character":62},"in_reply_to":"7ffa3b31_ed48ca2d","updated":"2017-04-20 16:26:24.000000000","message":"isn\u0027t this bit only needed for the old API case, so it should stay here and not be used in the new flow.","commit_id":"ae637e70a72166067e09f3bbc3acb54e5d92771e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"19df51820f400d82dc600a973b84b144bcec72e0","unresolved":false,"context_lines":[{"line_number":3938,"context_line":"            self.instance_events.clear_events_for_instance(instance)"},{"line_number":3939,"context_line":""},{"line_number":3940,"context_line":"    def _terminate_volume_connections(self, context, instance, bdms):"},{"line_number":3941,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3942,"context_line":"        for bdm in bdms:"},{"line_number":3943,"context_line":"            if bdm.is_volume:"},{"line_number":3944,"context_line":"                self.volume_api.terminate_connection(context, bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_ed48ca2d","side":"PARENT","line":3941,"range":{"start_line":3941,"start_character":8,"end_line":3941,"end_character":62},"in_reply_to":"7ffa3b31_ef98c2c0","updated":"2017-04-20 16:21:04.000000000","message":"Which methods? Because you\u0027re not modifying any of those as far as I can see.","commit_id":"ae637e70a72166067e09f3bbc3acb54e5d92771e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f7520a33e63c3820ecebd0a4f142f092a66c9fb5","unresolved":false,"context_lines":[{"line_number":3612,"context_line":"            self.driver.destroy(context, instance, network_info,"},{"line_number":3613,"context_line":"                                block_device_info, destroy_disks)"},{"line_number":3614,"context_line":""},{"line_number":3615,"context_line":"            connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3616,"context_line":"            self._terminate_volume_connections(context, instance, bdms,"},{"line_number":3617,"context_line":"                                               connector)"},{"line_number":3618,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_8da266ad","line":3615,"updated":"2017-04-20 16:24:16.000000000","message":"We don\u0027t need this in this patch.","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f7520a33e63c3820ecebd0a4f142f092a66c9fb5","unresolved":false,"context_lines":[{"line_number":3911,"context_line":"                    block_device_info,"},{"line_number":3912,"context_line":"                    timeout, retry_interval)"},{"line_number":3913,"context_line":""},{"line_number":3914,"context_line":"            connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3915,"context_line":"            self._terminate_volume_connections(context, instance, bdms,"},{"line_number":3916,"context_line":"                                               connector)"},{"line_number":3917,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_6da71abf","line":3914,"updated":"2017-04-20 16:24:16.000000000","message":"Nor this.","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fe342c78397f9d84cb0832458485e98643b147d5","unresolved":false,"context_lines":[{"line_number":3941,"context_line":"                   phase\u003dfields.NotificationPhase.END)"},{"line_number":3942,"context_line":"            self.instance_events.clear_events_for_instance(instance)"},{"line_number":3943,"context_line":""},{"line_number":3944,"context_line":"    def _terminate_volume_connections(self, context, instance, bdms,"},{"line_number":3945,"context_line":"                                      connector):"},{"line_number":3946,"context_line":"        for bdm in bdms:"},{"line_number":3947,"context_line":"            if bdm.is_volume:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_adc3e256","line":3944,"updated":"2017-04-20 16:23:15.000000000","message":"Not keen how lots of existing code now uses this \"new\" code path.\n\nI know we are protected by not doing attach, but I quite like the idea of having a new method, like _terminate_and_reattach_volume(..), so new flows opt into the new thing.","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"37816ce70eff7b75824c317a3e276e12e678a581","unresolved":false,"context_lines":[{"line_number":3941,"context_line":"                   phase\u003dfields.NotificationPhase.END)"},{"line_number":3942,"context_line":"            self.instance_events.clear_events_for_instance(instance)"},{"line_number":3943,"context_line":""},{"line_number":3944,"context_line":"    def _terminate_volume_connections(self, context, instance, bdms,"},{"line_number":3945,"context_line":"                                      connector):"},{"line_number":3946,"context_line":"        for bdm in bdms:"},{"line_number":3947,"context_line":"            if bdm.is_volume:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_a8e07027","line":3944,"in_reply_to":"7ffa3b31_adc3e256","updated":"2017-04-20 16:41:46.000000000","message":"We can still do this method and wrap it into another helper method that does the create before the delete later, in a change that actually cares about it, like swap volume.","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"19df51820f400d82dc600a973b84b144bcec72e0","unresolved":false,"context_lines":[{"line_number":3942,"context_line":"            self.instance_events.clear_events_for_instance(instance)"},{"line_number":3943,"context_line":""},{"line_number":3944,"context_line":"    def _terminate_volume_connections(self, context, instance, bdms,"},{"line_number":3945,"context_line":"                                      connector):"},{"line_number":3946,"context_line":"        for bdm in bdms:"},{"line_number":3947,"context_line":"            if bdm.is_volume:"},{"line_number":3948,"context_line":"                if bdm.attachment_id:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_ade08227","line":3945,"range":{"start_line":3945,"start_character":38,"end_line":3945,"end_character":47},"updated":"2017-04-20 16:21:04.000000000","message":"Default to None and if not provided, then get it as before. Methods that already have the connector can just pass it in.\n\nBut upon further inspection I don\u0027t see any methods calling this method that already have the connector...unless those come later in the series?","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f7520a33e63c3820ecebd0a4f142f092a66c9fb5","unresolved":false,"context_lines":[{"line_number":3942,"context_line":"            self.instance_events.clear_events_for_instance(instance)"},{"line_number":3943,"context_line":""},{"line_number":3944,"context_line":"    def _terminate_volume_connections(self, context, instance, bdms,"},{"line_number":3945,"context_line":"                                      connector):"},{"line_number":3946,"context_line":"        for bdm in bdms:"},{"line_number":3947,"context_line":"            if bdm.is_volume:"},{"line_number":3948,"context_line":"                if bdm.attachment_id:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_cd9bce70","line":3945,"range":{"start_line":3945,"start_character":38,"end_line":3945,"end_character":47},"in_reply_to":"7ffa3b31_ade08227","updated":"2017-04-20 16:24:16.000000000","message":"You\u0027re doing this for swap_volume which comes later:\n\nhttps://review.openstack.org/#/c/456971/1/nova/compute/manager.py\n\nWe don\u0027t need to make that change in this patch though, do it in the swap volume patch where you can make connector a kwarg.","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"e7345dfcd8b01b7b805aed19155c47aed2fb4ef2","unresolved":false,"context_lines":[{"line_number":3946,"context_line":"        for bdm in bdms:"},{"line_number":3947,"context_line":"            if bdm.is_volume:"},{"line_number":3948,"context_line":"                if bdm.attachment_id:"},{"line_number":3949,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3950,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3951,"context_line":"                    self.volume_api.attachment_create(context, bdm.volume_id,"},{"line_number":3952,"context_line":"                                                      instance.uuid)"},{"line_number":3953,"context_line":"                else:"},{"line_number":3954,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3955,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_b2ad8fea","line":3952,"range":{"start_line":3949,"start_character":0,"end_line":3952,"end_character":68},"updated":"2017-04-20 09:55:39.000000000","message":"Do we need self.volume_api.attachment_recreate or similar?\n\nWe are also losing track of attachment_id here.","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"37816ce70eff7b75824c317a3e276e12e678a581","unresolved":false,"context_lines":[{"line_number":3946,"context_line":"        for bdm in bdms:"},{"line_number":3947,"context_line":"            if bdm.is_volume:"},{"line_number":3948,"context_line":"                if bdm.attachment_id:"},{"line_number":3949,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3950,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3951,"context_line":"                    self.volume_api.attachment_create(context, bdm.volume_id,"},{"line_number":3952,"context_line":"                                                      instance.uuid)"},{"line_number":3953,"context_line":"                else:"},{"line_number":3954,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3955,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_e8daf875","line":3952,"range":{"start_line":3949,"start_character":0,"end_line":3952,"end_character":68},"in_reply_to":"7ffa3b31_0dc77698","updated":"2017-04-20 16:41:46.000000000","message":"We don\u0027t need this in this method right now anyway.","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fe342c78397f9d84cb0832458485e98643b147d5","unresolved":false,"context_lines":[{"line_number":3946,"context_line":"        for bdm in bdms:"},{"line_number":3947,"context_line":"            if bdm.is_volume:"},{"line_number":3948,"context_line":"                if bdm.attachment_id:"},{"line_number":3949,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3950,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3951,"context_line":"                    self.volume_api.attachment_create(context, bdm.volume_id,"},{"line_number":3952,"context_line":"                                                      instance.uuid)"},{"line_number":3953,"context_line":"                else:"},{"line_number":3954,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3955,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_0dc77698","line":3952,"range":{"start_line":3949,"start_character":0,"end_line":3952,"end_character":68},"in_reply_to":"7ffa3b31_4fd9f654","updated":"2017-04-20 16:23:15.000000000","message":"I think we need create before delete, to make sure this volume can\u0027t be grabbed by someone else between these two API calls.\n\nI might be overthinking that.","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"2d45867a71df83f956eca4df1690857e4ff8fdec","unresolved":false,"context_lines":[{"line_number":3946,"context_line":"        for bdm in bdms:"},{"line_number":3947,"context_line":"            if bdm.is_volume:"},{"line_number":3948,"context_line":"                if bdm.attachment_id:"},{"line_number":3949,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3950,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3951,"context_line":"                    self.volume_api.attachment_create(context, bdm.volume_id,"},{"line_number":3952,"context_line":"                                                      instance.uuid)"},{"line_number":3953,"context_line":"                else:"},{"line_number":3954,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3955,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_4fd9f654","line":3952,"range":{"start_line":3949,"start_character":0,"end_line":3952,"end_character":68},"in_reply_to":"7ffa3b31_8f8b7e66","updated":"2017-04-20 15:40:04.000000000","message":"Actually create shouldn\u0027t be in this patch, only in the follow up ones, where I will fix tracking the attachment_id as well.","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"8b6ad8a2e596eaff6f9765426aa301f769937e01","unresolved":false,"context_lines":[{"line_number":3946,"context_line":"        for bdm in bdms:"},{"line_number":3947,"context_line":"            if bdm.is_volume:"},{"line_number":3948,"context_line":"                if bdm.attachment_id:"},{"line_number":3949,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3950,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3951,"context_line":"                    self.volume_api.attachment_create(context, bdm.volume_id,"},{"line_number":3952,"context_line":"                                                      instance.uuid)"},{"line_number":3953,"context_line":"                else:"},{"line_number":3954,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3955,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ffa3b31_8f8b7e66","line":3952,"range":{"start_line":3949,"start_character":0,"end_line":3952,"end_character":68},"in_reply_to":"7ffa3b31_b2ad8fea","updated":"2017-04-20 15:36:17.000000000","message":"Good point, I will fix that.","commit_id":"b949d64dbdb29405004152a2a66d7f0f677d74a4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"00d9bf523fc2789e40ecbff5387eb261502cc9d9","unresolved":false,"context_lines":[{"line_number":3938,"context_line":"            self.instance_events.clear_events_for_instance(instance)"},{"line_number":3939,"context_line":""},{"line_number":3940,"context_line":"    def _terminate_volume_connections(self, context, instance, bdms):"},{"line_number":3941,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3942,"context_line":"        for bdm in bdms:"},{"line_number":3943,"context_line":"            if bdm.is_volume:"},{"line_number":3944,"context_line":"                if bdm.attachment_id:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_207474fd","line":3941,"updated":"2017-04-20 18:37:20.000000000","message":"nit: just as an optimization, we could avoid getting this until we actually need to, which would be for the old flow.\n\nSo you could set this as None before the loop, then if you ever need it, check if it\u0027s been retrieved yet, and if not, get it and store the value. Any checks after that would already have the connector so we wouldn\u0027t need to look it up again.","commit_id":"0a1c638db39567b28203a9240111f97e349d3117"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"854f2231488187940d5135a3a21b17781d9e07b4","unresolved":false,"context_lines":[{"line_number":3938,"context_line":"            self.instance_events.clear_events_for_instance(instance)"},{"line_number":3939,"context_line":""},{"line_number":3940,"context_line":"    def _terminate_volume_connections(self, context, instance, bdms):"},{"line_number":3941,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3942,"context_line":"        for bdm in bdms:"},{"line_number":3943,"context_line":"            if bdm.is_volume:"},{"line_number":3944,"context_line":"                if bdm.attachment_id:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_893db3de","line":3941,"in_reply_to":"7ffa3b31_207474fd","updated":"2017-04-20 20:44:58.000000000","message":"Done","commit_id":"0a1c638db39567b28203a9240111f97e349d3117"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dee5df3fd2d86f6189756be3e5e1246b993b1523","unresolved":false,"context_lines":[{"line_number":3941,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3942,"context_line":"        for bdm in bdms:"},{"line_number":3943,"context_line":"            if bdm.is_volume:"},{"line_number":3944,"context_line":"                if bdm.attachment_id:"},{"line_number":3945,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3946,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3949,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_403d4029","line":3946,"range":{"start_line":3944,"start_character":16,"end_line":3946,"end_character":72},"updated":"2017-04-20 18:35:35.000000000","message":"Need a unit test for when this is True.","commit_id":"0a1c638db39567b28203a9240111f97e349d3117"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"854f2231488187940d5135a3a21b17781d9e07b4","unresolved":false,"context_lines":[{"line_number":3941,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3942,"context_line":"        for bdm in bdms:"},{"line_number":3943,"context_line":"            if bdm.is_volume:"},{"line_number":3944,"context_line":"                if bdm.attachment_id:"},{"line_number":3945,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3946,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3949,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_a9386fed","line":3946,"range":{"start_line":3944,"start_character":16,"end_line":3946,"end_character":72},"in_reply_to":"7ffa3b31_403d4029","updated":"2017-04-20 20:44:58.000000000","message":"Do you want me to add a unit test that tests _terminate-volume_connections or add the attachment_id version of those tests that test the functions using this?","commit_id":"0a1c638db39567b28203a9240111f97e349d3117"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ec9bfaa7565c30af9efc2bd2faecd2a7dbaae830","unresolved":false,"context_lines":[{"line_number":3941,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3942,"context_line":"        for bdm in bdms:"},{"line_number":3943,"context_line":"            if bdm.is_volume:"},{"line_number":3944,"context_line":"                if bdm.attachment_id:"},{"line_number":3945,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3946,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3949,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_4613c30e","line":3946,"range":{"start_line":3944,"start_character":16,"end_line":3946,"end_character":72},"in_reply_to":"7ffa3b31_a9386fed","updated":"2017-04-22 17:12:53.000000000","message":"A new test with 3 bdms:\n\n1. bdm where is_volume is False\n2. bdm where attachment_id is set\n3. bdm where attachment_id is not set","commit_id":"0a1c638db39567b28203a9240111f97e349d3117"},{"author":{"_account_id":17814,"name":"fengzhr","email":"fengzhr@awcloud.com","username":"space"},"change_message_id":"b1d371ba47527e984729cbdbe78ad66445cb2382","unresolved":false,"context_lines":[{"line_number":3941,"context_line":"        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3942,"context_line":"        for bdm in bdms:"},{"line_number":3943,"context_line":"            if bdm.is_volume:"},{"line_number":3944,"context_line":"                if bdm.attachment_id:"},{"line_number":3945,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3946,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3949,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7ffa3b31_f1ed35f0","line":3946,"range":{"start_line":3944,"start_character":16,"end_line":3946,"end_character":72},"in_reply_to":"7ffa3b31_a9386fed","updated":"2017-04-21 06:41:34.000000000","message":"Since you have added a branch, you should add a test case for this, please.","commit_id":"0a1c638db39567b28203a9240111f97e349d3117"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"a132771cb22792dd642c5194f63a1929ca572189","unresolved":false,"context_lines":[{"line_number":3945,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3946,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    if connector is None:"},{"line_number":3949,"context_line":"                        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3950,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3951,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_f56cb39d","line":3948,"range":{"start_line":3948,"start_character":20,"end_line":3948,"end_character":41},"updated":"2017-04-23 20:14:23.000000000","message":"So this is always going to be true right? Did we want connector as a kwarg defaulting to None?","commit_id":"10166871ca35cd70ad3368e9e9ac39e2d3b61406"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eb0b2b30e8c827123db84bb103e377534f2d314","unresolved":false,"context_lines":[{"line_number":3945,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3946,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    if connector is None:"},{"line_number":3949,"context_line":"                        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3950,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3951,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_21f1546c","line":3948,"range":{"start_line":3948,"start_character":20,"end_line":3948,"end_character":41},"in_reply_to":"5ff73747_480a9c26","updated":"2017-04-27 15:53:35.000000000","message":"Ah, the loop, I see now, makes sense.","commit_id":"10166871ca35cd70ad3368e9e9ac39e2d3b61406"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"9d0bace5fbaf636ac05d41b0bf9a3d4992d745cf","unresolved":false,"context_lines":[{"line_number":3945,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3946,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    if connector is None:"},{"line_number":3949,"context_line":"                        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3950,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3951,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_480a9c26","line":3948,"range":{"start_line":3948,"start_character":20,"end_line":3948,"end_character":41},"in_reply_to":"5ff73747_d5ef77ae","updated":"2017-04-24 12:57:28.000000000","message":"Apologies, I missed this and just assumed we were prematurely looking to handle the stashed/remote connector use case here.","commit_id":"10166871ca35cd70ad3368e9e9ac39e2d3b61406"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f483dc9c4b787f91b27dd433b784f719e08ce537","unresolved":false,"context_lines":[{"line_number":3945,"context_line":"                    self.volume_api.attachment_delete(context,"},{"line_number":3946,"context_line":"                                                      bdm.attachment_id)"},{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    if connector is None:"},{"line_number":3949,"context_line":"                        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3950,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3951,"context_line":"                                                         bdm.volume_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_d5ef77ae","line":3948,"range":{"start_line":3948,"start_character":20,"end_line":3948,"end_character":41},"in_reply_to":"5ff73747_f56cb39d","updated":"2017-04-23 22:02:40.000000000","message":"It\u0027s true until we terminate a connection for one volume bdm. Before this change we\u0027d just blindly always get the connector even if we never used it. I don\u0027t see the problem or a need for a kwarg at this time.","commit_id":"10166871ca35cd70ad3368e9e9ac39e2d3b61406"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"5eb0b2b30e8c827123db84bb103e377534f2d314","unresolved":false,"context_lines":[{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    if connector is None:"},{"line_number":3949,"context_line":"                        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3950,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3951,"context_line":"                                                         bdm.volume_id,"},{"line_number":3952,"context_line":"                                                         connector)"},{"line_number":3953,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_899ca66a","line":3950,"updated":"2017-04-27 15:53:35.000000000","message":"I am trying to convince myself everywhere we used to call terminate connection we want to delete the attachment. I guess this will become clearer eventually, and its not a bad place to start.","commit_id":"10166871ca35cd70ad3368e9e9ac39e2d3b61406"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bf4206dc0a06fa74b644e4e8db031dfd26d57d8c","unresolved":false,"context_lines":[{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    if connector is None:"},{"line_number":3949,"context_line":"                        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3950,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3951,"context_line":"                                                         bdm.volume_id,"},{"line_number":3952,"context_line":"                                                         connector)"},{"line_number":3953,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_ee20ab9d","line":3950,"in_reply_to":"5ff73747_0939b6f0","updated":"2017-04-28 13:49:33.000000000","message":"I think we can also move forward on this stuff for now and shake things out as we convert the actual operations (like resize for this one).","commit_id":"10166871ca35cd70ad3368e9e9ac39e2d3b61406"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"415715b9d4267a01f11c39b7df9dab302fd33554","unresolved":false,"context_lines":[{"line_number":3947,"context_line":"                else:"},{"line_number":3948,"context_line":"                    if connector is None:"},{"line_number":3949,"context_line":"                        connector \u003d self.driver.get_volume_connector(instance)"},{"line_number":3950,"context_line":"                    self.volume_api.terminate_connection(context,"},{"line_number":3951,"context_line":"                                                         bdm.volume_id,"},{"line_number":3952,"context_line":"                                                         connector)"},{"line_number":3953,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_0939b6f0","line":3950,"in_reply_to":"5ff73747_899ca66a","updated":"2017-04-27 16:04:35.000000000","message":"I don\u0027t know either for sure, I have TODOs with the same question in the swap volume patch, i.e. do we update the attachment with connector\u003dNone, or delete the attachment?\n\nhttps://review.openstack.org/#/c/456971/","commit_id":"10166871ca35cd70ad3368e9e9ac39e2d3b61406"}]}
