)]}'
{"cinder/tests/unit/volume/test_volume.py":[{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"5dcfe236fe2028c0faa661f651c84908aa0708bd","unresolved":false,"context_lines":[{"line_number":1815,"context_line":"        # it does not have any existing attachments."},{"line_number":1816,"context_line":"        self.assertFalse(volume.multiattach)"},{"line_number":1817,"context_line":"        self.assertEqual(0, len(volume.volume_attachment))"},{"line_number":1818,"context_line":"        # Attach the first instance which is OK and should update the volume"},{"line_number":1819,"context_line":"        # status to \u0027reserved\u0027."},{"line_number":1820,"context_line":"        self.volume_api._attachment_reserve(self.context, volume, fake.UUID1)"},{"line_number":1821,"context_line":"        # Try attaching a different instance to the same volume which should"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_ce02ee6f","line":1818,"range":{"start_line":1818,"start_character":10,"end_line":1818,"end_character":16},"updated":"2018-04-10 18:42:30.000000000","message":"The test technically just reserves it which is indeed the first step to attaching, but it might be confusing to someone who\u0027s new to the flow.","commit_id":"dd93b0c7190681620c3eed9937462901da42c7c4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"047bfb25069cc96af070850824ae2054527afe50","unresolved":false,"context_lines":[{"line_number":1815,"context_line":"        # it does not have any existing attachments."},{"line_number":1816,"context_line":"        self.assertFalse(volume.multiattach)"},{"line_number":1817,"context_line":"        self.assertEqual(0, len(volume.volume_attachment))"},{"line_number":1818,"context_line":"        # Attach the first instance which is OK and should update the volume"},{"line_number":1819,"context_line":"        # status to \u0027reserved\u0027."},{"line_number":1820,"context_line":"        self.volume_api._attachment_reserve(self.context, volume, fake.UUID1)"},{"line_number":1821,"context_line":"        # Try attaching a different instance to the same volume which should"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_a434794b","line":1818,"range":{"start_line":1818,"start_character":10,"end_line":1818,"end_character":16},"in_reply_to":"bf659307_ce02ee6f","updated":"2018-04-10 20:15:43.000000000","message":"I\u0027ll update if I need to respin.","commit_id":"dd93b0c7190681620c3eed9937462901da42c7c4"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"5dcfe236fe2028c0faa661f651c84908aa0708bd","unresolved":false,"context_lines":[{"line_number":1818,"context_line":"        # Attach the first instance which is OK and should update the volume"},{"line_number":1819,"context_line":"        # status to \u0027reserved\u0027."},{"line_number":1820,"context_line":"        self.volume_api._attachment_reserve(self.context, volume, fake.UUID1)"},{"line_number":1821,"context_line":"        # Try attaching a different instance to the same volume which should"},{"line_number":1822,"context_line":"        # fail."},{"line_number":1823,"context_line":"        ex \u003d self.assertRaises(exception.InvalidVolume,"},{"line_number":1824,"context_line":"                               self.volume_api._attachment_reserve,"}],"source_content_type":"text/x-python","patch_set":3,"id":"bf659307_4eeedeb4","line":1821,"range":{"start_line":1821,"start_character":14,"end_line":1821,"end_character":23},"updated":"2018-04-10 18:42:30.000000000","message":"Same as above.","commit_id":"dd93b0c7190681620c3eed9937462901da42c7c4"}],"cinder/volume/api.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"026c5bd541466217fe2186e46c3ec4aa2cca627b","unresolved":false,"context_lines":[{"line_number":2082,"context_line":"        # determine if we\u0027re attaching to the Cinder host for some work or if"},{"line_number":2083,"context_line":"        # we\u0027re being used by the outside world."},{"line_number":2084,"context_line":"        expected \u003d {\u0027multiattach\u0027: vref.multiattach,"},{"line_number":2085,"context_line":"                    \u0027status\u0027: ((\u0027available\u0027, \u0027in-use\u0027, \u0027downloading\u0027)"},{"line_number":2086,"context_line":"                               if vref.multiattach"},{"line_number":2087,"context_line":"                               else (\u0027available\u0027, \u0027downloading\u0027))}"},{"line_number":2088,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_f589c125","line":2085,"range":{"start_line":2085,"start_character":0,"end_line":2085,"end_character":69},"updated":"2018-04-10 16:34:24.000000000","message":"I think we\u0027re also going to need to add \u0027reserved\u0027 in the status checks here.","commit_id":"eedf07496ad21417939fe99a85bfc15133fad90b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6f863a7aee30c52dc9743891a4e2c37b131d1dab","unresolved":false,"context_lines":[{"line_number":2082,"context_line":"        # determine if we\u0027re attaching to the Cinder host for some work or if"},{"line_number":2083,"context_line":"        # we\u0027re being used by the outside world."},{"line_number":2084,"context_line":"        expected \u003d {\u0027multiattach\u0027: vref.multiattach,"},{"line_number":2085,"context_line":"                    \u0027status\u0027: ((\u0027available\u0027, \u0027in-use\u0027, \u0027downloading\u0027)"},{"line_number":2086,"context_line":"                               if vref.multiattach"},{"line_number":2087,"context_line":"                               else (\u0027available\u0027, \u0027downloading\u0027))}"},{"line_number":2088,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_75b1318f","line":2085,"range":{"start_line":2085,"start_character":0,"end_line":2085,"end_character":69},"in_reply_to":"bf659307_959de558","updated":"2018-04-10 16:48:18.000000000","message":"(11:40:59 AM) lyarwood: mriedem: that appears to be enough but I\u0027m just spamming requests from the cli again\n(11:43:22 AM) mriedem: lyarwood: ok i\u0027m updating it per jgriffith\u0027s comment\n(11:44:00 AM) jgriffith: lyarwood: so just the refresh was enough?\n(11:44:18 AM) lyarwood: mriedem: that\u0027s a different issue though right? That\u0027s allowing concurrent attach requests for multiattach volumes that are reserved?\n(11:44:27 AM) ***lyarwood might be missing something\n(11:44:34 AM) jgriffith: lyarwood: if so that\u0027s great, and we can consider that if adding reserve to the status check has consequences (I still think it might)\n(11:46:19 AM) lyarwood: jgriffith: yeah as above I can\u0027t see how adding reserved helps with this non-multiattach race tbh\n(11:46:50 AM) lyarwood: jgriffith: we only expect available or downloading in that case right?\n(11:46:57 AM) mriedem: yeah\n(11:47:17 AM) jgriffith: lyarwood: yes\n(11:47:19 AM) mriedem: and yes i think adding \u0027reserved\u0027 would only be for racing to attach the same multiattach volume to separate instances\n(11:47:29 AM) jgriffith: mriedem: +1\n(11:47:32 AM) lyarwood: kk\n(11:47:37 AM) lyarwood: just checking, thanks\n(11:47:42 AM) mriedem: so if just the volume refresh fixes it, then i could remove the \u0027reserved\u0027 part of this patch, and that can be done later if it\u0027s a problem","commit_id":"eedf07496ad21417939fe99a85bfc15133fad90b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"050e6a165d96c477547f32b289fe6032f068d7d5","unresolved":false,"context_lines":[{"line_number":2082,"context_line":"        # determine if we\u0027re attaching to the Cinder host for some work or if"},{"line_number":2083,"context_line":"        # we\u0027re being used by the outside world."},{"line_number":2084,"context_line":"        expected \u003d {\u0027multiattach\u0027: vref.multiattach,"},{"line_number":2085,"context_line":"                    \u0027status\u0027: ((\u0027available\u0027, \u0027in-use\u0027, \u0027downloading\u0027)"},{"line_number":2086,"context_line":"                               if vref.multiattach"},{"line_number":2087,"context_line":"                               else (\u0027available\u0027, \u0027downloading\u0027))}"},{"line_number":2088,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_959de558","line":2085,"range":{"start_line":2085,"start_character":0,"end_line":2085,"end_character":69},"in_reply_to":"bf659307_f589c125","updated":"2018-04-10 16:36:48.000000000","message":"Good point, will add.","commit_id":"eedf07496ad21417939fe99a85bfc15133fad90b"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"026c5bd541466217fe2186e46c3ec4aa2cca627b","unresolved":false,"context_lines":[{"line_number":2097,"context_line":"                # Refresh the volume reference in case multiple instances were"},{"line_number":2098,"context_line":"                # being concurrently attached to the same non-multiattach"},{"line_number":2099,"context_line":"                # volume."},{"line_number":2100,"context_line":"                vref \u003d objects.Volume.get_by_id(ctxt, vref.id)"},{"line_number":2101,"context_line":"                for attachment in vref.volume_attachment:"},{"line_number":2102,"context_line":"                    if attachment.instance_uuid !\u003d instance_uuid:"},{"line_number":2103,"context_line":"                        override \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf659307_158d5530","line":2100,"range":{"start_line":2100,"start_character":23,"end_line":2100,"end_character":30},"updated":"2018-04-10 16:34:24.000000000","message":"This is probably good to have but I think it\u0027s only half of the problem.","commit_id":"eedf07496ad21417939fe99a85bfc15133fad90b"}]}
