)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"9fa453d7495503f9408444eda7ef77d330066760","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Transform instance.resize.error notifications"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The instance.resize.error notification"},{"line_number":10,"context_line":"are transformed to the versioned framework."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ieb4ae4605fee8fbf58de4c5efb3c00083b4bd62c"},{"line_number":13,"context_line":"Implements: bp versioned-notification-transformation-ocata"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba5201f7_cb61a613","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":3},"updated":"2017-01-09 17:13:18.000000000","message":"nit: is","commit_id":"6ecafd6beff2e6ad81e62bd6e71096dabf906abf"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"f63978df0307191931659a9828ce40de292cea14","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Transform instance.resize.error notifications"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The instance.resize.error notification"},{"line_number":10,"context_line":"are transformed to the versioned framework."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ieb4ae4605fee8fbf58de4c5efb3c00083b4bd62c"},{"line_number":13,"context_line":"Implements: bp versioned-notification-transformation-ocata"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ba5201f7_2ac59a5a","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":3},"in_reply_to":"ba5201f7_cb61a613","updated":"2017-01-10 12:23:03.000000000","message":"Done","commit_id":"6ecafd6beff2e6ad81e62bd6e71096dabf906abf"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"f15420e3643e894ac6ac94056e60bf9dfa89a70a","unresolved":false,"context_lines":[{"line_number":10,"context_line":"is transformed to the versioned framework."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ieb4ae4605fee8fbf58de4c5efb3c00083b4bd62c"},{"line_number":13,"context_line":"Implements: bp versioned-notification-transformation-pike"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":22,"id":"9f436f4f_79b74dda","line":13,"updated":"2017-08-21 12:27:02.000000000","message":"please change this to bp versioned-notification-transformation-queens that is the new one and it is already approved.","commit_id":"818b78dd99726c3a45b9b9bcbc7433ce43d3131f"}],"doc/notification_samples/instance-resize-error.json":[{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"9fa453d7495503f9408444eda7ef77d330066760","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{\r"},{"line_number":2,"context_line":"  \"priority\": \"INFO\",\r"},{"line_number":3,"context_line":"  \"payload\": {\r"},{"line_number":4,"context_line":"    \"nova_object.name\": \"InstanceActionPayload\",\r"},{"line_number":5,"context_line":"    \"nova_object.version\": \"1.1\",\r"}],"source_content_type":"application/json","patch_set":3,"id":"ba5201f7_3cd50fb9","line":2,"range":{"start_line":2,"start_character":15,"end_line":2,"end_character":19},"updated":"2017-01-09 17:13:18.000000000","message":"It should be error, as the notification is instance.resize.error","commit_id":"6ecafd6beff2e6ad81e62bd6e71096dabf906abf"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"f63978df0307191931659a9828ce40de292cea14","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{\r"},{"line_number":2,"context_line":"  \"priority\": \"INFO\",\r"},{"line_number":3,"context_line":"  \"payload\": {\r"},{"line_number":4,"context_line":"    \"nova_object.name\": \"InstanceActionPayload\",\r"},{"line_number":5,"context_line":"    \"nova_object.version\": \"1.1\",\r"}],"source_content_type":"application/json","patch_set":3,"id":"ba5201f7_cacdee87","line":2,"range":{"start_line":2,"start_character":15,"end_line":2,"end_character":19},"in_reply_to":"ba5201f7_3cd50fb9","updated":"2017-01-10 12:23:03.000000000","message":"Done","commit_id":"6ecafd6beff2e6ad81e62bd6e71096dabf906abf"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a23c6fcfeb66e9349e0c3d0cc2467d173804ef01","unresolved":false,"context_lines":[{"line_number":5,"context_line":"            \"architecture\":\"x86_64\","},{"line_number":6,"context_line":"            \"auto_disk_config\":\"MANUAL\","},{"line_number":7,"context_line":"            \"availability_zone\":\"nova\","},{"line_number":8,"context_line":"            \"block_devices\":["},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"            ],"},{"line_number":11,"context_line":"            \"created_at\":\"2012-10-29T13:42:11Z\","},{"line_number":12,"context_line":"            \"deleted_at\":null,"},{"line_number":13,"context_line":"            \"display_description\":\"some-server\","}],"source_content_type":"application/json","patch_set":23,"id":"7f287b81_8bd80953","line":10,"range":{"start_line":8,"start_character":12,"end_line":10,"end_character":14},"updated":"2017-09-07 16:07:55.000000000","message":"This looks sort of weird, I\u0027d expect it on a single line.","commit_id":"2e725bcd7cc3d246547d3d9d7d384cdc3364db5c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a23c6fcfeb66e9349e0c3d0cc2467d173804ef01","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                        \"device_name\":\"tapce531f90-19\","},{"line_number":56,"context_line":"                        \"label\":\"private-network\","},{"line_number":57,"context_line":"                        \"mac\":\"fa:16:3e:4c:2c:30\","},{"line_number":58,"context_line":"                        \"meta\":{"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"                        },"},{"line_number":61,"context_line":"                        \"port_uuid\":\"ce531f90-199f-48c0-816c-13e38010b442\","},{"line_number":62,"context_line":"                        \"version\":4"},{"line_number":63,"context_line":"                    },"}],"source_content_type":"application/json","patch_set":23,"id":"7f287b81_6bd95d54","line":60,"range":{"start_line":58,"start_character":24,"end_line":60,"end_character":26},"updated":"2017-09-07 16:07:55.000000000","message":"same","commit_id":"2e725bcd7cc3d246547d3d9d7d384cdc3364db5c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a23c6fcfeb66e9349e0c3d0cc2467d173804ef01","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            \"key_name\":\"my-key\","},{"line_number":71,"context_line":"            \"launched_at\":\"2012-10-29T13:42:11Z\","},{"line_number":72,"context_line":"            \"locked\":false,"},{"line_number":73,"context_line":"            \"metadata\":{"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            },"},{"line_number":76,"context_line":"            \"node\":\"fake-mini\","},{"line_number":77,"context_line":"            \"os_type\":null,"},{"line_number":78,"context_line":"            \"power_state\":\"running\","}],"source_content_type":"application/json","patch_set":23,"id":"7f287b81_cbe971e3","line":75,"range":{"start_line":73,"start_character":12,"end_line":75,"end_character":14},"updated":"2017-09-07 16:07:55.000000000","message":"and here","commit_id":"2e725bcd7cc3d246547d3d9d7d384cdc3364db5c"}],"nova/compute/manager.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7dcc9ac6aa9950cca7f3cf2ba0eca47f301b2883","unresolved":false,"context_lines":[{"line_number":3813,"context_line":"                    exc_info\u003dsys.exc_info())"},{"line_number":3814,"context_line":"            self._notify_about_instance_usage(context, instance,"},{"line_number":3815,"context_line":"                    \u0027resize.error\u0027, fault\u003derror)"},{"line_number":3816,"context_line":"            compute_utils.notify_about_instance_action("},{"line_number":3817,"context_line":"                context, instance, self.host,"},{"line_number":3818,"context_line":"                action\u003dfields.NotificationAction.RESIZE,"},{"line_number":3819,"context_line":"                phase\u003dfields.NotificationPhase.ERROR,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a1ced50_0330ef55","line":3816,"updated":"2017-03-17 11:04:24.000000000","message":"I still wondering why we cannot trigger this code path in the test. Is this dead code?","commit_id":"ea602327647759ce60e5c061f1641ca465ed94a1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8eadf29dc957d172539c39a322f139af24f9ad9d","unresolved":false,"context_lines":[{"line_number":3813,"context_line":"                    exc_info\u003dsys.exc_info())"},{"line_number":3814,"context_line":"            self._notify_about_instance_usage(context, instance,"},{"line_number":3815,"context_line":"                    \u0027resize.error\u0027, fault\u003derror)"},{"line_number":3816,"context_line":"            compute_utils.notify_about_instance_action("},{"line_number":3817,"context_line":"                context, instance, self.host,"},{"line_number":3818,"context_line":"                action\u003dfields.NotificationAction.RESIZE,"},{"line_number":3819,"context_line":"                phase\u003dfields.NotificationPhase.ERROR,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a1ced50_ce15a949","line":3816,"in_reply_to":"1a1ced50_0330ef55","updated":"2017-03-21 14:03:33.000000000","message":"this path is covered. See below.","commit_id":"ea602327647759ce60e5c061f1641ca465ed94a1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8eadf29dc957d172539c39a322f139af24f9ad9d","unresolved":false,"context_lines":[{"line_number":3825,"context_line":"                    instance, exc_info[1], exc_info\u003dexc_info)"},{"line_number":3826,"context_line":"            self._notify_about_instance_usage(context, instance,"},{"line_number":3827,"context_line":"                    \u0027resize.error\u0027, fault\u003dexc_info[1])"},{"line_number":3828,"context_line":"            compute_utils.notify_about_instance_action("},{"line_number":3829,"context_line":"                context, instance, self.host,"},{"line_number":3830,"context_line":"                action\u003dfields.NotificationAction.RESIZE,"},{"line_number":3831,"context_line":"                phase\u003dfields.NotificationPhase.ERROR,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a1ced50_ae106d5a","line":3828,"updated":"2017-03-21 14:03:33.000000000","message":"After an IRC discussion we figured out that the existing test covers the above case but not this case. We agreed to try to cover this as well.","commit_id":"ea602327647759ce60e5c061f1641ca465ed94a1"}],"nova/tests/functional/notification_sample_tests/test_instance.py":[{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"9fa453d7495503f9408444eda7ef77d330066760","unresolved":false,"context_lines":[{"line_number":543,"context_line":"            }"},{"line_number":544,"context_line":"        }"},{"line_number":545,"context_line":"        fake_notifier.reset()"},{"line_number":546,"context_line":"        mock_prep_resize.side_effect \u003d _build_resources"},{"line_number":547,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":548,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":549,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":550,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_dcba4371","line":547,"range":{"start_line":546,"start_character":0,"end_line":547,"end_character":54},"updated":"2017-01-09 17:13:18.000000000","message":"Also, can you please explain why we need to mock two methods with the same mock behavior?","commit_id":"6ecafd6beff2e6ad81e62bd6e71096dabf906abf"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"f63978df0307191931659a9828ce40de292cea14","unresolved":false,"context_lines":[{"line_number":543,"context_line":"            }"},{"line_number":544,"context_line":"        }"},{"line_number":545,"context_line":"        fake_notifier.reset()"},{"line_number":546,"context_line":"        mock_prep_resize.side_effect \u003d _build_resources"},{"line_number":547,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":548,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":549,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":550,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_8ab3e609","line":547,"range":{"start_line":546,"start_character":0,"end_line":547,"end_character":54},"in_reply_to":"ba5201f7_dcba4371","updated":"2017-01-10 12:23:03.000000000","message":"Hi, of course.\nThe ERROR state possible to reach 2 steps.\nIf the method prep_resize catch any exception, then call the\n_reschedule_resize_or_reraise method.\nThis yet not done. Just then throw ERROR notification, if it also fail and got error. So this is need catch any exception for reach ERROR notification.\n\nSame shema:\nprep_resize():\n    try:\n        ...\n    except Exception:\n        _reschedule_resize_or_reraise()\n\n_reschedule_resize_or_reraise():\n    ...\n    try:\n        ...\n    except Exception:\n        compute_utils.notify_about_instance_action(....)\n\nSo a mock not enough :)","commit_id":"6ecafd6beff2e6ad81e62bd6e71096dabf906abf"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4850c5773cb1af4f445efd17691f74c34b7d48ac","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":548,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":549,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":550,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":551,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"},{"line_number":552,"context_line":"            replacements\u003d{"},{"line_number":553,"context_line":"                \u0027reservation_id\u0027: server[\u0027reservation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_6d831557","line":550,"updated":"2017-01-16 09:52:30.000000000","message":"What is the other notification emitted? Is this test currently tests the reschedule or the non reschedule case?","commit_id":"def6e4bb27f1381541b8b3ea946e8c2f98dc44c1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"12b24b668e159687992e7a84dedf4cc39c2fdc6b","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":548,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":549,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":550,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":551,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"},{"line_number":552,"context_line":"            replacements\u003d{"},{"line_number":553,"context_line":"                \u0027reservation_id\u0027: server[\u0027reservation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_b1f7d657","line":550,"in_reply_to":"7a3c09a3_604eaf70","updated":"2017-01-17 13:03:24.000000000","message":"I see. compute.exception is OK to get here. \n\nCould you make another test for the non rescheduler case if possible?","commit_id":"def6e4bb27f1381541b8b3ea946e8c2f98dc44c1"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"5dea5e8649c59b218a2fbd13aee5b945d8733b80","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":548,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":549,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":550,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":551,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"},{"line_number":552,"context_line":"            replacements\u003d{"},{"line_number":553,"context_line":"                \u0027reservation_id\u0027: server[\u0027reservation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_604eaf70","line":550,"in_reply_to":"7a3c09a3_6d831557","updated":"2017-01-16 13:50:29.000000000","message":"compute.exception and instance.resize.error\nThe compute.exception notification throw the _build_resources like as test_create_server_error() method on line 107.\n\nThis test the reschedule (and this also failed) case.","commit_id":"def6e4bb27f1381541b8b3ea946e8c2f98dc44c1"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"354e04fd48a27f6d278854a5a58b10fe29ab6307","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":548,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":549,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":550,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":551,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"},{"line_number":552,"context_line":"            replacements\u003d{"},{"line_number":553,"context_line":"                \u0027reservation_id\u0027: server[\u0027reservation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a30ddce_8e0b647c","line":550,"in_reply_to":"7a3c09a3_b1f7d657","updated":"2017-03-12 15:55:49.000000000","message":"I searched, but i see, that we can\u0027t resize without reschedule. We can\u0027t bypass.","commit_id":"def6e4bb27f1381541b8b3ea946e8c2f98dc44c1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"71473540cb566ac2ab8eda2179b5390ed5e1fbc1","unresolved":false,"context_lines":[{"line_number":547,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":548,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":549,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":550,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":551,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"},{"line_number":552,"context_line":"            replacements\u003d{"},{"line_number":553,"context_line":"                \u0027reservation_id\u0027: server[\u0027reservation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a1ced50_e303d374","line":550,"in_reply_to":"9a30ddce_8e0b647c","updated":"2017-03-17 11:03:20.000000000","message":"Hm, but there are two code paths in the manager. Do you mean that one of those paths are not possible to trigger?","commit_id":"def6e4bb27f1381541b8b3ea946e8c2f98dc44c1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d03da24cb2b688abaec763b8f6df31e60710111","unresolved":false,"context_lines":[{"line_number":542,"context_line":""},{"line_number":543,"context_line":"    @mock.patch(\u0027nova.compute.manager.ComputeManager._reschedule\u0027)"},{"line_number":544,"context_line":"    @mock.patch(\u0027nova.compute.manager.ComputeManager._prep_resize\u0027)"},{"line_number":545,"context_line":"    def test_resize_server_error_with_excinfo(self, mock_prep_resize,"},{"line_number":546,"context_line":"                                              mock_reschedule):"},{"line_number":547,"context_line":"        def _build_resources(*args, **kwargs):"},{"line_number":548,"context_line":"            raise exception.FlavorDiskTooSmall()"}],"source_content_type":"text/x-python","patch_set":10,"id":"bff0334d_85ca8b17","line":545,"range":{"start_line":545,"start_character":8,"end_line":545,"end_character":45},"updated":"2017-04-07 09:50:00.000000000","message":"Is this the case when the resize fail and nova doesn\u0027t reschedule? Can we name the function better?","commit_id":"8af71429d46dd5e46206e73e87964d0fd200f617"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d03da24cb2b688abaec763b8f6df31e60710111","unresolved":false,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"    @mock.patch(\u0027nova.compute.manager.ComputeManager._reschedule\u0027)"},{"line_number":581,"context_line":"    @mock.patch(\u0027nova.compute.manager.ComputeManager._prep_resize\u0027)"},{"line_number":582,"context_line":"    def test_resize_server_error(self, mock_prep_resize, mock_reschedule):"},{"line_number":583,"context_line":"        def _build_resources(*args, **kwargs):"},{"line_number":584,"context_line":"            raise exception.FlavorDiskTooSmall()"},{"line_number":585,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"bff0334d_457003dd","line":582,"range":{"start_line":582,"start_character":8,"end_line":582,"end_character":32},"updated":"2017-04-07 09:50:00.000000000","message":"Is this the case when resize fails but nova try to reschedule? Can we name this function better?","commit_id":"8af71429d46dd5e46206e73e87964d0fd200f617"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d03da24cb2b688abaec763b8f6df31e60710111","unresolved":false,"context_lines":[{"line_number":607,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":608,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":609,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":610,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":611,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"},{"line_number":612,"context_line":"            replacements\u003d{"},{"line_number":613,"context_line":"                \u0027reservation_id\u0027: server[\u0027reservation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":10,"id":"bff0334d_a54c6f9e","line":610,"range":{"start_line":610,"start_character":25,"end_line":610,"end_character":26},"updated":"2017-04-07 09:50:00.000000000","message":"What is the other notification emitted?","commit_id":"8af71429d46dd5e46206e73e87964d0fd200f617"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ddb93c9ed1632d1de939c6e32e2ab207f1c2bdb9","unresolved":false,"context_lines":[{"line_number":569,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":570,"context_line":"        mock_prep_resize.side_effect \u003d _build_resources"},{"line_number":571,"context_line":"        self._wait_for_notification(\u0027instance.resize.error\u0027)"},{"line_number":572,"context_line":"        self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":573,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"},{"line_number":574,"context_line":"            replacements\u003d{"},{"line_number":575,"context_line":"                \u0027reservation_id\u0027: server[\u0027reservation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"bff0334d_f9d762ed","line":572,"updated":"2017-04-11 10:51:26.000000000","message":"Interesting so we get a instance.resize.start and instance.resize.error but then there is no instance.resize.end even if the actual resize was as success after the reschedule.\nWhat will be the state of the instance in this case?","commit_id":"e803d30fdd4ddddea096aada1737406cfb5a2e76"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ddb93c9ed1632d1de939c6e32e2ab207f1c2bdb9","unresolved":false,"context_lines":[{"line_number":608,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":609,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":610,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":611,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":612,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"},{"line_number":613,"context_line":"            replacements\u003d{"},{"line_number":614,"context_line":"                \u0027reservation_id\u0027: server[\u0027reservation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"bff0334d_d9deded8","line":611,"updated":"2017-04-11 10:51:26.000000000","message":"I assume that as we had two errors we got two instance.resize.error notifications. Can we assert this? Also it would be nice to add some scenario description as a code comment to these two tests as these are quite complex cases.","commit_id":"e803d30fdd4ddddea096aada1737406cfb5a2e76"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a23c6fcfeb66e9349e0c3d0cc2467d173804ef01","unresolved":false,"context_lines":[{"line_number":661,"context_line":"        post \u003d {\u0027revertResize\u0027: None}"},{"line_number":662,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"    @mock.patch(\u0027nova.compute.manager.ComputeManager._reschedule\u0027)"},{"line_number":665,"context_line":"    @mock.patch(\u0027nova.compute.manager.ComputeManager._prep_resize\u0027)"},{"line_number":666,"context_line":"    def test_resize_server_error_but_reschedule_was_success("},{"line_number":667,"context_line":"            self, mock_prep_resize, mock_reschedule):"}],"source_content_type":"text/x-python","patch_set":23,"id":"7f287b81_8bf5a959","line":664,"range":{"start_line":664,"start_character":53,"end_line":664,"end_character":64},"updated":"2017-09-07 16:07:55.000000000","message":"nit: it would be better if this had return_value\u003dTrue instead of returning a Mock object, since the actual method returns a boolean.","commit_id":"2e725bcd7cc3d246547d3d9d7d384cdc3364db5c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a23c6fcfeb66e9349e0c3d0cc2467d173804ef01","unresolved":false,"context_lines":[{"line_number":692,"context_line":"            }"},{"line_number":693,"context_line":"        }"},{"line_number":694,"context_line":"        fake_notifier.reset()"},{"line_number":695,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":696,"context_line":"        mock_prep_resize.side_effect \u003d _build_resources"},{"line_number":697,"context_line":"        self._wait_for_notification(\u0027instance.resize.error\u0027)"},{"line_number":698,"context_line":"        self.assertEqual(1, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":699,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"}],"source_content_type":"text/x-python","patch_set":23,"id":"7f287b81_eba8ad78","line":696,"range":{"start_line":695,"start_character":8,"end_line":696,"end_character":55},"updated":"2017-09-07 16:07:55.000000000","message":"This seems racy. Why isn\u0027t the prep_resize stubbed out before actually starting the resize via the API?","commit_id":"2e725bcd7cc3d246547d3d9d7d384cdc3364db5c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a23c6fcfeb66e9349e0c3d0cc2467d173804ef01","unresolved":false,"context_lines":[{"line_number":739,"context_line":"        }"},{"line_number":740,"context_line":"        fake_notifier.reset()"},{"line_number":741,"context_line":"        mock_prep_resize.side_effect \u003d _build_resources"},{"line_number":742,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":743,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":744,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":745,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"}],"source_content_type":"text/x-python","patch_set":23,"id":"7f287b81_8b1929d8","line":742,"range":{"start_line":742,"start_character":8,"end_line":742,"end_character":54},"updated":"2017-09-07 16:07:55.000000000","message":"This isn\u0027t a very realistic failure. Something more realistic for a reschedule failure would be getting NoValidHost.","commit_id":"2e725bcd7cc3d246547d3d9d7d384cdc3364db5c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"22e5b4f35becc8b509c6f57c6a58095e58fcccd4","unresolved":false,"context_lines":[{"line_number":739,"context_line":"        }"},{"line_number":740,"context_line":"        fake_notifier.reset()"},{"line_number":741,"context_line":"        mock_prep_resize.side_effect \u003d _build_resources"},{"line_number":742,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":743,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":744,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":745,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"}],"source_content_type":"text/x-python","patch_set":23,"id":"7f287b81_37229653","line":742,"range":{"start_line":742,"start_character":8,"end_line":742,"end_character":54},"in_reply_to":"7f287b81_8b1929d8","updated":"2017-09-07 18:22:07.000000000","message":"OK I guess it has to be this way otherwise the notification sample won\u0027t work...I\u0027ll add a comment.","commit_id":"2e725bcd7cc3d246547d3d9d7d384cdc3364db5c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a23c6fcfeb66e9349e0c3d0cc2467d173804ef01","unresolved":false,"context_lines":[{"line_number":742,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":743,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":744,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":745,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":746,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"},{"line_number":747,"context_line":"            replacements\u003d{"},{"line_number":748,"context_line":"                \u0027reservation_id\u0027: server[\u0027reservation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":23,"id":"7f287b81_ab7985fc","line":745,"range":{"start_line":745,"start_character":8,"end_line":745,"end_character":71},"updated":"2017-09-07 16:07:55.000000000","message":"This is two because of the instance.resize.error and instance.update notification? A comment for that would be useful.","commit_id":"2e725bcd7cc3d246547d3d9d7d384cdc3364db5c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"22e5b4f35becc8b509c6f57c6a58095e58fcccd4","unresolved":false,"context_lines":[{"line_number":742,"context_line":"        mock_reschedule.side_effect \u003d _build_resources"},{"line_number":743,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], post)"},{"line_number":744,"context_line":"        self._wait_for_state_change(self.api, server, expected_status\u003d\u0027ERROR\u0027)"},{"line_number":745,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS))"},{"line_number":746,"context_line":"        self._verify_notification(\u0027instance-resize-error\u0027,"},{"line_number":747,"context_line":"            replacements\u003d{"},{"line_number":748,"context_line":"                \u0027reservation_id\u0027: server[\u0027reservation_id\u0027],"}],"source_content_type":"text/x-python","patch_set":23,"id":"7f287b81_f71d2ebe","line":745,"range":{"start_line":745,"start_character":8,"end_line":745,"end_character":71},"in_reply_to":"7f287b81_ab7985fc","updated":"2017-09-07 18:22:07.000000000","message":"Nope it\u0027s two because of instance.resize.error and compute.exception:\n\n    {\n        \u0027payload\u0027:{\n            \u0027nova_object.namespace\u0027:\u0027nova\u0027,\n            \u0027nova_object.version\u0027:\u00271.0\u0027,\n            \u0027nova_object.data\u0027:{\n                \u0027function_name\u0027:u\u0027_build_resources\u0027,\n                \u0027exception_message\u0027:u\"The created instance\u0027s disk would be too small.\",\n                \u0027exception\u0027:u\u0027FlavorDiskTooSmall\u0027,\n                \u0027module_name\u0027:u\u0027nova.tests.functional.notification_sample_tests.test_instance\u0027\n            },\n            \u0027nova_object.name\u0027:\u0027ExceptionPayload\u0027\n        },\n        \u0027priority\u0027:\u0027ERROR\u0027,\n        \u0027publisher_id\u0027:        u\u0027nova-compute:fake-mini\u0027,\n        \u0027event_type\u0027:u\u0027compute.exception\u0027\n    }","commit_id":"2e725bcd7cc3d246547d3d9d7d384cdc3364db5c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ae8a70ebda4d2ec3ce23157c5772fa906aa0e497","unresolved":false,"context_lines":[{"line_number":733,"context_line":"        # There should be two notifications, one for the instance.resize.error"},{"line_number":734,"context_line":"        # and one for the compute.exception via the wrap_exception decorator on"},{"line_number":735,"context_line":"        # the ComputeManager.prep_resize method."},{"line_number":736,"context_line":"        raise Exception(fake_notifier.VERSIONED_NOTIFICATIONS)"},{"line_number":737,"context_line":"        self.assertEqual(2, len(fake_notifier.VERSIONED_NOTIFICATIONS),"},{"line_number":738,"context_line":"                         \u0027Unexpected number of notifications: %s\u0027 %"},{"line_number":739,"context_line":"                         fake_notifier.VERSIONED_NOTIFICATIONS)"}],"source_content_type":"text/x-python","patch_set":24,"id":"7f287b81_ad518438","line":736,"range":{"start_line":736,"start_character":8,"end_line":736,"end_character":62},"updated":"2017-09-08 13:16:29.000000000","message":"Crap I forgot that I left this in here. Oops.","commit_id":"aa608155bab8032c6b56c862b8bbceabdb72ec29"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":18603,"name":"Béla Vancsics","email":"vancsics@inf.u-szeged.hu","username":"vancsics"},"change_message_id":"7f7e54defb9b3ff4585cfa2df8a82a83a0c45547","unresolved":false,"context_lines":[{"line_number":11436,"context_line":"                    task_states.RESIZE_PREP, exc_info)"},{"line_number":11437,"context_line":""},{"line_number":11438,"context_line":"            mock_notify.assert_called_once_with("},{"line_number":11439,"context_line":"                self.context, instance, \u0027fake-mini\u0027, action\u003d\u0027resize\u0027, phase\u003d\u0027error\u0027,"},{"line_number":11440,"context_line":"                exception\u003dmock_res.side_effect)"},{"line_number":11441,"context_line":""},{"line_number":11442,"context_line":"    @mock.patch.object(compute_manager.ComputeManager, \"_reschedule\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_deaf7f92","line":11439,"range":{"start_line":11439,"start_character":16,"end_line":11439,"end_character":84},"updated":"2017-01-10 08:06:19.000000000","message":"pep8: E501 line too long (84 \u003e 79 characters)","commit_id":"6ecafd6beff2e6ad81e62bd6e71096dabf906abf"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"f63978df0307191931659a9828ce40de292cea14","unresolved":false,"context_lines":[{"line_number":11436,"context_line":"                    task_states.RESIZE_PREP, exc_info)"},{"line_number":11437,"context_line":""},{"line_number":11438,"context_line":"            mock_notify.assert_called_once_with("},{"line_number":11439,"context_line":"                self.context, instance, \u0027fake-mini\u0027, action\u003d\u0027resize\u0027, phase\u003d\u0027error\u0027,"},{"line_number":11440,"context_line":"                exception\u003dmock_res.side_effect)"},{"line_number":11441,"context_line":""},{"line_number":11442,"context_line":"    @mock.patch.object(compute_manager.ComputeManager, \"_reschedule\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_eacd525e","line":11439,"range":{"start_line":11439,"start_character":16,"end_line":11439,"end_character":84},"in_reply_to":"ba5201f7_deaf7f92","updated":"2017-01-10 12:23:03.000000000","message":"Done","commit_id":"6ecafd6beff2e6ad81e62bd6e71096dabf906abf"},{"author":{"_account_id":18603,"name":"Béla Vancsics","email":"vancsics@inf.u-szeged.hu","username":"vancsics"},"change_message_id":"7f7e54defb9b3ff4585cfa2df8a82a83a0c45547","unresolved":false,"context_lines":[{"line_number":11489,"context_line":"                    method_args, task_states.RESIZE_PREP, exc_info)"},{"line_number":11490,"context_line":"            mock_log.assert_called_once_with(exc_info, instance.uuid)"},{"line_number":11491,"context_line":"            mock_notify.assert_called_once_with("},{"line_number":11492,"context_line":"                self.context, instance, \u0027fake-mini\u0027, action\u003d\u0027resize\u0027, phase\u003d\u0027error\u0027,"},{"line_number":11493,"context_line":"                exception\u003dexcpt)"},{"line_number":11494,"context_line":""},{"line_number":11495,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_be81dbfd","line":11492,"range":{"start_line":11492,"start_character":16,"end_line":11492,"end_character":84},"updated":"2017-01-10 08:06:19.000000000","message":"pep8: E501 line too long (84 \u003e 79 characters)","commit_id":"6ecafd6beff2e6ad81e62bd6e71096dabf906abf"},{"author":{"_account_id":21239,"name":"Alex Szarka","email":"szarka@inf.u-szeged.hu","username":"xavvior"},"change_message_id":"f63978df0307191931659a9828ce40de292cea14","unresolved":false,"context_lines":[{"line_number":11489,"context_line":"                    method_args, task_states.RESIZE_PREP, exc_info)"},{"line_number":11490,"context_line":"            mock_log.assert_called_once_with(exc_info, instance.uuid)"},{"line_number":11491,"context_line":"            mock_notify.assert_called_once_with("},{"line_number":11492,"context_line":"                self.context, instance, \u0027fake-mini\u0027, action\u003d\u0027resize\u0027, phase\u003d\u0027error\u0027,"},{"line_number":11493,"context_line":"                exception\u003dexcpt)"},{"line_number":11494,"context_line":""},{"line_number":11495,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba5201f7_0adb761c","line":11492,"range":{"start_line":11492,"start_character":16,"end_line":11492,"end_character":84},"in_reply_to":"ba5201f7_be81dbfd","updated":"2017-01-10 12:23:03.000000000","message":"Done","commit_id":"6ecafd6beff2e6ad81e62bd6e71096dabf906abf"}]}
