)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8cd973560abf09b19b347d374b63d42b1292647d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Zhenyu Zheng \u003czhengzhenyu@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-07-20 01:12:51 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix nova service-list for new compute service causes TypeError"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In 0df91a7f799060cd2e9b8a0adac1efacb974bcb3 a comparison"},{"line_number":10,"context_line":"between ``update_at`` field from services DB and update time"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_f6eedf86","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":62},"updated":"2018-08-07 22:29:30.000000000","message":"This is a bit confusing, maybe re-word as:\n\n\"Fix service list for disabled compute using MC driver\"","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8cd973560abf09b19b347d374b63d42b1292647d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix nova service-list for new compute service causes TypeError"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In 0df91a7f799060cd2e9b8a0adac1efacb974bcb3 a comparison"},{"line_number":10,"context_line":"between ``update_at`` field from services DB and update time"},{"line_number":11,"context_line":"from memcache was added if the servergroup_driver is set to be"},{"line_number":12,"context_line":"memcached."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_76facf42","line":10,"range":{"start_line":10,"start_character":42,"end_line":10,"end_character":44},"updated":"2018-08-07 22:29:30.000000000","message":"table","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8cd973560abf09b19b347d374b63d42b1292647d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix nova service-list for new compute service causes TypeError"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In 0df91a7f799060cd2e9b8a0adac1efacb974bcb3 a comparison"},{"line_number":10,"context_line":"between ``update_at`` field from services DB and update time"},{"line_number":11,"context_line":"from memcache was added if the servergroup_driver is set to be"},{"line_number":12,"context_line":"memcached."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_b6006736","line":10,"range":{"start_line":10,"start_character":10,"end_line":10,"end_character":19},"updated":"2018-08-07 22:29:30.000000000","message":"updated_at","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8cd973560abf09b19b347d374b63d42b1292647d","unresolved":false,"context_lines":[{"line_number":9,"context_line":"In 0df91a7f799060cd2e9b8a0adac1efacb974bcb3 a comparison"},{"line_number":10,"context_line":"between ``update_at`` field from services DB and update time"},{"line_number":11,"context_line":"from memcache was added if the servergroup_driver is set to be"},{"line_number":12,"context_line":"memcached."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This could be problematic if servergroup_driver\u003dmc and"},{"line_number":15,"context_line":"``enable_new_services`` option in /etc/nova/nova.conf"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_369a1714","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":9},"updated":"2018-08-07 22:29:30.000000000","message":"\"mc\".","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8cd973560abf09b19b347d374b63d42b1292647d","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This could be problematic if servergroup_driver\u003dmc and"},{"line_number":15,"context_line":"``enable_new_services`` option in /etc/nova/nova.conf"},{"line_number":16,"context_line":"is set to be ``False`` at the same time, as the ``update_at``"},{"line_number":17,"context_line":"field will always be ``Null`` in services DB."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch fix the bug by using ``created_at`` instead of"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_d69e4306","line":16,"range":{"start_line":16,"start_character":50,"end_line":16,"end_character":59},"updated":"2018-08-07 22:29:30.000000000","message":"updated_at","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8cd973560abf09b19b347d374b63d42b1292647d","unresolved":false,"context_lines":[{"line_number":14,"context_line":"This could be problematic if servergroup_driver\u003dmc and"},{"line_number":15,"context_line":"``enable_new_services`` option in /etc/nova/nova.conf"},{"line_number":16,"context_line":"is set to be ``False`` at the same time, as the ``update_at``"},{"line_number":17,"context_line":"field will always be ``Null`` in services DB."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch fix the bug by using ``created_at`` instead of"},{"line_number":20,"context_line":"``updated_at`` if None."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_f6a33f4e","line":17,"range":{"start_line":17,"start_character":42,"end_line":17,"end_character":44},"updated":"2018-08-07 22:29:30.000000000","message":"record","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8cd973560abf09b19b347d374b63d42b1292647d","unresolved":false,"context_lines":[{"line_number":16,"context_line":"is set to be ``False`` at the same time, as the ``update_at``"},{"line_number":17,"context_line":"field will always be ``Null`` in services DB."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch fix the bug by using ``created_at`` instead of"},{"line_number":20,"context_line":"``updated_at`` if None."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Closes-Bug: #1781880"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_9688cbc6","line":19,"range":{"start_line":19,"start_character":11,"end_line":19,"end_character":14},"updated":"2018-08-07 22:29:30.000000000","message":"fixes","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"0e311433a17b0de47a4ca7d2c130340e938022e6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"field will always be ``Null`` in services DB."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch fix the bug by using ``created_at`` instead of"},{"line_number":20,"context_line":"``updated_at`` if None."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Closes-Bug: #1781880"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_0d8c292c","line":20,"updated":"2018-07-31 09:01:53.000000000","message":"well, I\u0027m not super happy with the idea that we should use created_at for telling whether the service is updated.\n\nIf you see the db driver, we only use updated_at that we consistently return.","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8cd973560abf09b19b347d374b63d42b1292647d","unresolved":false,"context_lines":[{"line_number":17,"context_line":"field will always be ``Null`` in services DB."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch fix the bug by using ``created_at`` instead of"},{"line_number":20,"context_line":"``updated_at`` if None."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Closes-Bug: #1781880"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_96b1ab92","line":20,"in_reply_to":"5f7c97a3_0d8c292c","updated":"2018-08-07 22:29:30.000000000","message":"Yeah this isn\u0027t how I figured we\u0027d fix the bug, just handle updated_time_in_db being None and return the MC updated time as Sylvain pointed out.","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7fb8320de7c5bacdb20e719ab8f75319b271c410","unresolved":false,"context_lines":[{"line_number":16,"context_line":"is set to be ``False`` at the same time, as the ``updated_at``"},{"line_number":17,"context_line":"field will always be ``Null`` in services record."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch fixs the bug by return ``updated_time_in_mc`` instead"},{"line_number":20,"context_line":"under the above mentioned scenario."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Closes-Bug: #1781880"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_4ce307a5","line":19,"range":{"start_line":19,"start_character":11,"end_line":19,"end_character":15},"updated":"2018-08-14 05:55:26.000000000","message":"fixes","commit_id":"ce850d0590152be173d611d7dc1b2690e6f0c3ce"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7fb8320de7c5bacdb20e719ab8f75319b271c410","unresolved":false,"context_lines":[{"line_number":16,"context_line":"is set to be ``False`` at the same time, as the ``updated_at``"},{"line_number":17,"context_line":"field will always be ``Null`` in services record."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch fixs the bug by return ``updated_time_in_mc`` instead"},{"line_number":20,"context_line":"under the above mentioned scenario."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Closes-Bug: #1781880"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_6cde03db","line":19,"range":{"start_line":19,"start_character":27,"end_line":19,"end_character":33},"updated":"2018-08-14 05:55:26.000000000","message":"returning","commit_id":"ce850d0590152be173d611d7dc1b2690e6f0c3ce"}],"nova/servicegroup/drivers/mc.py":[{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"4491c943782f45f65dc9cdcb9e56b7bf7c75a57d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            # Change mc time to offset-aware time"},{"line_number":79,"context_line":"            updated_time_in_mc \u003d \\"},{"line_number":80,"context_line":"                updated_time_in_mc.replace(tzinfo\u003diso8601.UTC)"},{"line_number":81,"context_line":"            # If [Default]enable_new_service is set to be false, the"},{"line_number":82,"context_line":"            # updated_at_time_in_db will be None, in this case, use"},{"line_number":83,"context_line":"            # ``created_at`` field instead of ``updated_at``."},{"line_number":84,"context_line":"            if not updated_time_in_db:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_1b287a96","line":81,"range":{"start_line":81,"start_character":17,"end_line":81,"end_character":45},"updated":"2018-07-26 12:23:57.000000000","message":"``[DEFAULT]/enable_new_service``","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8cd973560abf09b19b347d374b63d42b1292647d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            # Change mc time to offset-aware time"},{"line_number":79,"context_line":"            updated_time_in_mc \u003d \\"},{"line_number":80,"context_line":"                updated_time_in_mc.replace(tzinfo\u003diso8601.UTC)"},{"line_number":81,"context_line":"            # If [Default]enable_new_service is set to be false, the"},{"line_number":82,"context_line":"            # updated_at_time_in_db will be None, in this case, use"},{"line_number":83,"context_line":"            # ``created_at`` field instead of ``updated_at``."},{"line_number":84,"context_line":"            if not updated_time_in_db:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_d66c030a","line":81,"range":{"start_line":81,"start_character":17,"end_line":81,"end_character":45},"in_reply_to":"5f7c97a3_1b287a96","updated":"2018-08-07 22:29:30.000000000","message":"Also, the option name is \"enable_new_services\".","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"0e311433a17b0de47a4ca7d2c130340e938022e6","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            # updated_at_time_in_db will be None, in this case, use"},{"line_number":83,"context_line":"            # ``created_at`` field instead of ``updated_at``."},{"line_number":84,"context_line":"            if not updated_time_in_db:"},{"line_number":85,"context_line":"                updated_time_in_db \u003d service_ref[\u0027created_at\u0027]"},{"line_number":86,"context_line":"            if updated_time_in_db \u003c\u003d updated_time_in_mc:"},{"line_number":87,"context_line":"                return updated_time_in_mc"},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_0d9e6968","line":85,"updated":"2018-07-31 09:01:53.000000000","message":"you could have made it in a single line like :\nupdated_time_in_db \u003d service_ref[\u0027updated_at\u0027] or service_ref[\u0027created_at\u0027] which would have made the above more easily understandable but that\u0027s a nit.","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"0e311433a17b0de47a4ca7d2c130340e938022e6","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            if not updated_time_in_db:"},{"line_number":85,"context_line":"                updated_time_in_db \u003d service_ref[\u0027created_at\u0027]"},{"line_number":86,"context_line":"            if updated_time_in_db \u003c\u003d updated_time_in_mc:"},{"line_number":87,"context_line":"                return updated_time_in_mc"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        return updated_time_in_db"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_edad2d83","line":87,"updated":"2018-07-31 09:01:53.000000000","message":"here, all of this method is for superseding the update time given by the DB by the update time given by memcache.\n\nHonestly, I just feel that if memcache is able to give us an update time but the DB isn\u0027t, just return the MC time instead of considering the DB creation time (which is older anyway).","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"4e409c70b42dcaf3b9779ea39a0eed47ccdc3117","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            if not updated_time_in_db:"},{"line_number":85,"context_line":"                updated_time_in_db \u003d service_ref[\u0027created_at\u0027]"},{"line_number":86,"context_line":"            if updated_time_in_db \u003c\u003d updated_time_in_mc:"},{"line_number":87,"context_line":"                return updated_time_in_mc"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        return updated_time_in_db"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_0b4098a4","line":87,"in_reply_to":"3f79a3b5_16311b0c","updated":"2018-08-14 01:52:01.000000000","message":"Done","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"8cd973560abf09b19b347d374b63d42b1292647d","unresolved":false,"context_lines":[{"line_number":84,"context_line":"            if not updated_time_in_db:"},{"line_number":85,"context_line":"                updated_time_in_db \u003d service_ref[\u0027created_at\u0027]"},{"line_number":86,"context_line":"            if updated_time_in_db \u003c\u003d updated_time_in_mc:"},{"line_number":87,"context_line":"                return updated_time_in_mc"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"        return updated_time_in_db"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_16311b0c","line":87,"in_reply_to":"5f7c97a3_edad2d83","updated":"2018-08-07 22:29:30.000000000","message":"Agree, returning updated_time_in_mc is OK if updated_time_in_db is None.","commit_id":"13ffb027d93c7f1b9b2ebb6568e8f3fa7c71fbe3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7fb8320de7c5bacdb20e719ab8f75319b271c410","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            updated_time_in_mc \u003d \\"},{"line_number":80,"context_line":"                updated_time_in_mc.replace(tzinfo\u003diso8601.UTC)"},{"line_number":81,"context_line":"            # If [DEFAULT]/enable_new_services is set to be false, the"},{"line_number":82,"context_line":"            # updated_at_time_in_db will be None, in this case, use"},{"line_number":83,"context_line":"            # ``updated_time_in_mc`` instead."},{"line_number":84,"context_line":"            if (not updated_time_in_db or"},{"line_number":85,"context_line":"                    updated_time_in_db \u003c\u003d updated_time_in_mc):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_2cf6cb64","line":82,"range":{"start_line":82,"start_character":14,"end_line":82,"end_character":35},"updated":"2018-08-14 05:55:26.000000000","message":"updated_time_in_db","commit_id":"ce850d0590152be173d611d7dc1b2690e6f0c3ce"}],"nova/tests/unit/servicegroup/test_mc_servicegroup.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7fb8320de7c5bacdb20e719ab8f75319b271c410","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        self.assertEqual(service_ref[\u0027updated_at\u0027],"},{"line_number":95,"context_line":"                         self.servicegroup_api.get_updated_time(service_ref))"},{"line_number":96,"context_line":"        self.mc_client.get.assert_called_once_with(\u0027compute:fake-host\u0027)"},{"line_number":97,"context_line":"        # If no record returned from the DB, return the record from mc"},{"line_number":98,"context_line":"        service_ref[\u0027updated_at\u0027] \u003d None"},{"line_number":99,"context_line":"        self.assertEqual(updated_at_time.replace(tzinfo\u003diso8601.UTC),"},{"line_number":100,"context_line":"                         self.servicegroup_api.get_updated_time(service_ref))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_ecebf374","line":97,"updated":"2018-08-14 05:55:26.000000000","message":"Don\u0027t you have to reset the mock?\n\nself.mc_client.reset_mock()","commit_id":"ce850d0590152be173d611d7dc1b2690e6f0c3ce"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"7117b0125b495f7b2fd04ec2a64a05927a9abc8b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        self.assertEqual(service_ref[\u0027updated_at\u0027],"},{"line_number":95,"context_line":"                         self.servicegroup_api.get_updated_time(service_ref))"},{"line_number":96,"context_line":"        self.mc_client.get.assert_called_once_with(\u0027compute:fake-host\u0027)"},{"line_number":97,"context_line":"        # If no record returned from the DB, return the record from mc"},{"line_number":98,"context_line":"        service_ref[\u0027updated_at\u0027] \u003d None"},{"line_number":99,"context_line":"        self.assertEqual(updated_at_time.replace(tzinfo\u003diso8601.UTC),"},{"line_number":100,"context_line":"                         self.servicegroup_api.get_updated_time(service_ref))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_4c58e754","line":97,"in_reply_to":"3f79a3b5_ecebf374","updated":"2018-08-14 06:08:21.000000000","message":"Hmm, seems I should, I was just thinking about it the return value could be returned.","commit_id":"ce850d0590152be173d611d7dc1b2690e6f0c3ce"}]}
