)]}'
{"cinder/coordination.py":[{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"bb1e03f74e6f90a00bf0f3ab25d7af4be85c12ee","unresolved":true,"context_lines":[{"line_number":81,"context_line":"        member_id \u003d (self.prefix + self.agent_id).encode(\u0027ascii\u0027)"},{"line_number":82,"context_line":"        self.coordinator \u003d coordination.get_coordinator(backend_url, member_id)"},{"line_number":83,"context_line":"        self.coordinator.start(start_heart\u003dTrue)"},{"line_number":84,"context_line":"        self._file_path \u003d self._get_file_path(backend_url)"},{"line_number":85,"context_line":"        self.started \u003d True"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def stop(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"92d3cfbd_4ad64059","line":84,"updated":"2021-07-09 12:04:19.000000000","message":"how does this work when the coordinator backend is memcached?  We aren\u0027t even using file locks at that point?","commit_id":"43b40ad860d5a80dc617667c0dcaf40502dc6514"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ac17aa4a6332ddb7613909f9d586c3f2cfdddc80","unresolved":true,"context_lines":[{"line_number":81,"context_line":"        member_id \u003d (self.prefix + self.agent_id).encode(\u0027ascii\u0027)"},{"line_number":82,"context_line":"        self.coordinator \u003d coordination.get_coordinator(backend_url, member_id)"},{"line_number":83,"context_line":"        self.coordinator.start(start_heart\u003dTrue)"},{"line_number":84,"context_line":"        self._file_path \u003d self._get_file_path(backend_url)"},{"line_number":85,"context_line":"        self.started \u003d True"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def stop(self):"}],"source_content_type":"text/x-python","patch_set":14,"id":"032f73b2_4d860ca8","line":84,"in_reply_to":"92d3cfbd_4ad64059","updated":"2021-07-13 13:46:14.000000000","message":"The _get_file_path checks if the backend_url is file based (L65) and if it isn\u0027t then it returns None, which we then check on L110 to see if we have to delete files or not.","commit_id":"43b40ad860d5a80dc617667c0dcaf40502dc6514"}],"cinder/tests/unit/api/v3/test_attachments.py":[{"author":{"_account_id":28522,"name":"Hervé Beraud","email":"herveberaud.pro@gmail.com","username":"hberaud"},"change_message_id":"1309a50c1e3f5d621bafd305a92155b13a09f46f","unresolved":false,"context_lines":[{"line_number":217,"context_line":"    def _create_attachment(self, ctxt\u003dNone, volume_uuid\u003dNone,"},{"line_number":218,"context_line":"                           instance_uuid\u003dNone, mountpoint\u003dNone,"},{"line_number":219,"context_line":"                           attach_time\u003dNone, detach_time\u003dNone,"},{"line_number":220,"context_line":"                           attach_status\u003dNone, attach_mode\u003dNone, host\u003d\u0027\u0027):"},{"line_number":221,"context_line":"        \"\"\"Create an attachment object.\"\"\""},{"line_number":222,"context_line":"        ctxt \u003d ctxt or self.ctxt"},{"line_number":223,"context_line":"        attachment \u003d objects.VolumeAttachment(ctxt)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_8378912b","line":220,"range":{"start_line":220,"start_character":70,"end_line":220,"end_character":72},"updated":"2019-10-21 15:18:41.000000000","message":"I guess this change help us to properly initialize the `connector`, I\u0027m right?","commit_id":"73ff876f0692068a4a02d5bc4993f8aa4272b46d"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4fadea31885707a506e3a61661f5ac65b4badd8e","unresolved":false,"context_lines":[{"line_number":217,"context_line":"    def _create_attachment(self, ctxt\u003dNone, volume_uuid\u003dNone,"},{"line_number":218,"context_line":"                           instance_uuid\u003dNone, mountpoint\u003dNone,"},{"line_number":219,"context_line":"                           attach_time\u003dNone, detach_time\u003dNone,"},{"line_number":220,"context_line":"                           attach_status\u003dNone, attach_mode\u003dNone, host\u003d\u0027\u0027):"},{"line_number":221,"context_line":"        \"\"\"Create an attachment object.\"\"\""},{"line_number":222,"context_line":"        ctxt \u003d ctxt or self.ctxt"},{"line_number":223,"context_line":"        attachment \u003d objects.VolumeAttachment(ctxt)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_ef66f5bb","line":220,"range":{"start_line":220,"start_character":70,"end_line":220,"end_character":72},"in_reply_to":"3fa7e38b_8378912b","updated":"2019-10-22 16:00:36.000000000","message":"Yes, that\u0027s correct.  If we don\u0027t do this we end up in the tests with a connector that has the \u0027host\u0027 key set to None, which can never happen in a real environment https://opendev.org/openstack/os-brick/src/commit/6ea276c22e204531653110089759d800fd4f7bbf/os_brick/initiator/connector.py#L221","commit_id":"73ff876f0692068a4a02d5bc4993f8aa4272b46d"}],"cinder/tests/unit/volume/__init__.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f55ff3c4b1848c1500396dc4f6c10340da4cfce7","unresolved":true,"context_lines":[{"line_number":81,"context_line":"        self.called \u003d []"},{"line_number":82,"context_line":"        self.volume_api \u003d volume_api.API()"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        # Don\u0027t accidentaly make a call to delete a file from the system"},{"line_number":85,"context_line":"        self.mock_lock_remove \u003d self.patch(\u0027cinder.utils.synchronized_remove\u0027)"},{"line_number":86,"context_line":"        self.mock_dlm_lock_remove \u003d self.patch(\u0027cinder.coordination.os.remove\u0027)"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"30ea7183_6de70312","line":84,"updated":"2021-05-13 02:21:30.000000000","message":"This is a good idea.","commit_id":"ba3314273abd8408141e58e53f7467bdff454ebc"}],"cinder/utils.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f55ff3c4b1848c1500396dc4f6c10340da4cfce7","unresolved":true,"context_lines":[{"line_number":71,"context_line":"    # This may result in a number of useless log entries complaining about not"},{"line_number":72,"context_line":"    # being able to remove the lock until the patch to add do_log param to the"},{"line_number":73,"context_line":"    # remove_external_lock_file in oslo.concurrency is merged (Change-ID:"},{"line_number":74,"context_line":"    # I5ce8be34c9f2c4c59ea99dabc6760c3300f743a3), we bump our requirements and"},{"line_number":75,"context_line":"    # use it here."},{"line_number":76,"context_line":"    for name in (volume_id + \u0027-delete_volume\u0027, volume_id,"},{"line_number":77,"context_line":"                 volume_id + \u0027-detach_volume\u0027):"}],"source_content_type":"text/x-python","patch_set":10,"id":"6aa4e25d_8fe1bd26","line":74,"range":{"start_line":74,"start_character":6,"end_line":74,"end_character":47},"updated":"2021-05-13 02:21:30.000000000","message":"this has merged and is in 4.1.1, 4.2.0, 4.3.0, 4.3.1, 4.4.0 (4.4.0 is the min in requirements.txt), so I think you can go ahead and make the change now","commit_id":"ba3314273abd8408141e58e53f7467bdff454ebc"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"4e619725f083731d19f24056c1a73dc84d3909ae","unresolved":true,"context_lines":[{"line_number":71,"context_line":"    # This may result in a number of useless log entries complaining about not"},{"line_number":72,"context_line":"    # being able to remove the lock until the patch to add do_log param to the"},{"line_number":73,"context_line":"    # remove_external_lock_file in oslo.concurrency is merged (Change-ID:"},{"line_number":74,"context_line":"    # I5ce8be34c9f2c4c59ea99dabc6760c3300f743a3), we bump our requirements and"},{"line_number":75,"context_line":"    # use it here."},{"line_number":76,"context_line":"    for name in (volume_id + \u0027-delete_volume\u0027, volume_id,"},{"line_number":77,"context_line":"                 volume_id + \u0027-detach_volume\u0027):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7111f742_286eb19d","line":74,"range":{"start_line":74,"start_character":6,"end_line":74,"end_character":47},"in_reply_to":"6aa4e25d_8fe1bd26","updated":"2021-05-13 15:26:51.000000000","message":"In the end we don\u0027t even need the do_log parameter, since it was accepted to make it an idempotent operation without raising warning on missing files. :-)","commit_id":"ba3314273abd8408141e58e53f7467bdff454ebc"}],"cinder/volume/manager.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"303ce6a2806d2046ac13ea597fcef4ecb223ce8b","unresolved":false,"context_lines":[{"line_number":893,"context_line":""},{"line_number":894,"context_line":"            self.driver.remove_export(context, volume)"},{"line_number":895,"context_line":"            if unmanage_only:"},{"line_number":896,"context_line":"                self.driver.unmanage(volume)"},{"line_number":897,"context_line":"            elif cascade:"},{"line_number":898,"context_line":"                LOG.debug(\u0027Performing cascade delete.\u0027)"},{"line_number":899,"context_line":"                snapshots \u003d objects.SnapshotList.get_all_for_volume(context,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_6dff5b00","line":896,"updated":"2019-11-13 09:28:02.000000000","message":"-1: We should also clean the locks after unmanage","commit_id":"73ff876f0692068a4a02d5bc4993f8aa4272b46d"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"303ce6a2806d2046ac13ea597fcef4ecb223ce8b","unresolved":false,"context_lines":[{"line_number":1243,"context_line":"            snapshot.save()"},{"line_number":1244,"context_line":""},{"line_number":1245,"context_line":"            if unmanage_only:"},{"line_number":1246,"context_line":"                self.driver.unmanage_snapshot(snapshot)"},{"line_number":1247,"context_line":"            else:"},{"line_number":1248,"context_line":"                self.driver_delete_snapshot(snapshot)"},{"line_number":1249,"context_line":"        except exception.SnapshotIsBusy as busy_error:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_cd0f6f2d","line":1246,"updated":"2019-11-13 09:28:02.000000000","message":"-1: We also have to remove the locks when we unmanage.","commit_id":"73ff876f0692068a4a02d5bc4993f8aa4272b46d"}],"requirements.txt":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f55ff3c4b1848c1500396dc4f6c10340da4cfce7","unresolved":true,"context_lines":[{"line_number":15,"context_line":"lxml\u003e\u003d4.5.2 # BSD"},{"line_number":16,"context_line":"oauth2client\u003e\u003d4.1.3 # Apache-2.0"},{"line_number":17,"context_line":"oslo.config\u003e\u003d8.3.2 # Apache-2.0"},{"line_number":18,"context_line":"oslo.concurrency\u003e\u003d4.4.0 # Apache-2.0"},{"line_number":19,"context_line":"oslo.context\u003e\u003d3.1.1 # Apache-2.0"},{"line_number":20,"context_line":"oslo.db\u003e\u003d8.4.0 # Apache-2.0"},{"line_number":21,"context_line":"oslo.log\u003e\u003d4.4.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":10,"id":"bfc43035_a4611c0d","line":18,"updated":"2021-05-13 02:21:30.000000000","message":"This contains the fix mentioned in the comment in cinder/utils.py","commit_id":"ba3314273abd8408141e58e53f7467bdff454ebc"}]}
