)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"23add34bd4ddb58b9b3aee314891ed178cde52ac","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenying \u003cying.chen@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-25 11:33:37 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"basic schedule service: Service class for binaries"},{"line_number":8,"context_line":"running on hosts"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Create the basic Service class for binaries running"},{"line_number":11,"context_line":"on hosts."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa69d971_3831600c","line":8,"range":{"start_line":7,"start_character":0,"end_line":8,"end_character":16},"updated":"2015-12-30 15:59:55.000000000","message":"Title should fit in a single line","commit_id":"c2c2dfbb28ee78134b6d554ca9e107b40a9651b5"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"5e70f18b2a6944050846a67b8bf6a763e5f340a8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     chenying \u003cying.chen@huawei.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-25 11:33:37 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"basic schedule service: Service class for binaries"},{"line_number":8,"context_line":"running on hosts"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Create the basic Service class for binaries running"},{"line_number":11,"context_line":"on hosts."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa69d971_17b457f0","line":8,"range":{"start_line":7,"start_character":0,"end_line":8,"end_character":16},"in_reply_to":"fa69d971_3831600c","updated":"2015-12-31 02:47:43.000000000","message":"Done","commit_id":"c2c2dfbb28ee78134b6d554ca9e107b40a9651b5"}],"smaug/cmd/manage.py":[{"author":{"_account_id":15069,"name":"zhonghuali","email":"lizhonghua.li@huawei.com","username":"sloblee"},"change_message_id":"de1271e92a015e0cae095d1eaf977f83c96a1404","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":116,"context_line":"        services \u003d db.service_get_all(ctxt)"},{"line_number":117,"context_line":"        print_format \u003d \"%-16s %-36s %-10s %-5s %-10s\""},{"line_number":118,"context_line":"        print(print_format % (_(\u0027Binary\u0027),"},{"line_number":119,"context_line":"                              _(\u0027Host\u0027),"},{"line_number":120,"context_line":"                              _(\u0027Status\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_11f13e01","line":117,"updated":"2015-12-29 11:02:54.000000000","message":"i wonder why change the format in this bp?","commit_id":"c2c2dfbb28ee78134b6d554ca9e107b40a9651b5"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"5e70f18b2a6944050846a67b8bf6a763e5f340a8","unresolved":false,"context_lines":[{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        ctxt \u003d context.get_admin_context()"},{"line_number":116,"context_line":"        services \u003d db.service_get_all(ctxt)"},{"line_number":117,"context_line":"        print_format \u003d \"%-16s %-36s %-10s %-5s %-10s\""},{"line_number":118,"context_line":"        print(print_format % (_(\u0027Binary\u0027),"},{"line_number":119,"context_line":"                              _(\u0027Host\u0027),"},{"line_number":120,"context_line":"                              _(\u0027Status\u0027),"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_7b5e0047","line":117,"in_reply_to":"1a7b0d38_11f13e01","updated":"2015-12-31 02:47:43.000000000","message":"available_zone has been removed in the patch 259311.\nIt fix a error about testing \u0027list schedule service\u0027 in this patch.","commit_id":"c2c2dfbb28ee78134b6d554ca9e107b40a9651b5"}],"smaug/common/config.py":[{"author":{"_account_id":13070,"name":"Eran Gampel","email":"eran@gampel.net","username":"Gampel"},"change_message_id":"3a86296bf14c5abf7cacb9b10c256b3e0a20b263","unresolved":false,"context_lines":[{"line_number":59,"context_line":"               default\u003dsocket.gethostname(),"},{"line_number":60,"context_line":"               help\u003d\u0027Name of this node.  This can be an opaque identifier. \u0027"},{"line_number":61,"context_line":"                    \u0027It is not necessarily a host name, FQDN, or IP address.\u0027),"},{"line_number":62,"context_line":"    cfg.StrOpt(\u0027storage_availability_zone\u0027,"},{"line_number":63,"context_line":"               default\u003d\u0027nova\u0027,"},{"line_number":64,"context_line":"               help\u003d\u0027Availability zone of this node\u0027),"},{"line_number":65,"context_line":"    cfg.StrOpt(\u0027auth_strategy\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_60ec482a","line":62,"range":{"start_line":62,"start_character":16,"end_line":62,"end_character":41},"updated":"2015-12-21 16:24:23.000000000","message":"why do we need this variable storage_availability_zone ?","commit_id":"295310e0e9e1befc2e40060d302bc6666e22cede"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"2d57071d1d1d80438cec1e67d39bcfc5dbd2f760","unresolved":false,"context_lines":[{"line_number":59,"context_line":"               default\u003dsocket.gethostname(),"},{"line_number":60,"context_line":"               help\u003d\u0027Name of this node.  This can be an opaque identifier. \u0027"},{"line_number":61,"context_line":"                    \u0027It is not necessarily a host name, FQDN, or IP address.\u0027),"},{"line_number":62,"context_line":"    cfg.StrOpt(\u0027storage_availability_zone\u0027,"},{"line_number":63,"context_line":"               default\u003d\u0027nova\u0027,"},{"line_number":64,"context_line":"               help\u003d\u0027Availability zone of this node\u0027),"},{"line_number":65,"context_line":"    cfg.StrOpt(\u0027auth_strategy\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_a499cbc5","line":62,"range":{"start_line":62,"start_character":16,"end_line":62,"end_character":41},"in_reply_to":"3a7e1126_60ec482a","updated":"2015-12-22 06:41:00.000000000","message":"Hi Eran I see. availability_zone is not necessary in smaug. I will remove it.","commit_id":"295310e0e9e1befc2e40060d302bc6666e22cede"}],"smaug/service.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"a5f53b178bf77ac16cc4da93c6f7647d40d085cb","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                                         \u0027binary\u0027: self.binary,"},{"line_number":166,"context_line":"                                         \u0027topic\u0027: self.topic,"},{"line_number":167,"context_line":"                                         \u0027report_count\u0027: 0,"},{"line_number":168,"context_line":"                                         \u0027availability_zone\u0027: zone})"},{"line_number":169,"context_line":"        self.service_id \u003d service_ref[\u0027id\u0027]"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def __getattr__(self, key):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_d697dbe9","line":168,"range":{"start_line":168,"start_character":42,"end_line":168,"end_character":59},"updated":"2015-12-22 13:19:01.000000000","message":"This field has been removed from Service DB model.","commit_id":"295310e0e9e1befc2e40060d302bc6666e22cede"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e00be01a63028c449856582dbad68322d564bdf7","unresolved":false,"context_lines":[{"line_number":165,"context_line":"                                         \u0027binary\u0027: self.binary,"},{"line_number":166,"context_line":"                                         \u0027topic\u0027: self.topic,"},{"line_number":167,"context_line":"                                         \u0027report_count\u0027: 0,"},{"line_number":168,"context_line":"                                         \u0027availability_zone\u0027: zone})"},{"line_number":169,"context_line":"        self.service_id \u003d service_ref[\u0027id\u0027]"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def __getattr__(self, key):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_4eca7351","line":168,"range":{"start_line":168,"start_character":42,"end_line":168,"end_character":59},"in_reply_to":"3a7e1126_d697dbe9","updated":"2015-12-23 02:50:37.000000000","message":"Done","commit_id":"295310e0e9e1befc2e40060d302bc6666e22cede"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"a5f53b178bf77ac16cc4da93c6f7647d40d085cb","unresolved":false,"context_lines":[{"line_number":169,"context_line":"        self.service_id \u003d service_ref[\u0027id\u0027]"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def __getattr__(self, key):"},{"line_number":172,"context_line":"        manager \u003d self.__dict__.get(\u0027manager\u0027, None)"},{"line_number":173,"context_line":"        return getattr(manager, key)"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_8c58678c","line":172,"updated":"2015-12-22 13:19:01.000000000","message":"I don\u0027t see why need to get manager like this.\nCan\u0027t we use self.manager directly?","commit_id":"295310e0e9e1befc2e40060d302bc6666e22cede"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"a5f53b178bf77ac16cc4da93c6f7647d40d085cb","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                service_ref \u003d db.service_get(ctxt, self.service_id)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"            state_catalog[\u0027report_count\u0027] \u003d service_ref[\u0027report_count\u0027] + 1"},{"line_number":275,"context_line":"            if zone !\u003d service_ref[\u0027availability_zone\u0027]:"},{"line_number":276,"context_line":"                state_catalog[\u0027availability_zone\u0027] \u003d zone"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"            db.service_update(ctxt,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_1657a326","line":275,"range":{"start_line":275,"start_character":36,"end_line":275,"end_character":53},"updated":"2015-12-22 13:19:01.000000000","message":"As above.","commit_id":"295310e0e9e1befc2e40060d302bc6666e22cede"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e00be01a63028c449856582dbad68322d564bdf7","unresolved":false,"context_lines":[{"line_number":272,"context_line":"                service_ref \u003d db.service_get(ctxt, self.service_id)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"            state_catalog[\u0027report_count\u0027] \u003d service_ref[\u0027report_count\u0027] + 1"},{"line_number":275,"context_line":"            if zone !\u003d service_ref[\u0027availability_zone\u0027]:"},{"line_number":276,"context_line":"                state_catalog[\u0027availability_zone\u0027] \u003d zone"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"            db.service_update(ctxt,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_0edb0b1d","line":275,"range":{"start_line":275,"start_character":36,"end_line":275,"end_character":53},"in_reply_to":"3a7e1126_1657a326","updated":"2015-12-23 02:50:37.000000000","message":"Done","commit_id":"295310e0e9e1befc2e40060d302bc6666e22cede"},{"author":{"_account_id":2023,"name":"Saggi Mizrahi","email":"ficoos+osreview@gmail.com","username":"ficoos"},"change_message_id":"23add34bd4ddb58b9b3aee314891ed178cde52ac","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                 service_name\u003dNone, *args, **kwargs):"},{"line_number":78,"context_line":"        super(Service, self).__init__()"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        if not rpc.initialized():"},{"line_number":81,"context_line":"            rpc.init(CONF)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        self.host \u003d host"},{"line_number":84,"context_line":"        self.binary \u003d binary"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_b33a51cc","line":81,"range":{"start_line":80,"start_character":0,"end_line":81,"end_character":26},"updated":"2015-12-30 15:59:55.000000000","message":"Maybe the rpc.init() function will make sure that it\u0027s a no-op if it\u0027s called twice. That way we don\u0027t have to check if it was initialized every time we want to use it.","commit_id":"c2c2dfbb28ee78134b6d554ca9e107b40a9651b5"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"5e70f18b2a6944050846a67b8bf6a763e5f340a8","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                 service_name\u003dNone, *args, **kwargs):"},{"line_number":78,"context_line":"        super(Service, self).__init__()"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        if not rpc.initialized():"},{"line_number":81,"context_line":"            rpc.init(CONF)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        self.host \u003d host"},{"line_number":84,"context_line":"        self.binary \u003d binary"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_37b95bea","line":81,"range":{"start_line":80,"start_character":0,"end_line":81,"end_character":26},"in_reply_to":"fa69d971_b33a51cc","updated":"2015-12-31 02:47:43.000000000","message":"Done","commit_id":"c2c2dfbb28ee78134b6d554ca9e107b40a9651b5"},{"author":{"_account_id":15069,"name":"zhonghuali","email":"lizhonghua.li@huawei.com","username":"sloblee"},"change_message_id":"de1271e92a015e0cae095d1eaf977f83c96a1404","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        self.binary \u003d binary"},{"line_number":85,"context_line":"        self.topic \u003d topic"},{"line_number":86,"context_line":"        self.manager_class_name \u003d manager"},{"line_number":87,"context_line":"        manager_class \u003d importutils.import_class(self.manager_class_name)"},{"line_number":88,"context_line":"        self.manager \u003d manager_class(host\u003dself.host,"},{"line_number":89,"context_line":"                                     service_name\u003dservice_name,"},{"line_number":90,"context_line":"                                     *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a7b0d38_d10e563a","line":87,"range":{"start_line":87,"start_character":8,"end_line":87,"end_character":21},"updated":"2015-12-29 11:02:54.000000000","message":"should we consider to use \"osprofiler \" to trace the performance too?","commit_id":"c2c2dfbb28ee78134b6d554ca9e107b40a9651b5"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"5e70f18b2a6944050846a67b8bf6a763e5f340a8","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        self.binary \u003d binary"},{"line_number":85,"context_line":"        self.topic \u003d topic"},{"line_number":86,"context_line":"        self.manager_class_name \u003d manager"},{"line_number":87,"context_line":"        manager_class \u003d importutils.import_class(self.manager_class_name)"},{"line_number":88,"context_line":"        self.manager \u003d manager_class(host\u003dself.host,"},{"line_number":89,"context_line":"                                     service_name\u003dservice_name,"},{"line_number":90,"context_line":"                                     *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa69d971_db3fecd4","line":87,"range":{"start_line":87,"start_character":8,"end_line":87,"end_character":21},"in_reply_to":"1a7b0d38_d10e563a","updated":"2015-12-31 02:47:43.000000000","message":"NO.  We have no requirements about tracing operation.","commit_id":"c2c2dfbb28ee78134b6d554ca9e107b40a9651b5"}],"smaug/tests/base.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"a5f53b178bf77ac16cc4da93c6f7647d40d085cb","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        \"\"\"Run before each test method to initialize test environment.\"\"\""},{"line_number":86,"context_line":"        super(TestCase, self).setUp()"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        rpc.add_extra_exmods(\"smuag.tests.unit\")"},{"line_number":89,"context_line":"        self.addCleanup(rpc.clear_extra_exmods)"},{"line_number":90,"context_line":"        self.addCleanup(rpc.cleanup)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a7e1126_60cd0165","line":88,"range":{"start_line":88,"start_character":30,"end_line":88,"end_character":35},"updated":"2015-12-22 13:19:01.000000000","message":"smaug","commit_id":"295310e0e9e1befc2e40060d302bc6666e22cede"},{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"e00be01a63028c449856582dbad68322d564bdf7","unresolved":false,"context_lines":[{"line_number":85,"context_line":"        \"\"\"Run before each test method to initialize test environment.\"\"\""},{"line_number":86,"context_line":"        super(TestCase, self).setUp()"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        rpc.add_extra_exmods(\"smuag.tests.unit\")"},{"line_number":89,"context_line":"        self.addCleanup(rpc.clear_extra_exmods)"},{"line_number":90,"context_line":"        self.addCleanup(rpc.cleanup)"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a7b0d38_dccb6271","line":88,"range":{"start_line":88,"start_character":30,"end_line":88,"end_character":35},"in_reply_to":"3a7e1126_60cd0165","updated":"2015-12-23 02:50:37.000000000","message":"Done","commit_id":"295310e0e9e1befc2e40060d302bc6666e22cede"}]}
