)]}'
{"ceilometer/storage/impl_hbase.py":[{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"db53f11281e95cce3c60f27234da086dd8290a6d","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        opts[\u0027port\u0027] \u003d port and int(port) or 9090"},{"line_number":174,"context_line":"        return opts"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    ##Work with alarms"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def update_alarm(self, alarm):"},{"line_number":179,"context_line":"        \"\"\"Create an alarm."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Foik%3D","line":176,"updated":"2014-02-26 19:25:49.000000000","message":"can probably drop this comment","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"b4cd4084b796d4adde61a0b72795e29008fdafe3","unresolved":false,"context_lines":[{"line_number":173,"context_line":"        opts[\u0027port\u0027] \u003d port and int(port) or 9090"},{"line_number":174,"context_line":"        return opts"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    ##Work with alarms"},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"    def update_alarm(self, alarm):"},{"line_number":179,"context_line":"        \"\"\"Create an alarm."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8Yg%3D","line":176,"in_reply_to":"AAAAU3%2F%2Foik%3D","updated":"2014-02-27 08:15:03.000000000","message":"Will do","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"b23508a42c6aafd2800f8865e1de7a44bcf42449","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        #TODO(nprivalova): to be refactored"},{"line_number":206,"context_line":"        if enabled is not None:"},{"line_number":207,"context_line":"            enabled \u003d json.dumps(enabled)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        q \u003d make_query(require_meter\u003dFalse, query_only\u003dTrue,"},{"line_number":210,"context_line":"                       alarm_id\u003dalarm_id, name\u003dname,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F88w%3D","line":207,"updated":"2014-02-27 06:58:38.000000000","message":"maybe we should move it into make_query?","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"b4cd4084b796d4adde61a0b72795e29008fdafe3","unresolved":false,"context_lines":[{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        #TODO(nprivalova): to be refactored"},{"line_number":206,"context_line":"        if enabled is not None:"},{"line_number":207,"context_line":"            enabled \u003d json.dumps(enabled)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        q \u003d make_query(require_meter\u003dFalse, query_only\u003dTrue,"},{"line_number":210,"context_line":"                       alarm_id\u003dalarm_id, name\u003dname,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8Ys%3D","line":207,"in_reply_to":"AAAAVX%2F%2F88w%3D","updated":"2014-02-27 08:15:03.000000000","message":"These lines will be removed at all in https://review.openstack.org/#/c/75908/","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"db53f11281e95cce3c60f27234da086dd8290a6d","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def record_alarm_change(self, alarm_change):"},{"line_number":252,"context_line":"        \"\"\"Record alarm change event."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        if not isinstance(alarm_change, dict):"},{"line_number":255,"context_line":"            alarm_change \u003d alarm_change.as_dict()"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        alarm_change_dict \u003d serialize_entry(alarm_change)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2FamE%3D","line":254,"updated":"2014-02-26 19:25:49.000000000","message":"would be safer to check if it\u0027s an alarmchange before running as_dict()","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"b4cd4084b796d4adde61a0b72795e29008fdafe3","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def record_alarm_change(self, alarm_change):"},{"line_number":252,"context_line":"        \"\"\"Record alarm change event."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        if not isinstance(alarm_change, dict):"},{"line_number":255,"context_line":"            alarm_change \u003d alarm_change.as_dict()"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        alarm_change_dict \u003d serialize_entry(alarm_change)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8ZY%3D","line":254,"in_reply_to":"AAAAU3%2F%2FamE%3D","updated":"2014-02-27 08:15:03.000000000","message":"Do you mean smth like isinstance(alarm_change, models.AlarmChange)?","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"8dea4a7981e297c557071a7e6eb7f9533c9e7d82","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def record_alarm_change(self, alarm_change):"},{"line_number":252,"context_line":"        \"\"\"Record alarm change event."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        if not isinstance(alarm_change, dict):"},{"line_number":255,"context_line":"            alarm_change \u003d alarm_change.as_dict()"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        alarm_change_dict \u003d serialize_entry(alarm_change)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2Fyqc%3D","line":254,"in_reply_to":"AAAAVX%2F%2F3Uk%3D","updated":"2014-02-28 08:52:12.000000000","message":"Done","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"de335a191d7ec8fad41edd0bb488812e5883977b","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def record_alarm_change(self, alarm_change):"},{"line_number":252,"context_line":"        \"\"\"Record alarm change event."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        if not isinstance(alarm_change, dict):"},{"line_number":255,"context_line":"            alarm_change \u003d alarm_change.as_dict()"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        alarm_change_dict \u003d serialize_entry(alarm_change)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F3Uk%3D","line":254,"in_reply_to":"AAAAVX%2F%2F3oc%3D","updated":"2014-02-27 18:20:33.000000000","message":"ah i see, well in that case, let\u0027s remove this if statement as it will always be a dict... sql and mongo backends assume the same as well.","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"ba13fe17c5fdf4a88165962a0736e69c915eef66","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def record_alarm_change(self, alarm_change):"},{"line_number":252,"context_line":"        \"\"\"Record alarm change event."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        if not isinstance(alarm_change, dict):"},{"line_number":255,"context_line":"            alarm_change \u003d alarm_change.as_dict()"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        alarm_change_dict \u003d serialize_entry(alarm_change)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F3oc%3D","line":254,"in_reply_to":"AAAAVX%2F%2F5S0%3D","updated":"2014-02-27 17:29:21.000000000","message":"hm, I think that here we cannot have smth wrong. This code is available only through API and on API level we create the dict that is put to db: https://github.com/openstack/ceilometer/blob/master/ceilometer/api/controllers/v2.py#1688. Not sure that we should add additional validation here, what do you think?","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"51b9489d2b1b59cdb8973e457066b2ebdac539e9","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def record_alarm_change(self, alarm_change):"},{"line_number":252,"context_line":"        \"\"\"Record alarm change event."},{"line_number":253,"context_line":"        \"\"\""},{"line_number":254,"context_line":"        if not isinstance(alarm_change, dict):"},{"line_number":255,"context_line":"            alarm_change \u003d alarm_change.as_dict()"},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        alarm_change_dict \u003d serialize_entry(alarm_change)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F5S0%3D","line":254,"in_reply_to":"AAAAVX%2F%2F8ZY%3D","updated":"2014-02-27 14:51:51.000000000","message":"yep. i assume that is the expected type? just to make sure we\u0027re not running as_dict() on something that doesn\u0027t have as_dict() function.","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"db53f11281e95cce3c60f27234da086dd8290a6d","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        alarm_change_dict \u003d serialize_entry(alarm_change)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        ts \u003d alarm_change.get(\u0027timestamp\u0027, None) or datetime.datetime.now()"},{"line_number":260,"context_line":"        rts \u003d reverse_timestamp(ts)"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        alarm_history_table \u003d self.conn.table(self.ALARM_HISTORY_TABLE)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2Falw%3D","line":259,"updated":"2014-02-26 19:25:49.000000000","message":"drop None as get() defaults to None","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"b4cd4084b796d4adde61a0b72795e29008fdafe3","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"        alarm_change_dict \u003d serialize_entry(alarm_change)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"        ts \u003d alarm_change.get(\u0027timestamp\u0027, None) or datetime.datetime.now()"},{"line_number":260,"context_line":"        rts \u003d reverse_timestamp(ts)"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        alarm_history_table \u003d self.conn.table(self.ALARM_HISTORY_TABLE)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8ac%3D","line":259,"in_reply_to":"AAAAU3%2F%2Falw%3D","updated":"2014-02-27 08:15:03.000000000","message":"Will fix","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"db53f11281e95cce3c60f27234da086dd8290a6d","unresolved":false,"context_lines":[{"line_number":916,"context_line":"        val \u003d result_dict[key]"},{"line_number":917,"context_line":"        if isinstance(val, datetime.datetime):"},{"line_number":918,"context_line":"            val \u003d timeutils.strtime(val)"},{"line_number":919,"context_line":"        if not isinstance(val, basestring):"},{"line_number":920,"context_line":"            val \u003d json.dumps(val)"},{"line_number":921,"context_line":"        result_dict[\u0027f:\u0027 + key] \u003d val"},{"line_number":922,"context_line":"        del result_dict[key]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAU3%2F%2FosA%3D","line":919,"updated":"2014-02-26 19:25:49.000000000","message":"i don\u0027t really understand the comment above... is this going to be re-written? if not,\n\ns/if/elif/","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"b4cd4084b796d4adde61a0b72795e29008fdafe3","unresolved":false,"context_lines":[{"line_number":916,"context_line":"        val \u003d result_dict[key]"},{"line_number":917,"context_line":"        if isinstance(val, datetime.datetime):"},{"line_number":918,"context_line":"            val \u003d timeutils.strtime(val)"},{"line_number":919,"context_line":"        if not isinstance(val, basestring):"},{"line_number":920,"context_line":"            val \u003d json.dumps(val)"},{"line_number":921,"context_line":"        result_dict[\u0027f:\u0027 + key] \u003d val"},{"line_number":922,"context_line":"        del result_dict[key]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8do%3D","line":919,"in_reply_to":"AAAAU3%2F%2FosA%3D","updated":"2014-02-27 08:15:03.000000000","message":"Yep, in the next cr from me serialize and deserialize is rewritten using json. I didn\u0027t do it here because diff is too big: https://review.openstack.org/#/c/75908/","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"51b9489d2b1b59cdb8973e457066b2ebdac539e9","unresolved":false,"context_lines":[{"line_number":916,"context_line":"        val \u003d result_dict[key]"},{"line_number":917,"context_line":"        if isinstance(val, datetime.datetime):"},{"line_number":918,"context_line":"            val \u003d timeutils.strtime(val)"},{"line_number":919,"context_line":"        if not isinstance(val, basestring):"},{"line_number":920,"context_line":"            val \u003d json.dumps(val)"},{"line_number":921,"context_line":"        result_dict[\u0027f:\u0027 + key] \u003d val"},{"line_number":922,"context_line":"        del result_dict[key]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F5Sc%3D","line":919,"in_reply_to":"AAAAVX%2F%2F8do%3D","updated":"2014-02-27 14:51:51.000000000","message":"ok, i\u0027ll look for it in that change..","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"b23508a42c6aafd2800f8865e1de7a44bcf42449","unresolved":false,"context_lines":[{"line_number":935,"context_line":"        if \"timestamp\" in key and val:"},{"line_number":936,"context_line":"            val \u003d timeutils.parse_strtime(val)"},{"line_number":937,"context_line":"        # There is no int in wsme models"},{"line_number":938,"context_line":"        if isinstance(val, (int, long, float)) and not isinstance(val, bool):"},{"line_number":939,"context_line":"            val \u003d str(val)"},{"line_number":940,"context_line":"        result_entry[key[2:]] \u003d val"},{"line_number":941,"context_line":"        del result_entry[key]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F9%2Fc%3D","line":938,"updated":"2014-02-27 06:58:38.000000000","message":"elif?","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"b4cd4084b796d4adde61a0b72795e29008fdafe3","unresolved":false,"context_lines":[{"line_number":935,"context_line":"        if \"timestamp\" in key and val:"},{"line_number":936,"context_line":"            val \u003d timeutils.parse_strtime(val)"},{"line_number":937,"context_line":"        # There is no int in wsme models"},{"line_number":938,"context_line":"        if isinstance(val, (int, long, float)) and not isinstance(val, bool):"},{"line_number":939,"context_line":"            val \u003d str(val)"},{"line_number":940,"context_line":"        result_entry[key[2:]] \u003d val"},{"line_number":941,"context_line":"        del result_entry[key]"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAVX%2F%2F8cE%3D","line":938,"in_reply_to":"AAAAVX%2F%2F9%2Fc%3D","updated":"2014-02-27 08:15:03.000000000","message":"The problem here is that this code is rewritten in next patch https://review.openstack.org/#/c/75908/ . I didn\u0027t do it here because diff is too big","commit_id":"3aaf2c2071afb2d74683961ce33436dc0e883cec"}]}
