)]}'
{"cinder/tests/test_storwize_svc.py":[{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"c285ed71d34782f27db3314770b3d9df409210d8","unresolved":false,"context_lines":[{"line_number":3226,"context_line":""},{"line_number":3227,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"},{"line_number":3228,"context_line":"        self.assertEqual(\u0027copying\u0027, model_update[\u0027replication_status\u0027])"},{"line_number":3229,"context_line":"        # Change primary copy offline"},{"line_number":3230,"context_line":"        self.sim.change_vdiskcopy_attr(volume[\u0027name\u0027], \u0027status\u0027,"},{"line_number":3231,"context_line":"                                       \u0027offline\u0027)"},{"line_number":3232,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_5ac2c1e9","line":3229,"updated":"2015-03-03 12:27:20.000000000","message":"Add a space line above?","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"8a7549902fd286fbaa3541cee44cc00cf76932a3","unresolved":false,"context_lines":[{"line_number":3226,"context_line":""},{"line_number":3227,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"},{"line_number":3228,"context_line":"        self.assertEqual(\u0027copying\u0027, model_update[\u0027replication_status\u0027])"},{"line_number":3229,"context_line":"        # Change primary copy offline"},{"line_number":3230,"context_line":"        self.sim.change_vdiskcopy_attr(volume[\u0027name\u0027], \u0027status\u0027,"},{"line_number":3231,"context_line":"                                       \u0027offline\u0027)"},{"line_number":3232,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_eab6b1db","line":3229,"in_reply_to":"ba7be1f8_5ac2c1e9","updated":"2015-03-05 06:07:19.000000000","message":"Done","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":11751,"name":"Marcus V R Nascimento","email":"marcusvrn@gmail.com","username":"marcusvrn"},"change_message_id":"fd47b5591b45360b3c21e60e6e91c2547c0535c1","unresolved":false,"context_lines":[{"line_number":3228,"context_line":"        self.assertEqual(\u0027copying\u0027, model_update[\u0027replication_status\u0027])"},{"line_number":3229,"context_line":"        # Change primary copy offline"},{"line_number":3230,"context_line":"        self.sim.change_vdiskcopy_attr(volume[\u0027name\u0027], \u0027status\u0027,"},{"line_number":3231,"context_line":"                                       \u0027offline\u0027)"},{"line_number":3232,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"},{"line_number":3233,"context_line":"        self.assertIs(\u0027error\u0027, model_update[\u0027replication_status\u0027])"},{"line_number":3234,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_e86acf18","line":3231,"updated":"2015-03-03 13:34:25.000000000","message":"The break line is not necessary. It does not have more than 80 columns.","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"8a7549902fd286fbaa3541cee44cc00cf76932a3","unresolved":false,"context_lines":[{"line_number":3228,"context_line":"        self.assertEqual(\u0027copying\u0027, model_update[\u0027replication_status\u0027])"},{"line_number":3229,"context_line":"        # Change primary copy offline"},{"line_number":3230,"context_line":"        self.sim.change_vdiskcopy_attr(volume[\u0027name\u0027], \u0027status\u0027,"},{"line_number":3231,"context_line":"                                       \u0027offline\u0027)"},{"line_number":3232,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"},{"line_number":3233,"context_line":"        self.assertIs(\u0027error\u0027, model_update[\u0027replication_status\u0027])"},{"line_number":3234,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_2ab1a9e1","line":3231,"in_reply_to":"ba7be1f8_e86acf18","updated":"2015-03-05 06:07:19.000000000","message":"Done","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"c285ed71d34782f27db3314770b3d9df409210d8","unresolved":false,"context_lines":[{"line_number":3230,"context_line":"        self.sim.change_vdiskcopy_attr(volume[\u0027name\u0027], \u0027status\u0027,"},{"line_number":3231,"context_line":"                                       \u0027offline\u0027)"},{"line_number":3232,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"},{"line_number":3233,"context_line":"        self.assertIs(\u0027error\u0027, model_update[\u0027replication_status\u0027])"},{"line_number":3234,"context_line":""},{"line_number":3235,"context_line":"        # Check the volume copy created on pool opentack2."},{"line_number":3236,"context_line":"        attrs \u003d self.driver._helpers.get_vdisk_attributes(volume[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_da74f1d0","line":3233,"updated":"2015-03-03 12:27:20.000000000","message":"Don\u0027t you need to bring volume status online after this test case?","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"8a7549902fd286fbaa3541cee44cc00cf76932a3","unresolved":false,"context_lines":[{"line_number":3230,"context_line":"        self.sim.change_vdiskcopy_attr(volume[\u0027name\u0027], \u0027status\u0027,"},{"line_number":3231,"context_line":"                                       \u0027offline\u0027)"},{"line_number":3232,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"},{"line_number":3233,"context_line":"        self.assertIs(\u0027error\u0027, model_update[\u0027replication_status\u0027])"},{"line_number":3234,"context_line":""},{"line_number":3235,"context_line":"        # Check the volume copy created on pool opentack2."},{"line_number":3236,"context_line":"        attrs \u003d self.driver._helpers.get_vdisk_attributes(volume[\u0027name\u0027])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_7eac42ee","line":3233,"in_reply_to":"ba7be1f8_da74f1d0","updated":"2015-03-05 06:07:19.000000000","message":"Done","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"c285ed71d34782f27db3314770b3d9df409210d8","unresolved":false,"context_lines":[{"line_number":3239,"context_line":"        primary_status \u003d attrs[\u0027primary\u0027]"},{"line_number":3240,"context_line":""},{"line_number":3241,"context_line":"        self.driver.promote_replica(self.ctxt, volume)"},{"line_number":3242,"context_line":"        # After promote_replica, primary copy should be swiched."},{"line_number":3243,"context_line":"        attrs \u003d self.driver._helpers.get_vdisk_attributes(volume[\u0027name\u0027])"},{"line_number":3244,"context_line":"        self.assertEqual(primary_status[0], attrs[\u0027primary\u0027][1])"},{"line_number":3245,"context_line":"        self.assertEqual(primary_status[1], attrs[\u0027primary\u0027][0])"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_9ab8b976","line":3242,"updated":"2015-03-03 12:27:20.000000000","message":"Add a space line above?","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"8a7549902fd286fbaa3541cee44cc00cf76932a3","unresolved":false,"context_lines":[{"line_number":3239,"context_line":"        primary_status \u003d attrs[\u0027primary\u0027]"},{"line_number":3240,"context_line":""},{"line_number":3241,"context_line":"        self.driver.promote_replica(self.ctxt, volume)"},{"line_number":3242,"context_line":"        # After promote_replica, primary copy should be swiched."},{"line_number":3243,"context_line":"        attrs \u003d self.driver._helpers.get_vdisk_attributes(volume[\u0027name\u0027])"},{"line_number":3244,"context_line":"        self.assertEqual(primary_status[0], attrs[\u0027primary\u0027][1])"},{"line_number":3245,"context_line":"        self.assertEqual(primary_status[1], attrs[\u0027primary\u0027][0])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_9eb9f630","line":3242,"in_reply_to":"ba7be1f8_9ab8b976","updated":"2015-03-05 06:07:19.000000000","message":"Done","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"12514bf72fddb7b728f646c6f64d07575a7d5a0f","unresolved":false,"context_lines":[{"line_number":3227,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"},{"line_number":3228,"context_line":"        self.assertEqual(\u0027copying\u0027, model_update[\u0027replication_status\u0027])"},{"line_number":3229,"context_line":""},{"line_number":3230,"context_line":"        # Primary copy offline, secondary copy online, data consistent"},{"line_number":3231,"context_line":"        self.sim.change_vdiskcopy_attr(volume[\u0027name\u0027], \u0027status\u0027, \u0027offline\u0027)"},{"line_number":3232,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"},{"line_number":3233,"context_line":"        self.assertEqual(\u0027active-stop\u0027, model_update[\u0027replication_status\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_f3cd38b8","line":3230,"updated":"2015-03-31 05:09:56.000000000","message":"How about list all possible combinations of primary, secondary online state and consistent state?  There will be altogether 8 of them.","commit_id":"6c0f7f5057bfce7cfa1ad3291ee90eb20cdf5699"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"0d7f8681cb80463d919a55124e62c91426a2ae67","unresolved":false,"context_lines":[{"line_number":3247,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"},{"line_number":3248,"context_line":"        self.assertEqual(\u0027error\u0027, model_update[\u0027replication_status\u0027])"},{"line_number":3249,"context_line":""},{"line_number":3250,"context_line":"        # Primary copy online, secondary copy offline, data consistent"},{"line_number":3251,"context_line":"        self.sim.change_vdiskcopy_attr(volume[\u0027name\u0027], \u0027sync\u0027, \u0027no\u0027,"},{"line_number":3252,"context_line":"                                       copy\u003d\"secondary\")"},{"line_number":3253,"context_line":"        model_update \u003d self.driver.get_replication_status(self.ctxt, volume)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_4578958f","line":3250,"updated":"2015-03-31 07:14:41.000000000","message":"s/consistent/inconsistent/","commit_id":"564b2c2ca05ba1f69e088adad9f00b17c5ee1a01"}],"cinder/volume/drivers/ibm/storwize_svc/replication.py":[{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"8fd407421d961bf1fea64edc1714bff4f9116ac1","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        primary \u003d copies.get(\u0027primary\u0027, None)"},{"line_number":136,"context_line":"        secondary \u003d copies.get(\u0027secondary\u0027, None)"},{"line_number":137,"context_line":"        status \u003d None"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        # Check status of primary copy"},{"line_number":140,"context_line":"        if not primary:"},{"line_number":141,"context_line":"            primary \u003d {\u0027status\u0027: \u0027not found\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_8e629214","line":138,"updated":"2015-02-16 14:57:45.000000000","message":"I know that this is not entirely within the scope of the bug, but logic like this seems more intuitive to me:\n\n    # Check status of primary copy\n    status \u003d \u0027error\u0027\n    if not primary:\n        primary \u003d {\u0027status\u0027: \u0027not found\u0027, \u0027sync\u0027: \u0027no\u0027}\n    elif primary[\u0027status\u0027] \u003d\u003d \u0027online\u0027:\n        status \u003d \u0027active\u0027","commit_id":"47c840c05755a814e60df7560c390df37605f11c"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"873c28316080ea609eab7653bf51cb0465ad4f80","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        primary \u003d copies.get(\u0027primary\u0027, None)"},{"line_number":136,"context_line":"        secondary \u003d copies.get(\u0027secondary\u0027, None)"},{"line_number":137,"context_line":"        status \u003d None"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        # Check status of primary copy"},{"line_number":140,"context_line":"        if not primary:"},{"line_number":141,"context_line":"            primary \u003d {\u0027status\u0027: \u0027not found\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_5f69ddbc","line":138,"in_reply_to":"da86d52c_8e629214","updated":"2015-03-03 07:48:28.000000000","message":"Done","commit_id":"47c840c05755a814e60df7560c390df37605f11c"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"8fd407421d961bf1fea64edc1714bff4f9116ac1","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            secondary \u003d {\u0027status\u0027: \u0027not found\u0027,"},{"line_number":155,"context_line":"                         \u0027sync\u0027: \u0027no\u0027,"},{"line_number":156,"context_line":"                         \u0027sync_progress\u0027: \u00270\u0027}"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        if secondary[\u0027status\u0027] !\u003d \u0027online\u0027:"},{"line_number":159,"context_line":"            status \u003d \u0027error\u0027"},{"line_number":160,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_49ac148d","line":157,"updated":"2015-02-16 14:57:45.000000000","message":"Seems like this next block of code only updates the \u0027status\u0027 variable (unless the primary was already in error), why not only execute it if \u0027status\u0027 \u003d\u003d \u0027active\u0027?","commit_id":"47c840c05755a814e60df7560c390df37605f11c"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"873c28316080ea609eab7653bf51cb0465ad4f80","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            secondary \u003d {\u0027status\u0027: \u0027not found\u0027,"},{"line_number":155,"context_line":"                         \u0027sync\u0027: \u0027no\u0027,"},{"line_number":156,"context_line":"                         \u0027sync_progress\u0027: \u00270\u0027}"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        if secondary[\u0027status\u0027] !\u003d \u0027online\u0027:"},{"line_number":159,"context_line":"            status \u003d \u0027error\u0027"},{"line_number":160,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_7fadc1e8","line":157,"in_reply_to":"da86d52c_49ac148d","updated":"2015-03-03 07:48:28.000000000","message":"It\u0027s not just status but also secondary[\u0027sync_progress\u0027] \u003d \u0027100\u0027","commit_id":"47c840c05755a814e60df7560c390df37605f11c"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"8fd407421d961bf1fea64edc1714bff4f9116ac1","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            if secondary[\u0027sync\u0027] \u003d\u003d \u0027yes\u0027:"},{"line_number":162,"context_line":"                secondary[\u0027sync_progress\u0027] \u003d \u0027100\u0027"},{"line_number":163,"context_line":"                # Only change the status if not in abnormal state"},{"line_number":164,"context_line":"                if status !\u003d \u0027error\u0027 and status !\u003d \u0027not found\u0027:"},{"line_number":165,"context_line":"                    status \u003d \u0027active\u0027"},{"line_number":166,"context_line":"            else:"},{"line_number":167,"context_line":"                # Only change the status if not in abnormal state"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_ee0eae8b","line":164,"updated":"2015-02-16 14:57:45.000000000","message":"How can the status be \u0027not found\u0027 at this point? It seems like it can only be \u0027error\u0027 or \u0027active\u0027.","commit_id":"47c840c05755a814e60df7560c390df37605f11c"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"873c28316080ea609eab7653bf51cb0465ad4f80","unresolved":false,"context_lines":[{"line_number":161,"context_line":"            if secondary[\u0027sync\u0027] \u003d\u003d \u0027yes\u0027:"},{"line_number":162,"context_line":"                secondary[\u0027sync_progress\u0027] \u003d \u0027100\u0027"},{"line_number":163,"context_line":"                # Only change the status if not in abnormal state"},{"line_number":164,"context_line":"                if status !\u003d \u0027error\u0027 and status !\u003d \u0027not found\u0027:"},{"line_number":165,"context_line":"                    status \u003d \u0027active\u0027"},{"line_number":166,"context_line":"            else:"},{"line_number":167,"context_line":"                # Only change the status if not in abnormal state"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba7be1f8_1f6cc5cf","line":164,"in_reply_to":"da86d52c_ee0eae8b","updated":"2015-03-03 07:48:28.000000000","message":"Done","commit_id":"47c840c05755a814e60df7560c390df37605f11c"},{"author":{"_account_id":11751,"name":"Marcus V R Nascimento","email":"marcusvrn@gmail.com","username":"marcusvrn"},"change_message_id":"fd47b5591b45360b3c21e60e6e91c2547c0535c1","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            secondary \u003d {\u0027status\u0027: \u0027not found\u0027,"},{"line_number":155,"context_line":"                         \u0027sync\u0027: \u0027no\u0027,"},{"line_number":156,"context_line":"                         \u0027sync_progress\u0027: \u00270\u0027}"},{"line_number":157,"context_line":"            status \u003d \u0027error\u0027"},{"line_number":158,"context_line":"        else:"},{"line_number":159,"context_line":"            if secondary[\u0027status\u0027] !\u003d \u0027online\u0027:"},{"line_number":160,"context_line":"                status \u003d \u0027error\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_288dc7d3","line":157,"updated":"2015-03-03 13:34:25.000000000","message":"Too much spaces above.","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"8a7549902fd286fbaa3541cee44cc00cf76932a3","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            secondary \u003d {\u0027status\u0027: \u0027not found\u0027,"},{"line_number":155,"context_line":"                         \u0027sync\u0027: \u0027no\u0027,"},{"line_number":156,"context_line":"                         \u0027sync_progress\u0027: \u00270\u0027}"},{"line_number":157,"context_line":"            status \u003d \u0027error\u0027"},{"line_number":158,"context_line":"        else:"},{"line_number":159,"context_line":"            if secondary[\u0027status\u0027] !\u003d \u0027online\u0027:"},{"line_number":160,"context_line":"                status \u003d \u0027error\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_41099694","line":157,"in_reply_to":"ba7be1f8_288dc7d3","updated":"2015-03-05 06:07:19.000000000","message":"which spaces? I guess make mistake for the empty line between 156~157. It\u0027s not code line.","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"c285ed71d34782f27db3314770b3d9df409210d8","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            if secondary[\u0027status\u0027] !\u003d \u0027online\u0027:"},{"line_number":160,"context_line":"                status \u003d \u0027error\u0027"},{"line_number":161,"context_line":"            else:"},{"line_number":162,"context_line":"                if secondary[\u0027sync\u0027] \u003d\u003d \u0027yes\u0027:"},{"line_number":163,"context_line":"                    secondary[\u0027sync_progress\u0027] \u003d \u0027100\u0027"},{"line_number":164,"context_line":"                    # Only change the status if not in error state"},{"line_number":165,"context_line":"                    if status !\u003d \u0027error\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba7be1f8_1a4849b2","line":162,"updated":"2015-03-03 12:27:20.000000000","message":"I think the if-else is too deep here. Maybe you could rephrase the logic. Three things are mixed: 1) re-assign primary and secondary if they are empty 2) update secondary[\u0027sync_progress\u0027] 3) choose the correct status.","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":11079,"name":"TaoBai","email":"baitao5@huawei.com","username":"TaoBai"},"change_message_id":"8a7549902fd286fbaa3541cee44cc00cf76932a3","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            if secondary[\u0027status\u0027] !\u003d \u0027online\u0027:"},{"line_number":160,"context_line":"                status \u003d \u0027error\u0027"},{"line_number":161,"context_line":"            else:"},{"line_number":162,"context_line":"                if secondary[\u0027sync\u0027] \u003d\u003d \u0027yes\u0027:"},{"line_number":163,"context_line":"                    secondary[\u0027sync_progress\u0027] \u003d \u0027100\u0027"},{"line_number":164,"context_line":"                    # Only change the status if not in error state"},{"line_number":165,"context_line":"                    if status !\u003d \u0027error\u0027:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_fe87525f","line":162,"in_reply_to":"ba7be1f8_1a4849b2","updated":"2015-03-05 06:07:19.000000000","message":"Think about it in the future.","commit_id":"5c77ac5cd274e08f6f9a2aa37ea5eb23972d22e7"},{"author":{"_account_id":13900,"name":"Accela Zhao","email":"accelazh@gmail.com","username":"accelazh"},"change_message_id":"7aedf71df857fdb978c4a609f8d1e867681c6d4d","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                if secondary[\u0027sync\u0027] \u003d\u003d \u0027yes\u0027:"},{"line_number":163,"context_line":"                    secondary[\u0027sync_progress\u0027] \u003d \u0027100\u0027"},{"line_number":164,"context_line":"                    # Only change the status if not in error state"},{"line_number":165,"context_line":"                    if status !\u003d \u0027error\u0027:"},{"line_number":166,"context_line":"                        status \u003d \u0027active\u0027"},{"line_number":167,"context_line":"                    else:"},{"line_number":168,"context_line":"                        # Primary offline, secondary online, data consistent,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_f66c89d2","line":165,"updated":"2015-03-06 13:37:15.000000000","message":"It would be better if the nested \"if\" could be less than 3 levels.","commit_id":"6c0f7f5057bfce7cfa1ad3291ee90eb20cdf5699"}]}
