)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"80b391914ab19b5fc5d6944d93d2a4c7961139ba","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Improve the timestamp validation of ceilometer API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, ceilometer API is lack of timestamp validation."},{"line_number":10,"context_line":"timestamp in query should be check if it can be parse to isotimestamp, and"},{"line_number":11,"context_line":"raise explicit exception if not."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I02cb2f30b00bde46bf8a0e4e161a0e2ce9d44c09"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3ae8d1ca_f21de2be","line":10,"updated":"2014-05-28 06:23:13.000000000","message":"typo, checked?","commit_id":"0940fac73ecd840fe1a8cf180e9ff14ec67e256f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"8a8509257d8ceda948ce61c53b7cefac62eae4d1","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Improve the timestamp validation of ceilometer API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, ceilometer API is lack of timestamp validation."},{"line_number":10,"context_line":"timestamp in query should be check if it can be parse to isotimestamp, and"},{"line_number":11,"context_line":"raise explicit exception if not."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I02cb2f30b00bde46bf8a0e4e161a0e2ce9d44c09"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3ae8d1ca_b57424d0","line":10,"in_reply_to":"3ae8d1ca_f21de2be","updated":"2014-05-28 07:35:33.000000000","message":"Done","commit_id":"0940fac73ecd840fe1a8cf180e9ff14ec67e256f"},{"author":{"_account_id":6924,"name":"Pradeep Kilambi","email":"pkilambi@redhat.com","username":"pkilambi"},"change_message_id":"28f9f140ead3bb70e93fabc2338167851f5e746b","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Improve the timestamp validation of ceilometer API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, ceilometer API is lack of timestamp validation."},{"line_number":10,"context_line":"Timestamp in query should be checked if it can be parse to isotimestamp,"},{"line_number":11,"context_line":"and raise explicit exception if not."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I02cb2f30b00bde46bf8a0e4e161a0e2ce9d44c09"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"baada198_2568c0f4","line":10,"updated":"2014-07-02 17:25:32.000000000","message":"minor nit: s/parse/parsed/ ?","commit_id":"536910f12d5b4d691fd750c7dcb724d521dea978"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8ffce160472723cc2e1109c0b5fa8329f53b5cab","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Improve the timestamp validation of ceilometer API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently, ceilometer API is lack of timestamp validation."},{"line_number":10,"context_line":"Timestamp in query should be checked if it can be parse to isotimestamp,"},{"line_number":11,"context_line":"and raise explicit exception if not."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I02cb2f30b00bde46bf8a0e4e161a0e2ce9d44c09"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"fa98f980_3749058c","line":10,"in_reply_to":"baada198_2568c0f4","updated":"2014-09-09 06:09:32.000000000","message":"Done","commit_id":"536910f12d5b4d691fd750c7dcb724d521dea978"}],"ceilometer/api/controllers/v2.py":[{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"80b391914ab19b5fc5d6944d93d2a4c7961139ba","unresolved":false,"context_lines":[{"line_number":544,"context_line":"            iso_timestamp \u003d iso_timestamp.replace(tzinfo\u003dNone)"},{"line_number":545,"context_line":"        except ValueError:"},{"line_number":546,"context_line":"            raise wsme.exc.InvalidInput(\u0027timestamp\u0027, timestamp)"},{"line_number":547,"context_line":"        if type \u003d\u003d \u0027start\u0027:"},{"line_number":548,"context_line":"            query_start \u003d (iso_timestamp -"},{"line_number":549,"context_line":"                           datetime.timedelta(minutes\u003doffset))"},{"line_number":550,"context_line":"            return iso_timestamp, query_start"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_7212b2b2","line":547,"updated":"2014-05-28 06:23:13.000000000","message":"instead of using base string, how about using boolean?","commit_id":"0940fac73ecd840fe1a8cf180e9ff14ec67e256f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"8a8509257d8ceda948ce61c53b7cefac62eae4d1","unresolved":false,"context_lines":[{"line_number":544,"context_line":"            iso_timestamp \u003d iso_timestamp.replace(tzinfo\u003dNone)"},{"line_number":545,"context_line":"        except ValueError:"},{"line_number":546,"context_line":"            raise wsme.exc.InvalidInput(\u0027timestamp\u0027, timestamp)"},{"line_number":547,"context_line":"        if type \u003d\u003d \u0027start\u0027:"},{"line_number":548,"context_line":"            query_start \u003d (iso_timestamp -"},{"line_number":549,"context_line":"                           datetime.timedelta(minutes\u003doffset))"},{"line_number":550,"context_line":"            return iso_timestamp, query_start"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_75737ce9","line":547,"in_reply_to":"3ae8d1ca_7212b2b2","updated":"2014-05-28 07:35:33.000000000","message":"Done","commit_id":"0940fac73ecd840fe1a8cf180e9ff14ec67e256f"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"80b391914ab19b5fc5d6944d93d2a4c7961139ba","unresolved":false,"context_lines":[{"line_number":548,"context_line":"            query_start \u003d (iso_timestamp -"},{"line_number":549,"context_line":"                           datetime.timedelta(minutes\u003doffset))"},{"line_number":550,"context_line":"            return iso_timestamp, query_start"},{"line_number":551,"context_line":"        else:"},{"line_number":552,"context_line":"            query_end \u003d (iso_timestamp +"},{"line_number":553,"context_line":"                         datetime.timedelta(minutes\u003doffset))"},{"line_number":554,"context_line":"            return iso_timestamp, query_end"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_72ee328a","line":551,"updated":"2014-05-28 06:23:13.000000000","message":"Instead of having the if/else clause here, how about we pass the minus offset to this func when dealing with end_timestamp? So here we don\u0027t need the if/else anymore","commit_id":"0940fac73ecd840fe1a8cf180e9ff14ec67e256f"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"8a8509257d8ceda948ce61c53b7cefac62eae4d1","unresolved":false,"context_lines":[{"line_number":548,"context_line":"            query_start \u003d (iso_timestamp -"},{"line_number":549,"context_line":"                           datetime.timedelta(minutes\u003doffset))"},{"line_number":550,"context_line":"            return iso_timestamp, query_start"},{"line_number":551,"context_line":"        else:"},{"line_number":552,"context_line":"            query_end \u003d (iso_timestamp +"},{"line_number":553,"context_line":"                         datetime.timedelta(minutes\u003doffset))"},{"line_number":554,"context_line":"            return iso_timestamp, query_end"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_556e8002","line":551,"in_reply_to":"3ae8d1ca_72ee328a","updated":"2014-05-28 07:35:33.000000000","message":"Done","commit_id":"0940fac73ecd840fe1a8cf180e9ff14ec67e256f"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"d415aa2fdb97f26c65585018cf510e111a009865","unresolved":false,"context_lines":[{"line_number":561,"context_line":"    end_timestamp \u003d args.get(\u0027end_timestamp\u0027)"},{"line_number":562,"context_line":"    start_timestamp \u003d _parse_timestamp(start_timestamp)"},{"line_number":563,"context_line":"    end_timestamp \u003d _parse_timestamp(end_timestamp)"},{"line_number":564,"context_line":"    query_start \u003d start_timestamp - datetime.timedelta(minutes\u003dsearch_offset)"},{"line_number":565,"context_line":"    query_end \u003d start_timestamp + datetime.timedelta(minutes\u003dsearch_offset)"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"    return {\u0027query_start\u0027: query_start,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ae8d1ca_1bbd0969","line":564,"updated":"2014-05-28 08:10:23.000000000","message":"What if start_timestamp is None?","commit_id":"d145f7fff421b32fea7b6c2ea4d201e833f964c9"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"f48a0b86f5f1638545a9d3827218ddd480507d81","unresolved":false,"context_lines":[{"line_number":561,"context_line":"    end_timestamp \u003d args.get(\u0027end_timestamp\u0027)"},{"line_number":562,"context_line":"    start_timestamp \u003d _parse_timestamp(start_timestamp)"},{"line_number":563,"context_line":"    end_timestamp \u003d _parse_timestamp(end_timestamp)"},{"line_number":564,"context_line":"    query_start \u003d start_timestamp - datetime.timedelta(minutes\u003dsearch_offset)"},{"line_number":565,"context_line":"    query_end \u003d start_timestamp + datetime.timedelta(minutes\u003dsearch_offset)"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"    return {\u0027query_start\u0027: query_start,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ae8d1ca_c1c81277","line":564,"in_reply_to":"3ae8d1ca_1bbd0969","updated":"2014-05-28 08:54:37.000000000","message":"If start_timestamp is None, querying data from storage will not be filtered by start_timestamp. but currently ,the start_timestamp and end_timestamp are not used, only the query_start and query_end are used. please see:\nhttps://github.com/openstack/ceilometer/blob/master/ceilometer/api/controllers/v2.py#L489","commit_id":"d145f7fff421b32fea7b6c2ea4d201e833f964c9"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"76223d5e293cca47ce6bf0c8d624c5292ba27ffa","unresolved":false,"context_lines":[{"line_number":561,"context_line":"    end_timestamp \u003d args.get(\u0027end_timestamp\u0027)"},{"line_number":562,"context_line":"    start_timestamp \u003d _parse_timestamp(start_timestamp)"},{"line_number":563,"context_line":"    end_timestamp \u003d _parse_timestamp(end_timestamp)"},{"line_number":564,"context_line":"    query_start \u003d start_timestamp - datetime.timedelta(minutes\u003dsearch_offset)"},{"line_number":565,"context_line":"    query_end \u003d start_timestamp + datetime.timedelta(minutes\u003dsearch_offset)"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"    return {\u0027query_start\u0027: query_start,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ae8d1ca_870c5a44","line":564,"in_reply_to":"3ae8d1ca_a76f9691","updated":"2014-05-28 09:59:08.000000000","message":"Sorry, I misunderstood you said^^^ ,Done in PS3","commit_id":"d145f7fff421b32fea7b6c2ea4d201e833f964c9"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"fe0f9ed96a0918279592e4c3e56d830a772aa34a","unresolved":false,"context_lines":[{"line_number":561,"context_line":"    end_timestamp \u003d args.get(\u0027end_timestamp\u0027)"},{"line_number":562,"context_line":"    start_timestamp \u003d _parse_timestamp(start_timestamp)"},{"line_number":563,"context_line":"    end_timestamp \u003d _parse_timestamp(end_timestamp)"},{"line_number":564,"context_line":"    query_start \u003d start_timestamp - datetime.timedelta(minutes\u003dsearch_offset)"},{"line_number":565,"context_line":"    query_end \u003d start_timestamp + datetime.timedelta(minutes\u003dsearch_offset)"},{"line_number":566,"context_line":""},{"line_number":567,"context_line":"    return {\u0027query_start\u0027: query_start,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ae8d1ca_a76f9691","line":564,"in_reply_to":"3ae8d1ca_c1c81277","updated":"2014-05-28 09:37:20.000000000","message":"what i mean here if start_timestamp is None, this line(Ln564) would result an exception.","commit_id":"d145f7fff421b32fea7b6c2ea4d201e833f964c9"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"2eee50575747e74e6bfe443286c6975a387e56c0","unresolved":false,"context_lines":[{"line_number":554,"context_line":"            iso_timestamp \u003d timeutils.parse_isotime(timestamp)"},{"line_number":555,"context_line":"            iso_timestamp \u003d iso_timestamp.replace(tzinfo\u003dNone)"},{"line_number":556,"context_line":"        except ValueError:"},{"line_number":557,"context_line":"            raise wsme.exc.InvalidInput(\u0027timestamp\u0027, timestamp)"},{"line_number":558,"context_line":"        return iso_timestamp"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    start_timestamp \u003d args.get(\u0027start_timestamp\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_c4771dd3","line":557,"updated":"2014-06-02 14:08:45.000000000","message":"might be useful to add message to explain error... see other InvalidInput errors","commit_id":"e3b4ad1e3dcf9fda3a4798c2e722edf82e3843c7"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c82f8e4a6f61cd8ddbe8ff6d0aeaa229ce5a4cfe","unresolved":false,"context_lines":[{"line_number":554,"context_line":"            iso_timestamp \u003d timeutils.parse_isotime(timestamp)"},{"line_number":555,"context_line":"            iso_timestamp \u003d iso_timestamp.replace(tzinfo\u003dNone)"},{"line_number":556,"context_line":"        except ValueError:"},{"line_number":557,"context_line":"            raise wsme.exc.InvalidInput(\u0027timestamp\u0027, timestamp)"},{"line_number":558,"context_line":"        return iso_timestamp"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    start_timestamp \u003d args.get(\u0027start_timestamp\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_c5ff05a9","line":557,"in_reply_to":"1ae5cdf2_c4771dd3","updated":"2014-06-04 03:33:52.000000000","message":"Done","commit_id":"e3b4ad1e3dcf9fda3a4798c2e722edf82e3843c7"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"1ae903ca495c7f55109b14e47033db211c0997ce","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            iso_timestamp \u003d iso_timestamp.replace(tzinfo\u003dNone)"},{"line_number":556,"context_line":"        except ValueError:"},{"line_number":557,"context_line":"            raise wsme.exc.InvalidInput(\u0027timestamp\u0027, timestamp)"},{"line_number":558,"context_line":"        return iso_timestamp"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    start_timestamp \u003d args.get(\u0027start_timestamp\u0027)"},{"line_number":561,"context_line":"    end_timestamp \u003d args.get(\u0027end_timestamp\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_24736116","line":558,"updated":"2014-06-02 14:06:15.000000000","message":"iso_timestamp is undefined if it fails in try{}","commit_id":"e3b4ad1e3dcf9fda3a4798c2e722edf82e3843c7"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"163ec0f34587fbe23c702f63950b7c173a3cf1a7","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            iso_timestamp \u003d iso_timestamp.replace(tzinfo\u003dNone)"},{"line_number":556,"context_line":"        except ValueError:"},{"line_number":557,"context_line":"            raise wsme.exc.InvalidInput(\u0027timestamp\u0027, timestamp)"},{"line_number":558,"context_line":"        return iso_timestamp"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    start_timestamp \u003d args.get(\u0027start_timestamp\u0027)"},{"line_number":561,"context_line":"    end_timestamp \u003d args.get(\u0027end_timestamp\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_a4ecd190","line":558,"in_reply_to":"1ae5cdf2_24736116","updated":"2014-06-02 14:07:59.000000000","message":"whoops... ignore","commit_id":"e3b4ad1e3dcf9fda3a4798c2e722edf82e3843c7"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"c82f8e4a6f61cd8ddbe8ff6d0aeaa229ce5a4cfe","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            iso_timestamp \u003d iso_timestamp.replace(tzinfo\u003dNone)"},{"line_number":556,"context_line":"        except ValueError:"},{"line_number":557,"context_line":"            raise wsme.exc.InvalidInput(\u0027timestamp\u0027, timestamp)"},{"line_number":558,"context_line":"        return iso_timestamp"},{"line_number":559,"context_line":""},{"line_number":560,"context_line":"    start_timestamp \u003d args.get(\u0027start_timestamp\u0027)"},{"line_number":561,"context_line":"    end_timestamp \u003d args.get(\u0027end_timestamp\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_4514d5f4","line":558,"in_reply_to":"1ae5cdf2_a4ecd190","updated":"2014-06-04 03:33:52.000000000","message":":-)","commit_id":"e3b4ad1e3dcf9fda3a4798c2e722edf82e3843c7"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"1f41ae70b1b9d78b74504b6d66e943caef587865","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            iso_timestamp \u003d iso_timestamp.replace(tzinfo\u003dNone)"},{"line_number":556,"context_line":"        except ValueError:"},{"line_number":557,"context_line":"            raise wsme.exc.InvalidInput(\u0027timestamp cannot be parsed\u0027,"},{"line_number":558,"context_line":"                                        timestamp)"},{"line_number":559,"context_line":"        return iso_timestamp"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"    start_timestamp \u003d args.get(\u0027start_timestamp\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_9adc4a75","line":558,"updated":"2014-06-04 03:09:31.000000000","message":"I think what gordon meant in the comment here in the last commit was to look at other InvalidInput usage, e.g. Ln 856, and follow those conventions. The way you construct this InvalidInput exception would result some strange output. See https://github.com/stackforge/wsme/blob/master/wsme/exc.py#L29","commit_id":"d11570984677c7eef8edba2b4243fc15be6e9770"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"76c127d979476bc23f0f6f12bd1bd391e496f206","unresolved":false,"context_lines":[{"line_number":555,"context_line":"            iso_timestamp \u003d iso_timestamp.replace(tzinfo\u003dNone)"},{"line_number":556,"context_line":"        except ValueError:"},{"line_number":557,"context_line":"            raise wsme.exc.InvalidInput(\u0027timestamp cannot be parsed\u0027,"},{"line_number":558,"context_line":"                                        timestamp)"},{"line_number":559,"context_line":"        return iso_timestamp"},{"line_number":560,"context_line":""},{"line_number":561,"context_line":"    start_timestamp \u003d args.get(\u0027start_timestamp\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_fa91ce47","line":558,"in_reply_to":"1ae5cdf2_9adc4a75","updated":"2014-06-04 03:34:07.000000000","message":"Done","commit_id":"d11570984677c7eef8edba2b4243fc15be6e9770"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"edcd478388b339237e9de8e7e88bdd7be8d48fa9","unresolved":false,"context_lines":[{"line_number":540,"context_line":"    search_offset: search_offset parameter from request"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    \"\"\""},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    if args is None:"},{"line_number":545,"context_line":"        return {\u0027query_start\u0027: None,"},{"line_number":546,"context_line":"                \u0027query_end\u0027: None,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_c627eac5","line":543,"updated":"2014-06-26 10:05:05.000000000","message":"I don\u0027t think whitespace changes should be mixed with functional ones, although that\u0027s not the strict thing here :)","commit_id":"536910f12d5b4d691fd750c7dcb724d521dea978"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"8ffce160472723cc2e1109c0b5fa8329f53b5cab","unresolved":false,"context_lines":[{"line_number":540,"context_line":"    search_offset: search_offset parameter from request"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    \"\"\""},{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    if args is None:"},{"line_number":545,"context_line":"        return {\u0027query_start\u0027: None,"},{"line_number":546,"context_line":"                \u0027query_end\u0027: None,"}],"source_content_type":"text/x-python","patch_set":8,"id":"fa98f980_b77df5b3","line":543,"in_reply_to":"1ae5cdf2_c627eac5","updated":"2014-09-09 06:09:32.000000000","message":"Done","commit_id":"536910f12d5b4d691fd750c7dcb724d521dea978"}],"ceilometer/tests/api/v2/test_query.py":[{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"90df76605f8a6a7b68e1aab4f79a21ab1e59a6e3","unresolved":false,"context_lines":[{"line_number":322,"context_line":"            for o in [\u0027user\u0027, \u0027project\u0027, \u0027resource\u0027]:"},{"line_number":323,"context_line":"                self.assertEqual(\u0027fake_%s_id\u0027 % o, kwargs.get(o))"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def test_timstamp_validation(self):"},{"line_number":326,"context_line":"        q \u003d [api.Query(field\u003d\u0027timestamp\u0027,"},{"line_number":327,"context_line":"                       op\u003d\u0027le\u0027,"},{"line_number":328,"context_line":"                       value\u003d\u0027123\u0027)]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_c5574025","line":325,"range":{"start_line":325,"start_character":8,"end_line":325,"end_character":32},"updated":"2014-06-09 14:44:41.000000000","message":"I think is typo. %s/test_timstamp_validation/test_timestamp_validation","commit_id":"9fcc8b755e1716522b7725f020aa4bc9cb0927b3"},{"author":{"_account_id":8290,"name":"liusheng","email":"liusheng2048@gmail.com","username":"LiuSheng"},"change_message_id":"ce83d191ab7d80194696b56d6d57bdd13d7fd072","unresolved":false,"context_lines":[{"line_number":322,"context_line":"            for o in [\u0027user\u0027, \u0027project\u0027, \u0027resource\u0027]:"},{"line_number":323,"context_line":"                self.assertEqual(\u0027fake_%s_id\u0027 % o, kwargs.get(o))"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"    def test_timstamp_validation(self):"},{"line_number":326,"context_line":"        q \u003d [api.Query(field\u003d\u0027timestamp\u0027,"},{"line_number":327,"context_line":"                       op\u003d\u0027le\u0027,"},{"line_number":328,"context_line":"                       value\u003d\u0027123\u0027)]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_c32521af","line":325,"in_reply_to":"1ae5cdf2_c5574025","updated":"2014-06-26 08:22:16.000000000","message":"Done","commit_id":"9fcc8b755e1716522b7725f020aa4bc9cb0927b3"}]}
