)]}'
{"openstack/instance_ha/v1/notification.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"55058926c8e6fa1cb4ebb83f67ed596bfef77dd8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    #: The source host uuid of this notification."},{"line_number":58,"context_line":"    source_host_uuid \u003d resource.Body(\"source_host_uuid\")"},{"line_number":59,"context_line":"    #: The progress details of this notification."},{"line_number":60,"context_line":"    progress_details \u003d resource.Body(\"progress_details\")"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    _query_mapping \u003d resource.QueryParameters("},{"line_number":63,"context_line":"        \"sort_key\", \"sort_dir\", source_host_uuid\u003d\"source_host_uuid\","}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_b1ae2a2d","line":60,"range":{"start_line":60,"start_character":4,"end_line":60,"end_character":20},"updated":"2019-03-05 12:27:59.000000000","message":"if this is intended to be a list with a relatively complex structure for the list item, I think it make sense to create a detail type for the individual ProgressDetailItem and make here something like resource.Body(\u0027progress_details\u0027, type\u003dlist, list_type\u003dProgressDetailItem) - see compute.v2.limits for example","commit_id":"0981327f80b4a3c3cca155a22c0b17e0735019ce"},{"author":{"_account_id":26463,"name":"Niraj Singh","email":"niraj.singh@nttdata.com","username":"nirajsingh"},"change_message_id":"77952798c4f6b9301d066ea7aba9a91cec5a1269","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    #: The source host uuid of this notification."},{"line_number":58,"context_line":"    source_host_uuid \u003d resource.Body(\"source_host_uuid\")"},{"line_number":59,"context_line":"    #: The progress details of this notification."},{"line_number":60,"context_line":"    progress_details \u003d resource.Body(\"progress_details\")"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    _query_mapping \u003d resource.QueryParameters("},{"line_number":63,"context_line":"        \"sort_key\", \"sort_dir\", source_host_uuid\u003d\"source_host_uuid\","}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_12ce14b4","line":60,"range":{"start_line":60,"start_character":4,"end_line":60,"end_character":20},"in_reply_to":"9fdfeff1_b1ae2a2d","updated":"2019-03-05 14:21:32.000000000","message":"Done","commit_id":"0981327f80b4a3c3cca155a22c0b17e0735019ce"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"c03b7e37976016aadc371ed6bf1097853bb3ff83","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class RecoveryWorkflowDetailItem(resource.Resource):"},{"line_number":19,"context_line":"    progress \u003d resource.Body(\"progress\")"},{"line_number":20,"context_line":"    name \u003d resource.Body(\"name\")"},{"line_number":21,"context_line":"    state \u003d resource.Body(\"state\")"},{"line_number":22,"context_line":"    progress_details \u003d resource.Body(\"progress_details\", type\u003dlist)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class Notification(resource.Resource):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_7a0f442e","line":22,"range":{"start_line":19,"start_character":4,"end_line":22,"end_character":67},"updated":"2019-03-07 02:27:23.000000000","message":"Add docstring comments for each resource parameters.\n\nAlso, I think you can add a resource class for progress_details.\n\nprogress_details is a list of dict as below:\n\n\"progress_details\": [\n                    {\"timestamp:\": \"2019-02-28 07:19:55.571084\", \"message\": \"Starting instance: b9837317-a5b8-44f4-93b4-45500c562bb8\", \"progress\": \"0.0\"},\n                    {\"timestamp:\": \"2019-02-28 07:19:56.973944\", \"message\": \"Instance b9837317-a5b8-44f4-93b4-45500c562bb8 is started\", \"progress\": \"1.0\"}\n                ]","commit_id":"ba7487122e23af0a17bd8235bb1f92212c406598"},{"author":{"_account_id":1011,"name":"Tushar Patil","email":"tushar.vitthal.patil@gmail.com","username":"tpatil"},"change_message_id":"c03b7e37976016aadc371ed6bf1097853bb3ff83","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    payload \u003d resource.Body(\"payload\")"},{"line_number":64,"context_line":"    #: The source host uuid of this notification."},{"line_number":65,"context_line":"    source_host_uuid \u003d resource.Body(\"source_host_uuid\")"},{"line_number":66,"context_line":"    #: The progress details of this notification."},{"line_number":67,"context_line":"    recovery_workflow_details \u003d resource.Body("},{"line_number":68,"context_line":"        \"recovery_workflow_details\","},{"line_number":69,"context_line":"        type\u003dlist, list_type\u003dRecoveryWorkflowDetailItem)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_9a21d0a2","line":66,"range":{"start_line":66,"start_character":11,"end_line":66,"end_character":27},"updated":"2019-03-07 02:27:23.000000000","message":"recovery workflow details","commit_id":"ba7487122e23af0a17bd8235bb1f92212c406598"}],"openstack/tests/unit/instance_ha/v1/test_notification.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"a602132dcf3fd3f4b2a49696aafd44c2728b50a6","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"event\": \"LIFECYCLE\""},{"line_number":25,"context_line":"}"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"PROGRESS_DETAILS \u003d [{\"progress\": 1.0, \"state\": \"SUCCESS\","},{"line_number":28,"context_line":"                     \"name\": \"DisableComputeNodeTask\","},{"line_number":29,"context_line":"                     \"progress_details\": ["},{"line_number":30,"context_line":"                         {\"timestamp:\": \"2019-02-28 07:21:33.170190\","}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_a6983275","line":27,"updated":"2019-03-05 11:16:24.000000000","message":"is this intended to be a list?","commit_id":"a2f6d4d140eca3476711243c4f3acc61fc5cfd2d"},{"author":{"_account_id":26463,"name":"Niraj Singh","email":"niraj.singh@nttdata.com","username":"nirajsingh"},"change_message_id":"52ac68a0ee8e5919523f119e2e1a65f546944c75","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    \"event\": \"LIFECYCLE\""},{"line_number":25,"context_line":"}"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"PROGRESS_DETAILS \u003d [{\"progress\": 1.0, \"state\": \"SUCCESS\","},{"line_number":28,"context_line":"                     \"name\": \"DisableComputeNodeTask\","},{"line_number":29,"context_line":"                     \"progress_details\": ["},{"line_number":30,"context_line":"                         {\"timestamp:\": \"2019-02-28 07:21:33.170190\","}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_110b7624","line":27,"in_reply_to":"9fdfeff1_a6983275","updated":"2019-03-05 11:54:54.000000000","message":"Yes","commit_id":"a2f6d4d140eca3476711243c4f3acc61fc5cfd2d"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"6682036bcb9800ec84848f037f5dd85226b8d2a5","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        self.assertEqual(NOTIFICATION[\"payload\"], sot.payload)"},{"line_number":86,"context_line":"        self.assertEqual("},{"line_number":87,"context_line":"            NOTIFICATION[\"source_host_uuid\"], sot.source_host_uuid)"},{"line_number":88,"context_line":"        self.assertEqual("},{"line_number":89,"context_line":"            NOTIFICATION[\"recovery_workflow_details\"][0][\"name\"],"},{"line_number":90,"context_line":"            sot.recovery_workflow_details[0].name)"},{"line_number":91,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":6,"id":"5fc1f717_7a1165ac","line":88,"updated":"2019-03-08 08:16:43.000000000","message":"I would personally prefer first getting NOTIFICATION[\"recovery_workflow_details\"][0] into the temp variable and reference it instead of those bulky constructs","commit_id":"bc2ae748fd2b547acffded59354bf0af46b63ed4"}],"openstack/tests/unit/instance_ha/v1/test_proxy.py":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"a602132dcf3fd3f4b2a49696aafd44c2728b50a6","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.verify_delete(self.proxy.delete_segment, segment.Segment, True)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class TestInstanceHaProxyv1_1(TestInstanceHaProxy):"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_notification_get(self):"},{"line_number":96,"context_line":"        self.session \u003d mock.Mock(spec\u003dadapter.Adapter)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_66ba4ac1","line":93,"updated":"2019-03-05 11:16:24.000000000","message":"this shouldn\u0027t be part of the proxy test. Presence of progress_details is verified in the test_notification. No need to double-check it here. Only proxy methods are verified here. Since you hadn\u0027t modified any of those - no need for any change here.","commit_id":"a2f6d4d140eca3476711243c4f3acc61fc5cfd2d"},{"author":{"_account_id":26463,"name":"Niraj Singh","email":"niraj.singh@nttdata.com","username":"nirajsingh"},"change_message_id":"52ac68a0ee8e5919523f119e2e1a65f546944c75","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        self.verify_delete(self.proxy.delete_segment, segment.Segment, True)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"class TestInstanceHaProxyv1_1(TestInstanceHaProxy):"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_notification_get(self):"},{"line_number":96,"context_line":"        self.session \u003d mock.Mock(spec\u003dadapter.Adapter)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_716a0282","line":93,"in_reply_to":"9fdfeff1_66ba4ac1","updated":"2019-03-05 11:54:54.000000000","message":"Done","commit_id":"a2f6d4d140eca3476711243c4f3acc61fc5cfd2d"}],"releasenotes/notes/add-new-field-progress-details-in-notification-resource-f7871acb6ffd46dc.yaml":[{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"6682036bcb9800ec84848f037f5dd85226b8d2a5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In microversion 1.1, Masakari supports to return ``progress_details`` information"},{"line_number":5,"context_line":"    of the notification in ``GET /notifications/{notification_id}`` API."},{"line_number":6,"context_line":"    Added ``progress_details`` attribute to Notification class to read the progress_details"},{"line_number":7,"context_line":"    of the notification."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5fc1f717_7a38853c","line":4,"updated":"2019-03-08 08:16:43.000000000","message":"\"supports to return\" is not a grammatically correct expression. \"progress_details\" is also not a current attribute name","commit_id":"bc2ae748fd2b547acffded59354bf0af46b63ed4"},{"author":{"_account_id":27900,"name":"Artem Goncharov","email":"artem.goncharov@gmail.com","username":"gtema"},"change_message_id":"6682036bcb9800ec84848f037f5dd85226b8d2a5","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In microversion 1.1, Masakari supports to return ``progress_details`` information"},{"line_number":5,"context_line":"    of the notification in ``GET /notifications/{notification_id}`` API."},{"line_number":6,"context_line":"    Added ``progress_details`` attribute to Notification class to read the progress_details"},{"line_number":7,"context_line":"    of the notification."}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5fc1f717_3af51d84","line":6,"updated":"2019-03-08 08:16:43.000000000","message":"the attribute is not `progress_details` now","commit_id":"bc2ae748fd2b547acffded59354bf0af46b63ed4"}]}
