)]}'
{"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bb50d8966dc67be0c59baa7c6b6d43588fc92c17","unresolved":false,"context_lines":[{"line_number":2244,"context_line":"    def _get_volumes_for_test_swap_volume(self):"},{"line_number":2245,"context_line":"        volumes \u003d {}"},{"line_number":2246,"context_line":"        volumes[uuids.old_volume] \u003d {"},{"line_number":2247,"context_line":"                                        \u0027id\u0027: uuids.old_volume,"},{"line_number":2248,"context_line":"                                        \u0027display_name\u0027: \u0027old_volume\u0027,"},{"line_number":2249,"context_line":"                                        \u0027attach_status\u0027: \u0027attached\u0027,"},{"line_number":2250,"context_line":"                                        \u0027size\u0027: 5,"},{"line_number":2251,"context_line":"                                        \u0027status\u0027: \u0027in-use\u0027,"},{"line_number":2252,"context_line":"                                        \u0027multiattach\u0027: False,"},{"line_number":2253,"context_line":"                                        \u0027attachments\u0027: {"},{"line_number":2254,"context_line":"                                            uuids.vol_instance: {"},{"line_number":2255,"context_line":"                                                \u0027attachment_id\u0027: \u0027fakeid\u0027"},{"line_number":2256,"context_line":"                                            }"},{"line_number":2257,"context_line":"                                        }"},{"line_number":2258,"context_line":"                                    }"},{"line_number":2259,"context_line":"        volumes[uuids.new_volume] \u003d {"},{"line_number":2260,"context_line":"                                        \u0027id\u0027: uuids.new_volume,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6eadb0_cfab5cd5","line":2257,"range":{"start_line":2247,"start_character":0,"end_line":2257,"end_character":41},"updated":"2016-12-19 15:48:52.000000000","message":"nit: any chance you normalise this indentation a little?","commit_id":"feb266425a42148146682ca5947ad74a1fe5976f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e608bf09a5eccb64e37f5ece98fb3a8067b4ff4a","unresolved":false,"context_lines":[{"line_number":2244,"context_line":"    def _get_volumes_for_test_swap_volume(self):"},{"line_number":2245,"context_line":"        volumes \u003d {}"},{"line_number":2246,"context_line":"        volumes[uuids.old_volume] \u003d {"},{"line_number":2247,"context_line":"                                        \u0027id\u0027: uuids.old_volume,"},{"line_number":2248,"context_line":"                                        \u0027display_name\u0027: \u0027old_volume\u0027,"},{"line_number":2249,"context_line":"                                        \u0027attach_status\u0027: \u0027attached\u0027,"},{"line_number":2250,"context_line":"                                        \u0027size\u0027: 5,"},{"line_number":2251,"context_line":"                                        \u0027status\u0027: \u0027in-use\u0027,"},{"line_number":2252,"context_line":"                                        \u0027multiattach\u0027: False,"},{"line_number":2253,"context_line":"                                        \u0027attachments\u0027: {"},{"line_number":2254,"context_line":"                                            uuids.vol_instance: {"},{"line_number":2255,"context_line":"                                                \u0027attachment_id\u0027: \u0027fakeid\u0027"},{"line_number":2256,"context_line":"                                            }"},{"line_number":2257,"context_line":"                                        }"},{"line_number":2258,"context_line":"                                    }"},{"line_number":2259,"context_line":"        volumes[uuids.new_volume] \u003d {"},{"line_number":2260,"context_line":"                                        \u0027id\u0027: uuids.new_volume,"}],"source_content_type":"text/x-python","patch_set":8,"id":"da4df55a_c3d4a4be","line":2257,"range":{"start_line":2247,"start_character":0,"end_line":2257,"end_character":41},"in_reply_to":"1a6eadb0_cfab5cd5","updated":"2016-12-27 07:34:25.000000000","message":"Done","commit_id":"feb266425a42148146682ca5947ad74a1fe5976f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bb50d8966dc67be0c59baa7c6b6d43588fc92c17","unresolved":false,"context_lines":[{"line_number":2276,"context_line":"                   \u0027uuid\u0027: uuids.vol_instance,"},{"line_number":2277,"context_line":"                   \u0027task_state\u0027: None})"},{"line_number":2278,"context_line":""},{"line_number":2279,"context_line":"    def test_swap_volume_with_invalid_server_state(self):"},{"line_number":2280,"context_line":"        # Should fail if VM state is not valid"},{"line_number":2281,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"},{"line_number":2282,"context_line":"        instance \u003d self._get_instance_for_test_swap_volume()"},{"line_number":2283,"context_line":"        instance[\u0027vm_state\u0027] \u003d vm_states.BUILDING"},{"line_number":2284,"context_line":""},{"line_number":2285,"context_line":"        self.assertRaises(exception.InstanceInvalidState,"},{"line_number":2286,"context_line":"                          self.compute_api.swap_volume, self.context, instance,"},{"line_number":2287,"context_line":"                          volumes[uuids.old_volume], volumes[uuids.new_volume])"},{"line_number":2288,"context_line":""},{"line_number":2289,"context_line":"    def test_swap_volume_with_old_volume_not_attached(self):"},{"line_number":2290,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6eadb0_cfc0bc7f","line":2287,"range":{"start_line":2279,"start_character":0,"end_line":2287,"end_character":79},"updated":"2016-12-19 15:48:52.000000000","message":"This replaces the assertion on L2297-2298","commit_id":"feb266425a42148146682ca5947ad74a1fe5976f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e608bf09a5eccb64e37f5ece98fb3a8067b4ff4a","unresolved":false,"context_lines":[{"line_number":2276,"context_line":"                   \u0027uuid\u0027: uuids.vol_instance,"},{"line_number":2277,"context_line":"                   \u0027task_state\u0027: None})"},{"line_number":2278,"context_line":""},{"line_number":2279,"context_line":"    def test_swap_volume_with_invalid_server_state(self):"},{"line_number":2280,"context_line":"        # Should fail if VM state is not valid"},{"line_number":2281,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"},{"line_number":2282,"context_line":"        instance \u003d self._get_instance_for_test_swap_volume()"},{"line_number":2283,"context_line":"        instance[\u0027vm_state\u0027] \u003d vm_states.BUILDING"},{"line_number":2284,"context_line":""},{"line_number":2285,"context_line":"        self.assertRaises(exception.InstanceInvalidState,"},{"line_number":2286,"context_line":"                          self.compute_api.swap_volume, self.context, instance,"},{"line_number":2287,"context_line":"                          volumes[uuids.old_volume], volumes[uuids.new_volume])"},{"line_number":2288,"context_line":""},{"line_number":2289,"context_line":"    def test_swap_volume_with_old_volume_not_attached(self):"},{"line_number":2290,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da4df55a_e3dd28e1","line":2287,"range":{"start_line":2279,"start_character":0,"end_line":2287,"end_character":79},"in_reply_to":"1a6eadb0_cfc0bc7f","updated":"2016-12-27 07:34:25.000000000","message":"Done","commit_id":"feb266425a42148146682ca5947ad74a1fe5976f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bb50d8966dc67be0c59baa7c6b6d43588fc92c17","unresolved":false,"context_lines":[{"line_number":2286,"context_line":"                          self.compute_api.swap_volume, self.context, instance,"},{"line_number":2287,"context_line":"                          volumes[uuids.old_volume], volumes[uuids.new_volume])"},{"line_number":2288,"context_line":""},{"line_number":2289,"context_line":"    def test_swap_volume_with_old_volume_not_attached(self):"},{"line_number":2290,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"},{"line_number":2291,"context_line":"        instance \u003d self._get_instance_for_test_swap_volume()"},{"line_number":2292,"context_line":""},{"line_number":2293,"context_line":"        # Should fail if old volume is not attached"},{"line_number":2294,"context_line":"        volumes[uuids.old_volume][\u0027attach_status\u0027] \u003d \u0027detached\u0027"},{"line_number":2295,"context_line":"        self.assertRaises(exception.VolumeUnattached,"},{"line_number":2296,"context_line":"                          self.compute_api.swap_volume, self.context, instance,"},{"line_number":2297,"context_line":"                          volumes[uuids.old_volume], volumes[uuids.new_volume])"},{"line_number":2298,"context_line":"        self.assertEqual(\u0027in-use\u0027, volumes[uuids.old_volume][\u0027status\u0027])"},{"line_number":2299,"context_line":"        self.assertEqual(\u0027available\u0027, volumes[uuids.new_volume][\u0027status\u0027])"},{"line_number":2300,"context_line":""},{"line_number":2301,"context_line":"    def test_swap_volume_with_another_server_volume(self):"},{"line_number":2302,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6eadb0_2f3690b4","line":2299,"range":{"start_line":2289,"start_character":0,"end_line":2299,"end_character":74},"updated":"2016-12-19 15:48:52.000000000","message":"This replaces the assertion of 2305-2309","commit_id":"feb266425a42148146682ca5947ad74a1fe5976f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e608bf09a5eccb64e37f5ece98fb3a8067b4ff4a","unresolved":false,"context_lines":[{"line_number":2286,"context_line":"                          self.compute_api.swap_volume, self.context, instance,"},{"line_number":2287,"context_line":"                          volumes[uuids.old_volume], volumes[uuids.new_volume])"},{"line_number":2288,"context_line":""},{"line_number":2289,"context_line":"    def test_swap_volume_with_old_volume_not_attached(self):"},{"line_number":2290,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"},{"line_number":2291,"context_line":"        instance \u003d self._get_instance_for_test_swap_volume()"},{"line_number":2292,"context_line":""},{"line_number":2293,"context_line":"        # Should fail if old volume is not attached"},{"line_number":2294,"context_line":"        volumes[uuids.old_volume][\u0027attach_status\u0027] \u003d \u0027detached\u0027"},{"line_number":2295,"context_line":"        self.assertRaises(exception.VolumeUnattached,"},{"line_number":2296,"context_line":"                          self.compute_api.swap_volume, self.context, instance,"},{"line_number":2297,"context_line":"                          volumes[uuids.old_volume], volumes[uuids.new_volume])"},{"line_number":2298,"context_line":"        self.assertEqual(\u0027in-use\u0027, volumes[uuids.old_volume][\u0027status\u0027])"},{"line_number":2299,"context_line":"        self.assertEqual(\u0027available\u0027, volumes[uuids.new_volume][\u0027status\u0027])"},{"line_number":2300,"context_line":""},{"line_number":2301,"context_line":"    def test_swap_volume_with_another_server_volume(self):"},{"line_number":2302,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da4df55a_23e490aa","line":2299,"range":{"start_line":2289,"start_character":0,"end_line":2299,"end_character":74},"in_reply_to":"1a6eadb0_2f3690b4","updated":"2016-12-27 07:34:25.000000000","message":"Done","commit_id":"feb266425a42148146682ca5947ad74a1fe5976f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bb50d8966dc67be0c59baa7c6b6d43588fc92c17","unresolved":false,"context_lines":[{"line_number":2309,"context_line":"                                                        \u0027fakeid\u0027}"},{"line_number":2310,"context_line":"                                                   }"},{"line_number":2311,"context_line":""},{"line_number":2312,"context_line":"        self.assertRaises(exception.InvalidVolume,"},{"line_number":2313,"context_line":"                          self.compute_api.swap_volume, self.context, instance,"},{"line_number":2314,"context_line":"                          volumes[uuids.old_volume], volumes[uuids.new_volume])"},{"line_number":2315,"context_line":"        self.assertEqual(\u0027in-use\u0027, volumes[uuids.old_volume][\u0027status\u0027])"},{"line_number":2316,"context_line":"        self.assertEqual(\u0027available\u0027, volumes[uuids.new_volume][\u0027status\u0027])"},{"line_number":2317,"context_line":""},{"line_number":2318,"context_line":"    def test_swap_volume_with_new_volume_attached(self):"},{"line_number":2319,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6eadb0_4fd74c23","line":2316,"range":{"start_line":2312,"start_character":0,"end_line":2316,"end_character":74},"updated":"2016-12-19 15:48:52.000000000","message":"This replaces the assertion on line 2315-2319","commit_id":"feb266425a42148146682ca5947ad74a1fe5976f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e608bf09a5eccb64e37f5ece98fb3a8067b4ff4a","unresolved":false,"context_lines":[{"line_number":2309,"context_line":"                                                        \u0027fakeid\u0027}"},{"line_number":2310,"context_line":"                                                   }"},{"line_number":2311,"context_line":""},{"line_number":2312,"context_line":"        self.assertRaises(exception.InvalidVolume,"},{"line_number":2313,"context_line":"                          self.compute_api.swap_volume, self.context, instance,"},{"line_number":2314,"context_line":"                          volumes[uuids.old_volume], volumes[uuids.new_volume])"},{"line_number":2315,"context_line":"        self.assertEqual(\u0027in-use\u0027, volumes[uuids.old_volume][\u0027status\u0027])"},{"line_number":2316,"context_line":"        self.assertEqual(\u0027available\u0027, volumes[uuids.new_volume][\u0027status\u0027])"},{"line_number":2317,"context_line":""},{"line_number":2318,"context_line":"    def test_swap_volume_with_new_volume_attached(self):"},{"line_number":2319,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da4df55a_63f05868","line":2316,"range":{"start_line":2312,"start_character":0,"end_line":2316,"end_character":74},"in_reply_to":"1a6eadb0_4fd74c23","updated":"2016-12-27 07:34:25.000000000","message":"Done","commit_id":"feb266425a42148146682ca5947ad74a1fe5976f"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bb50d8966dc67be0c59baa7c6b6d43588fc92c17","unresolved":false,"context_lines":[{"line_number":2321,"context_line":""},{"line_number":2322,"context_line":"        # Should fail if new volume is attached"},{"line_number":2323,"context_line":"        volumes[uuids.new_volume][\u0027attach_status\u0027] \u003d \u0027attached\u0027"},{"line_number":2324,"context_line":"        self.assertRaises(exception.InvalidVolume,"},{"line_number":2325,"context_line":"                          self.compute_api.swap_volume, self.context, instance,"},{"line_number":2326,"context_line":"                          volumes[uuids.old_volume], volumes[uuids.new_volume])"},{"line_number":2327,"context_line":"        self.assertEqual(\u0027in-use\u0027, volumes[uuids.old_volume][\u0027status\u0027])"},{"line_number":2328,"context_line":"        self.assertEqual(\u0027available\u0027, volumes[uuids.new_volume][\u0027status\u0027])"},{"line_number":2329,"context_line":""},{"line_number":2330,"context_line":"    def test_swap_volume_with_smaller_new_volume(self):"},{"line_number":2331,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a6eadb0_af946044","line":2328,"range":{"start_line":2324,"start_character":0,"end_line":2328,"end_character":74},"updated":"2016-12-19 15:48:52.000000000","message":"this replaces the assertion on 2325-2329","commit_id":"feb266425a42148146682ca5947ad74a1fe5976f"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e608bf09a5eccb64e37f5ece98fb3a8067b4ff4a","unresolved":false,"context_lines":[{"line_number":2321,"context_line":""},{"line_number":2322,"context_line":"        # Should fail if new volume is attached"},{"line_number":2323,"context_line":"        volumes[uuids.new_volume][\u0027attach_status\u0027] \u003d \u0027attached\u0027"},{"line_number":2324,"context_line":"        self.assertRaises(exception.InvalidVolume,"},{"line_number":2325,"context_line":"                          self.compute_api.swap_volume, self.context, instance,"},{"line_number":2326,"context_line":"                          volumes[uuids.old_volume], volumes[uuids.new_volume])"},{"line_number":2327,"context_line":"        self.assertEqual(\u0027in-use\u0027, volumes[uuids.old_volume][\u0027status\u0027])"},{"line_number":2328,"context_line":"        self.assertEqual(\u0027available\u0027, volumes[uuids.new_volume][\u0027status\u0027])"},{"line_number":2329,"context_line":""},{"line_number":2330,"context_line":"    def test_swap_volume_with_smaller_new_volume(self):"},{"line_number":2331,"context_line":"        volumes \u003d self._get_volumes_for_test_swap_volume()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da4df55a_a3e6c0ad","line":2328,"range":{"start_line":2324,"start_character":0,"end_line":2328,"end_character":74},"in_reply_to":"1a6eadb0_af946044","updated":"2016-12-27 07:34:25.000000000","message":"Done","commit_id":"feb266425a42148146682ca5947ad74a1fe5976f"}]}
