)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"4cd9221456bb6a5c2132891c7e2c6143a9342052","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Those new operations have been enabled by:"},{"line_number":13,"context_line":"I43b67a50d998d43a6ff78c917093c513231b6ff2"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partially implements blueprint: volume-ops-when-shelved"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I12444f4aa254be60b84ecc5da11733e7474da297"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a5ae5dd_4fcec5b5","line":15,"updated":"2016-02-09 11:53:09.000000000","message":"Now this blueprint has gone away, lets just remove that from the commit, and track this separately.","commit_id":"e58fc6b4c2165dc3d306a90da9392bb69c2769a7"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"0e03d862f645c76f5b841474c04974894a9210e9","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Those new operations have been enabled by:"},{"line_number":13,"context_line":"I43b67a50d998d43a6ff78c917093c513231b6ff2"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partially implements blueprint: volume-ops-when-shelved"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I12444f4aa254be60b84ecc5da11733e7474da297"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a5ae5dd_e1cd3d87","line":15,"in_reply_to":"5a5ae5dd_4fcec5b5","updated":"2016-02-09 15:15:00.000000000","message":"Done","commit_id":"e58fc6b4c2165dc3d306a90da9392bb69c2769a7"}],"nova/tests/functional/api/client.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"040bbede22909f2ea5c7f6b0730b31ced5a9ca33","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        return self.api_get(\u0027/servers/%s/os-volume_attachments\u0027 %"},{"line_number":327,"context_line":"                            (server_id)).body[\u0027volumeAttachments\u0027]"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def post_server_volume(self, server_id, volume_attachment, **kwargs):"},{"line_number":330,"context_line":"        return self.api_post(\u0027/servers/%s/os-volume_attachments\u0027 %"},{"line_number":331,"context_line":"                             (server_id), volume_attachment, **kwargs"},{"line_number":332,"context_line":"                            ).body[\u0027volumeAttachment\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_0eef981e","line":329,"updated":"2016-02-08 20:46:42.000000000","message":"instead of adding more **kwargs here, can we just do the raw post in the test?","commit_id":"e58fc6b4c2165dc3d306a90da9392bb69c2769a7"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"0e03d862f645c76f5b841474c04974894a9210e9","unresolved":false,"context_lines":[{"line_number":326,"context_line":"        return self.api_get(\u0027/servers/%s/os-volume_attachments\u0027 %"},{"line_number":327,"context_line":"                            (server_id)).body[\u0027volumeAttachments\u0027]"},{"line_number":328,"context_line":""},{"line_number":329,"context_line":"    def post_server_volume(self, server_id, volume_attachment, **kwargs):"},{"line_number":330,"context_line":"        return self.api_post(\u0027/servers/%s/os-volume_attachments\u0027 %"},{"line_number":331,"context_line":"                             (server_id), volume_attachment, **kwargs"},{"line_number":332,"context_line":"                            ).body[\u0027volumeAttachment\u0027]"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_61a06da6","line":329,"in_reply_to":"5a5ae5dd_0eef981e","updated":"2016-02-09 15:15:00.000000000","message":"Done","commit_id":"e58fc6b4c2165dc3d306a90da9392bb69c2769a7"}],"nova/tests/functional/test_servers.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dcb7f5dfbba5dec1478db52bf49cbd80e2601ba9","unresolved":false,"context_lines":[{"line_number":810,"context_line":""},{"line_number":811,"context_line":"    def test_attach_detach_vol_to_shelved_offloaded_server(self):"},{"line_number":812,"context_line":"        self.flags(shelved_offload_time\u003d0)"},{"line_number":813,"context_line":"        server \u003d self._create_server()[1]"},{"line_number":814,"context_line":"        server_id \u003d server[\u0027id\u0027]"},{"line_number":815,"context_line":"        self._wait_for_state_change(server, \u0027BUILD\u0027)"},{"line_number":816,"context_line":"        self.api.post_server_action(server_id, {\u0027shelve\u0027: None})"},{"line_number":817,"context_line":"        found_server \u003d self._wait_for_state_change(server, \u0027ACTIVE\u0027)"},{"line_number":818,"context_line":"        self.assertEqual(\u0027SHELVED_OFFLOADED\u0027, found_server[\u0027status\u0027])"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"        # Test attach volume"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_d7577e00","line":817,"range":{"start_line":813,"start_character":0,"end_line":817,"end_character":68},"updated":"2016-05-28 17:01:26.000000000","message":"here is the same as the previous test, can we merge them as a single internal method?","commit_id":"3728237678e274024db07f725f3933786060bd1a"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"dd5d98773b1b844645b85bf3b0de7e6c7db92538","unresolved":false,"context_lines":[{"line_number":810,"context_line":""},{"line_number":811,"context_line":"    def test_attach_detach_vol_to_shelved_offloaded_server(self):"},{"line_number":812,"context_line":"        self.flags(shelved_offload_time\u003d0)"},{"line_number":813,"context_line":"        server \u003d self._create_server()[1]"},{"line_number":814,"context_line":"        server_id \u003d server[\u0027id\u0027]"},{"line_number":815,"context_line":"        self._wait_for_state_change(server, \u0027BUILD\u0027)"},{"line_number":816,"context_line":"        self.api.post_server_action(server_id, {\u0027shelve\u0027: None})"},{"line_number":817,"context_line":"        found_server \u003d self._wait_for_state_change(server, \u0027ACTIVE\u0027)"},{"line_number":818,"context_line":"        self.assertEqual(\u0027SHELVED_OFFLOADED\u0027, found_server[\u0027status\u0027])"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"        # Test attach volume"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_b0337f13","line":817,"range":{"start_line":813,"start_character":0,"end_line":817,"end_character":68},"in_reply_to":"9abb7d3a_d7577e00","updated":"2016-05-31 15:50:41.000000000","message":"Done","commit_id":"3728237678e274024db07f725f3933786060bd1a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"dcb7f5dfbba5dec1478db52bf49cbd80e2601ba9","unresolved":false,"context_lines":[{"line_number":818,"context_line":"        self.assertEqual(\u0027SHELVED_OFFLOADED\u0027, found_server[\u0027status\u0027])"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"        # Test attach volume"},{"line_number":821,"context_line":"        with test.nested(mock.patch.object(compute_api.API,"},{"line_number":822,"context_line":"                                       \u0027_check_attach_and_reserve_volume\u0027),"},{"line_number":823,"context_line":"                         mock.patch.object(volume.cinder.API,"},{"line_number":824,"context_line":"                                       \u0027attach\u0027)) as (mock_reserve, mock_vol):"},{"line_number":825,"context_line":"            volume_attachment \u003d {\"volumeAttachment\": {\"volumeId\":"},{"line_number":826,"context_line":"                                       \"5d721593-f033-4f6d-ab6f-b5b067e61bc4\"}}"},{"line_number":827,"context_line":"            attach_response \u003d self.api.api_post("},{"line_number":828,"context_line":"                             \u0027/servers/%s/os-volume_attachments\u0027 % (server_id),"},{"line_number":829,"context_line":"                             volume_attachment,"},{"line_number":830,"context_line":"                             headers\u003dself._headers).body[\u0027volumeAttachment\u0027]"},{"line_number":831,"context_line":"            self.assertTrue(mock_reserve.called)"},{"line_number":832,"context_line":"            self.assertTrue(mock_vol.called)"},{"line_number":833,"context_line":"            self.assertIsNone(attach_response[\u0027device\u0027])"},{"line_number":834,"context_line":"        # Test detach volume"},{"line_number":835,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.get\u0027, fakes.stub_volume_get)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_3749aa60","line":832,"range":{"start_line":821,"start_character":0,"end_line":832,"end_character":44},"updated":"2016-05-28 17:01:26.000000000","message":"ditto","commit_id":"3728237678e274024db07f725f3933786060bd1a"},{"author":{"_account_id":1865,"name":"Andrea Rosa","email":"andrea.rosa@gmail.com","username":"andrea-rosa-m"},"change_message_id":"dd5d98773b1b844645b85bf3b0de7e6c7db92538","unresolved":false,"context_lines":[{"line_number":818,"context_line":"        self.assertEqual(\u0027SHELVED_OFFLOADED\u0027, found_server[\u0027status\u0027])"},{"line_number":819,"context_line":""},{"line_number":820,"context_line":"        # Test attach volume"},{"line_number":821,"context_line":"        with test.nested(mock.patch.object(compute_api.API,"},{"line_number":822,"context_line":"                                       \u0027_check_attach_and_reserve_volume\u0027),"},{"line_number":823,"context_line":"                         mock.patch.object(volume.cinder.API,"},{"line_number":824,"context_line":"                                       \u0027attach\u0027)) as (mock_reserve, mock_vol):"},{"line_number":825,"context_line":"            volume_attachment \u003d {\"volumeAttachment\": {\"volumeId\":"},{"line_number":826,"context_line":"                                       \"5d721593-f033-4f6d-ab6f-b5b067e61bc4\"}}"},{"line_number":827,"context_line":"            attach_response \u003d self.api.api_post("},{"line_number":828,"context_line":"                             \u0027/servers/%s/os-volume_attachments\u0027 % (server_id),"},{"line_number":829,"context_line":"                             volume_attachment,"},{"line_number":830,"context_line":"                             headers\u003dself._headers).body[\u0027volumeAttachment\u0027]"},{"line_number":831,"context_line":"            self.assertTrue(mock_reserve.called)"},{"line_number":832,"context_line":"            self.assertTrue(mock_vol.called)"},{"line_number":833,"context_line":"            self.assertIsNone(attach_response[\u0027device\u0027])"},{"line_number":834,"context_line":"        # Test detach volume"},{"line_number":835,"context_line":"        self.stub_out(\u0027nova.volume.cinder.API.get\u0027, fakes.stub_volume_get)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9abb7d3a_6ee65845","line":832,"range":{"start_line":821,"start_character":0,"end_line":832,"end_character":44},"in_reply_to":"9abb7d3a_3749aa60","updated":"2016-05-31 15:50:41.000000000","message":"it is not exactly the same, for the shelved_offloaded test we don\u0027t call the rpc api (which is called in the previous test) but we call directly the cinder API.","commit_id":"3728237678e274024db07f725f3933786060bd1a"}]}
