)]}'
{"cinder/tests/unit/test_volume.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"030970ad49151f1a4f0523b1c8daf64006ff13c5","unresolved":false,"context_lines":[{"line_number":2372,"context_line":"                          self.context,"},{"line_number":2373,"context_line":"                          volume2)"},{"line_number":2374,"context_line":""},{"line_number":2375,"context_line":"        # detach first volume and then 2nd volume"},{"line_number":2376,"context_line":"        self.volume.detach_volume(self.context, volume1_id, attachment[\u0027id\u0027])"},{"line_number":2377,"context_line":"        vol1 \u003d db.volume_get(self.context, volume1_id)"},{"line_number":2378,"context_line":"        self.assertEqual(\u0027available\u0027, vol1[\u0027status\u0027])"},{"line_number":2379,"context_line":""},{"line_number":2380,"context_line":"        self.volume.delete_volume(self.context, volume1)"},{"line_number":2381,"context_line":"        self.assertRaises(exception.VolumeNotFound,"},{"line_number":2382,"context_line":"                          db.volume_get,"},{"line_number":2383,"context_line":"                          self.context,"},{"line_number":2384,"context_line":"                          volume1_id)"},{"line_number":2385,"context_line":""},{"line_number":2386,"context_line":"        self.volume.detach_volume(self.context, volume2_id, attachment2[\u0027id\u0027])"},{"line_number":2387,"context_line":"        vol2 \u003d db.volume_get(self.context, volume2_id)"},{"line_number":2388,"context_line":"        self.assertEqual(\u0027available\u0027, vol2[\u0027status\u0027])"},{"line_number":2389,"context_line":""},{"line_number":2390,"context_line":"        self.volume.delete_volume(self.context, volume2)"},{"line_number":2391,"context_line":"        self.assertRaises(exception.VolumeNotFound,"},{"line_number":2392,"context_line":"                          db.volume_get,"},{"line_number":2393,"context_line":"                          self.context,"},{"line_number":2394,"context_line":"                          volume2_id)"},{"line_number":2395,"context_line":""},{"line_number":2396,"context_line":"    def test_detach_invalid_attachment_id(self):"},{"line_number":2397,"context_line":"        \"\"\"Make sure if the attachment id isn\u0027t found we raise.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_d0778f00","line":2394,"range":{"start_line":2375,"start_character":8,"end_line":2394,"end_character":37},"updated":"2016-10-21 10:11:42.000000000","message":"Loop could be used for such kind of duplication.","commit_id":"cf5c1fc360a55f4e736a095d81749ae8ec588dd2"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4bc5ce7026f6c159b7591456ac6f0bc96fe87482","unresolved":false,"context_lines":[{"line_number":2391,"context_line":"        self.assertRaises(exception.VolumeNotFound,"},{"line_number":2392,"context_line":"                          db.volume_get,"},{"line_number":2393,"context_line":"                          self.context,"},{"line_number":2394,"context_line":"                          volume2_id)"},{"line_number":2395,"context_line":""},{"line_number":2396,"context_line":"    def test_detach_invalid_attachment_id(self):"},{"line_number":2397,"context_line":"        \"\"\"Make sure if the attachment id isn\u0027t found we raise.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_db2f753c","line":2394,"in_reply_to":"da6895a0_78822102","updated":"2016-10-30 02:16:09.000000000","message":"If core Cinder team IS ok with it, then ok. Keep doing code duplication in unnecessary cases.","commit_id":"cf5c1fc360a55f4e736a095d81749ae8ec588dd2"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"ac9e2f9444840661f523758e18deffdec25b46c2","unresolved":false,"context_lines":[{"line_number":2372,"context_line":"                          self.context,"},{"line_number":2373,"context_line":"                          volume2)"},{"line_number":2374,"context_line":""},{"line_number":2375,"context_line":"        # detach first volume and then 2nd volume"},{"line_number":2376,"context_line":"        self.volume.detach_volume(self.context, volume1_id, attachment[\u0027id\u0027])"},{"line_number":2377,"context_line":"        vol1 \u003d db.volume_get(self.context, volume1_id)"},{"line_number":2378,"context_line":"        self.assertEqual(\u0027available\u0027, vol1[\u0027status\u0027])"},{"line_number":2379,"context_line":""},{"line_number":2380,"context_line":"        self.volume.delete_volume(self.context, volume1)"},{"line_number":2381,"context_line":"        self.assertRaises(exception.VolumeNotFound,"},{"line_number":2382,"context_line":"                          db.volume_get,"},{"line_number":2383,"context_line":"                          self.context,"},{"line_number":2384,"context_line":"                          volume1_id)"},{"line_number":2385,"context_line":""},{"line_number":2386,"context_line":"        self.volume.detach_volume(self.context, volume2_id, attachment2[\u0027id\u0027])"},{"line_number":2387,"context_line":"        vol2 \u003d db.volume_get(self.context, volume2_id)"},{"line_number":2388,"context_line":"        self.assertEqual(\u0027available\u0027, vol2[\u0027status\u0027])"},{"line_number":2389,"context_line":""},{"line_number":2390,"context_line":"        self.volume.delete_volume(self.context, volume2)"},{"line_number":2391,"context_line":"        self.assertRaises(exception.VolumeNotFound,"},{"line_number":2392,"context_line":"                          db.volume_get,"},{"line_number":2393,"context_line":"                          self.context,"},{"line_number":2394,"context_line":"                          volume2_id)"},{"line_number":2395,"context_line":""},{"line_number":2396,"context_line":"    def test_detach_invalid_attachment_id(self):"},{"line_number":2397,"context_line":"        \"\"\"Make sure if the attachment id isn\u0027t found we raise.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_78822102","line":2394,"range":{"start_line":2375,"start_character":8,"end_line":2394,"end_character":37},"in_reply_to":"da6895a0_d0778f00","updated":"2016-10-21 13:36:48.000000000","message":"I can make the change if I need to do another iteration.","commit_id":"cf5c1fc360a55f4e736a095d81749ae8ec588dd2"}],"cinder/volume/manager.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"030970ad49151f1a4f0523b1c8daf64006ff13c5","unresolved":false,"context_lines":[{"line_number":939,"context_line":"                    context,"},{"line_number":940,"context_line":"                    host_name_sanitized))"},{"line_number":941,"context_line":"        if attachments:"},{"line_number":942,"context_line":"            # check if volume\u003c-\u003einstance mapping is already tracked in DB"},{"line_number":943,"context_line":"            for attachment in attachments:"},{"line_number":944,"context_line":"                if attachment[\u0027volume_id\u0027] \u003d\u003d volume_id:"},{"line_number":945,"context_line":"                    self.db.volume_update(context, volume_id,"},{"line_number":946,"context_line":"                                          {\u0027status\u0027: \u0027in-use\u0027})"},{"line_number":947,"context_line":"                    return attachment"},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"        self._notify_about_volume_usage(context, volume,"},{"line_number":950,"context_line":"                                        \"attach.start\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_f01d73be","line":947,"range":{"start_line":942,"start_character":12,"end_line":947,"end_character":37},"updated":"2016-10-21 10:11:42.000000000","message":"You do action that should have been done in DB request.","commit_id":"cf5c1fc360a55f4e736a095d81749ae8ec588dd2"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4bc5ce7026f6c159b7591456ac6f0bc96fe87482","unresolved":false,"context_lines":[{"line_number":944,"context_line":"                if attachment[\u0027volume_id\u0027] \u003d\u003d volume_id:"},{"line_number":945,"context_line":"                    self.db.volume_update(context, volume_id,"},{"line_number":946,"context_line":"                                          {\u0027status\u0027: \u0027in-use\u0027})"},{"line_number":947,"context_line":"                    return attachment"},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"        self._notify_about_volume_usage(context, volume,"},{"line_number":950,"context_line":"                                        \"attach.start\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba5da102_3bfa31be","line":947,"in_reply_to":"da6895a0_d8cb2d71","updated":"2016-10-30 02:16:09.000000000","message":"Huang,\n\nThe fact that it is required here means that bug you are reffering to states false thing. IT IS required and should not have been removed completely. Again, such filtering should be done on DB layer only. And reffered bug should have been marked as \"invalid\" right away.","commit_id":"cf5c1fc360a55f4e736a095d81749ae8ec588dd2"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"ac9e2f9444840661f523758e18deffdec25b46c2","unresolved":false,"context_lines":[{"line_number":939,"context_line":"                    context,"},{"line_number":940,"context_line":"                    host_name_sanitized))"},{"line_number":941,"context_line":"        if attachments:"},{"line_number":942,"context_line":"            # check if volume\u003c-\u003einstance mapping is already tracked in DB"},{"line_number":943,"context_line":"            for attachment in attachments:"},{"line_number":944,"context_line":"                if attachment[\u0027volume_id\u0027] \u003d\u003d volume_id:"},{"line_number":945,"context_line":"                    self.db.volume_update(context, volume_id,"},{"line_number":946,"context_line":"                                          {\u0027status\u0027: \u0027in-use\u0027})"},{"line_number":947,"context_line":"                    return attachment"},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"        self._notify_about_volume_usage(context, volume,"},{"line_number":950,"context_line":"                                        \"attach.start\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_d8cb2d71","line":947,"range":{"start_line":942,"start_character":12,"end_line":947,"end_character":37},"in_reply_to":"da6895a0_f01d73be","updated":"2016-10-21 13:36:48.000000000","message":"Why? Did you take a look at bug 1632433? I think it\u0027s a valid bug.","commit_id":"cf5c1fc360a55f4e736a095d81749ae8ec588dd2"}]}
